Skip to content

Instantly share code, notes, and snippets.

@SophiaH67
Last active December 22, 2023 12:00
Show Gist options
  • Save SophiaH67/ef44506cf9347c68d514b23858394bc8 to your computer and use it in GitHub Desktop.
Save SophiaH67/ef44506cf9347c68d514b23858394bc8 to your computer and use it in GitHub Desktop.
Converting Media For Compatibility With VRChat Video Players

This is a guide that will show you how to convert any media to play in [[vrchat]].

1. Acquiring Media

This guide will not show you how to aquire your media. For the sake of this guide, it's not relevant where you got it from, or in what format it's in. A quick rule of thumb is, if VLC can play it, it'll work for this.

2. Handbrake

  1. Go to https://handbrake.fr/
  2. Press the big red download button ![[Pasted image 20231216120130.png]]
  3. Open the installer, hit Next, Next, Install, then Finish

3. Import Profile

I made a simple profile of the quality I like, if you're an encoding nerd, feel free to tweak nobs and sliders. This preset is made to just work with 99% of stuff out of the box ^^

  1. Download the preset from https://gist.githubusercontent.com/SophiaH67/ef44506cf9347c68d514b23858394bc8/raw/9c951db5a7839e049a69323f154815ec7a49b2dc/Sophia%2520-%2520VRChat.json
    1. Go to the link
    2. Press Ctrl + S on your keyboard
    3. Save it somewhere you remember
  2. In the top bar, go to Presets, then click Import from file ![[Pasted image 20231216121430.png]]
  3. Navigate to the JSON file downloaded in step 3.1, then hit open ![[Pasted image 20231216121644.png]]

4. Open Your Media

The previous steps were all setup, now we can get to the converting of your media!

  1. Click the Open Source button in the top left of the UI ![[Pasted image 20231216121817.png]]
  2. Click file ![[Pasted image 20231216121847.png]]
  3. Find and open your media of choice
  4. Click the preset dropdown, and select Sophia - VRChat ![[Pasted image 20231216122204.png]]

5. Tweak Some Settings (Optional)

This is mainly for changing the audio tracks for dubbed content, or adding in subtitles.

5.1. Changing Audio Tracks

VRChat players do not allow choosing audio track, so we will just toss away any tracks we don't want to hear. We do this by selecting the only track we want to keep.

  1. Click on the audio tab ![[Pasted image 20231216122311.png]]
  2. Under source, select the language you want ![[Pasted image 20231216122346.png]]

5.2. Adding Subtitles

VRChat does not natively support subtitles (yet), so we have to "burn them in", as the nerds call it. This is actually quite simple, and just means that the video track will contain the subtitles instead of having it as a separate metadata track.

  1. Click on the Subtitles tab ![[Pasted image 20231216122727.png]]
  2. Click on Tracks, then Add New Track ![[Pasted image 20231216122752.png]]
  3. Select the subtitle track you want ![[Pasted image 20231216122828.png]]
  4. Make sure Burn In is checked!

5.3. Tweaking Encoding Settings (Expert Only)

I won't write a guide for this, since if you want to do this, you probably already know what you're doing 🙃

6. Exporting

The final step, exporting, rendering, encoding, whatever you want to call it.

  1. Set the path to some place you can find later ![[Pasted image 20231216123330.png]]
  2. Click the Start Encode button ![[Pasted image 20231216123259.png]]
  3. Wait untill your encode is done! At the bottom you will see how long handbrake thinks it will take ![[Pasted image 20231216123449.png]]

Your media is now VRChat compatible. If you wish to play it, upload it to some place which supports direct downloads, and enjoy!

{
"PresetList": [
{
"AlignAVStart": false,
"AudioCopyMask": [
"copy:aac"
],
"AudioEncoderFallback": "av_aac",
"AudioLanguageList": [
"any"
],
"AudioList": [
{
"AudioBitrate": 512,
"AudioCompressionLevel": 0,
"AudioEncoder": "av_aac",
"AudioMixdown": "stereo",
"AudioNormalizeMixLevel": false,
"AudioSamplerate": "auto",
"AudioTrackQualityEnable": false,
"AudioTrackQuality": -1,
"AudioTrackGainSlider": 0,
"AudioTrackDRCSlider": 0
}
],
"AudioSecondaryEncoderMode": true,
"AudioTrackSelectionBehavior": "first",
"ChapterMarkers": true,
"ChildrenArray": [],
"Default": false,
"FileFormat": "av_mp4",
"Folder": false,
"FolderOpen": false,
"Optimize": true,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
"PictureLeftCrop": 0,
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 1920,
"PictureDeblockPreset": "off",
"PictureDeblockTune": "medium",
"PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureDeinterlaceFilter": "off",
"PictureCombDetectPreset": "default",
"PictureCombDetectCustom": "",
"PictureDeinterlaceCustom": "",
"PictureDenoiseCustom": "",
"PictureDenoiseFilter": "off",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
"PictureSharpenTune": "none",
"PictureDetelecine": "off",
"PictureDetelecineCustom": "",
"PictureColorspacePreset": "off",
"PictureColorspaceCustom": "",
"PictureChromaSmoothPreset": "off",
"PictureChromaSmoothTune": "none",
"PictureChromaSmoothCustom": "",
"PictureItuPAR": false,
"PictureKeepRatio": true,
"PicturePAR": "auto",
"PicturePARWidth": 1,
"PicturePARHeight": 1,
"PictureWidth": 3840,
"PictureHeight": 2160,
"PictureUseMaximumSize": true,
"PictureAllowUpscaling": false,
"PictureForceHeight": 0,
"PictureForceWidth": 0,
"PicturePadMode": "none",
"PicturePadTop": 0,
"PicturePadBottom": 0,
"PicturePadLeft": 0,
"PicturePadRight": 0,
"PresetDescription": "",
"PresetName": "Sophia - VRChat",
"Type": 1,
"SubtitleAddCC": false,
"SubtitleAddForeignAudioSearch": false,
"SubtitleAddForeignAudioSubtitle": false,
"SubtitleBurnBehavior": "none",
"SubtitleBurnBDSub": false,
"SubtitleBurnDVDSub": false,
"SubtitleLanguageList": [],
"SubtitleTrackSelectionBehavior": "none",
"VideoAvgBitrate": 0,
"VideoColorMatrixCode": 0,
"VideoEncoder": "x264",
"VideoFramerateMode": "vfr",
"VideoGrayScale": false,
"VideoScaler": "swscale",
"VideoPreset": "ultrafast",
"VideoTune": "",
"VideoProfile": "main",
"VideoLevel": "5.2",
"VideoOptionExtra": "",
"VideoQualityType": 2,
"VideoQualitySlider": 18,
"VideoMultiPass": true,
"VideoTurboMultiPass": false,
"x264UseAdvancedOptions": false,
"PresetDisabled": false,
"MetadataPassthrough": true
}
],
"VersionMajor": 53,
"VersionMicro": 0,
"VersionMinor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment