EDIT 12/12/2020 — Hey folks, just a couple notes on this article! While the information is all up to date, even in the most recent version of OBS, I just want to give you a heads up that this is the direct copy of the script from the video version. As such, the structure includes all the usual video trappings, such as an introduction, call to subscribe, etc. It’s wildly popular, so thank you very much for reading it.
Welcome to OBS Mythbusters. My name is Jessica, known online as tielqt, and I’m a support volunteer and moderator for the OBS Project. I help out with all kinds of issues in the OBS Discord server.
Today, I’m here to talk about OBS and the MP4 format. Don’t get me wrong; MP4 is a fine video container. It’s one of the most common file types for video for a reason: most video editors will work with it too, and a good portion of devices will play MP4 files with no additional setup. Plenty of YouTube tutorials about OBS Studio will tell you to record directly to MP4 though, and that’s a bit of a problem.
For as good, and convienient as MP4 is as a format, the fact is: MP4 is dangerous as a live format, and if you record to it directly like you would with OBS Studio or any kind of similar software, you’re putting your recordings at risk. In fact, OBS has a big warning about this in the program itself. This warning is visible in most “best settings” videos for OBS Studio, which should be a big red flag that hey, maybe these aren’t the best settings. We’ll talk about those types of videos in more depth in a later video.
In OBS Studio 22.0.2, the most recent version of OBS Studio at the time of recording, the warning which appears when you select MP4 as your recording format reads:
Warning: recordings saved to MP4 will be unrecoverable if the file cannot be finalized (eg. as a result of BSODs, power loss, etc.).
But why should you, the audience, care about this warning? Let’s demonstrate.
Right now, I’m recording to MP4 with OBS, and I’ve just about wrapped up. But, something goes wrong, and my computer dies on me for some reason. For the purposes of this video, I’ll be simulating this by killing the OBS muxer process, the part that actually makes the video. When I go back to check on the recording, the file is empty, and I cannot watch the recording.
That, right there, is the reason you should not record to MP4. If something goes wrong, in any way, shape, or form, you lose every frame of that file and there’s a very good chance it will become completely unrecoverable. Blue screen of death? Say goodbye to that perfect boss kill you just did. Power outage? Sayonara to that personal best time. All of your hilarious jokes and excellent game footage will be gone and you cannot get it back. If that’s not a compelling reason not to record to MP4, I don’t know what is. And all of the same problems occur with the MOV format as well.
But why does this happen? Well, I’ll explain, but it gets pretty technical. You can use the timestamp in the description to skip over this part, or skip to the timestamp pictured to my left.
— WARNING: Technical Content —
The reason MP4 is so terrible for direct recording is because MP4, much like MOV before it, requires a finalization process to take place before the file is usable. What this process does is write the “atoms” of the file, which are bits of information about what the MP4 file actually contains, including the codec that it’s encoded in and various other bits of metadata. The atoms, and more specifically the “moov” atom or movie atom, are a key part of the structure of an MP4 file, and the file is incomplete without them. They serve as an index for the contents of the entire file, and if your video player can’t find an index, it doesn’t know what to do with the file, and it becomes pretty useless.
While it’s true that, some of the time, a corrupted MP4 file may be able to recovered, the reality is that it can be a pain in the ass to do so. The process involves reconstructing the movie atom for the file, and even the best efforts to do so may still result in a complete failure and a loss of your file.
In OBS, the movie atom is written at the end of the file by default, which is why you may see a warning when uploading an MP4 file recorded by OBS directly to YouTube about “streamable file formats”. This is yet another reason that recording directly to it isn’t optimal.
In order to make an MP4 file “streamable”, the main “moov” atom, also called the movie atom, has to be written at the beginning of the file. This allows playback of the file to begin immediately, because the video player immediately receives the information about the MP4 file and can play it back properly. While it is possible to force OBS to do this using a flag while encoding, it is not recommended.
If you want more information on the type of atoms that go into an MP4 file, Apple has written a technical specification of the MOV and MP4 atom structure. Link in the description. (https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/QTFFChap2/qtff2.html)
Adobe also wrote a breakdown of the MP4 format and the movie atom for creators using Flash, which you can also find a link to in the description. (https://www.adobe.com/devnet/video/articles/mp4_movie_atom.html)
— END WARNING: Technical Content —
So, to sum up, and welcome back if you skipped the technical bits: MP4 files require an extra process at the end to finish and write the file. If that process gets interupted, or doesn’t run, you lose the file, and that’s kind of the end of that.
So, what’s the solution? What can we use instead of MP4 files?
Well, the OBS team recommends recording to FLV or MKV. Both of these formats are popular “container” formats, which mean they can “contain” many different types of video or audio. Neither FLV nor MKV require a process to finish the file like MP4 does, so even if your power cuts out or you get a blue screen of death, your entire recording is safe. As for which is better, there’s very little difference between the two formats, but only MKV supports multiple audio tracks. If that’s a feature you need, please use MKV, otherwise, FLV is fine. YouTube, and most other video services, also accept FLV and MKV uploads, so there’s no need to create an MP4 for uploading. In fact, using FLV and MKV may mean that YouTube can finish processing your videos faster.
One thing the OBS team often hears when we say not to use MP4 is that people don’t have anything that can play FLV or MKV files. Luckily, the OBS team recommend using VLC Media Player to play back any videos recorded with OBS. Like OBS, VLC Media Player is a free and open source project. (https://www.videolan.org/vlc/index.html)
But sometimes you actually need an MP4 file, usually for a video editor or some other piece of software which doesn’t support FLV or MKV. I’ll need MP4s from all of my recordings to edit this video, in fact. But I’m recording to MKV, my format of choice. So what can I do here?
Well, OBS can do something called “remuxing”. To put this in simple terms, remuxing is going to take the video and audio from one type of file, and put it into another. In my case, this will take an MKV, and turn it into an MP4. This process takes seconds, and won’t result in any quality loss, because all that it’s doing is making an exact copy. You can get an MP4 file without having to worry about losing quality, or losing your recording.
And that’s it; now we’re keeping files safe while recording, by recording to FLV or MKV, and we’re keeping them safe afterwards as well, by remuxing.
EDIT 12/12/2020: Thanks for reading! If you enjoyed this article, please consider sending a tip through ko-fi, or following me on Twitter. ❤
Thanks for watching this video! I hope this has saved hours and hours of your footage, and a tonne of heartache. If this helped, please consider giving this video a like, and subscribing.
You can find me in a bunch of places online besides YouTube, just check the description.
You can also help support me by visiting humble.bird.school to buy games from Humble Bundle while supporting me and my charity of choice, the Mickaboo Companion Bird Rescue.
And lastly, if you need help with anything OBS Studio, you can visit obsproject.com/help to find the OBS wiki with a ton of guides and information, as well as the forums, Discord, and more.
Cheers, and see you in the next video!