Video and Audio Conversion Oh boy, here we go. Converting video and audio is a delicate process. If done incorrectly, it can result in the quality of the video or audio dropping significantly. Sometimes, it can result in a file so bloated it puts some of Coalgirls’ releases to shame. Other times, video or audio quality drops even when the conversion is done correctly. All in all, video conversion should be avoided if possible. But, if you absolutely, positively, must convert a video, then this part of the guide will help you with that. First, some vocabulary you need to know. Codec The algorithm used to encode and decode a video or audio stream. It is stored in a Container Container The file extensions you are all probably familiar with. MOV, MKV, and MP4 are all “containers” that store video and audio streams encoded using codecs. Most containers, like MP4 and MOV, can only store specific codecs. A few, like MKV, can store almost any codec. Next, install ffmpeg. Ask in #general-discussion on the discord for help with installation if you don’t know how, or consult everyone’s good friend Google. Make sure at some point you add ffmpeg to your “System PATH Variable,” sometimes just called “PATH.” There are other ways of converting video, but this guide will only use ffmpeg for the sake of simplicity. First, navigate in the command line to the directory containing the video file you want to convert. Next, run this command: ffmpeg -i “(filename).(fileext)” (Replace “(filename)” and “(fileext)” with the file name and file extension, respectively) You should get a bunch of text that looks something like this: The most important part here is to check both streams (In the case of this image, streams #0:0 and #0:1), and see what codec each stream is using. Looking at the image, we see the “Video” stream is using the avc1 codec, and the “Audio” stream is using the mp4a codec. This is good, as both these codecs are supported by the MP4 container, and we can convert the container to MP4 without losing any quality. HLR operates mostly on MP4 files, so your goal when converting video should be to convert the container to MP4. (Full list of codecs supported by the MP4 container can be found here ) To do this, we would run the following ffmpeg command: ffmpeg -i “(filename).(fileext)” -c copy “(filename).mp4” But let’s say, for example, the Audio stream is using a codec not on the list, but the Video stream is. In this case, we can convert the audio stream to a codec compatible with MP4 (albeit with some quality loss), and copy the video stream without converting it. This is done with the following ffmpeg command: ffmpeg -i “(filename).(fileext)” -c:v copy -c:a aac “(filename).mp4” For a case where the video stream is not compatible with MP4, it’s better to not convert if possible, as lost quality in video is much more noticeable than lost quality in audio. But, if you must convert the video stream, you can use the following command: ffmpeg -i “(filename).(fileext)” -c:v libx264 -c:a copy -crf 18 “(filename).mp4” In the case where both codecs are incompatible with MP4, then run: ffmpeg -i “(filename).(fileext)” -c:v libx264 -c:a aac -crf 18 “(filename).mp4”