Question / Help "Your videos will process faster if you encode into a streamable file format."

Frank Lepore

New Member
I keep getting this message when uploading OBS recordings to YouTube, which also causes them to take a ridiculous amount of time to upload. I've tried numerous setting changes and nothing seems to fix it. Just now I've tried adjusting the bitrate, x264 encoder, NVENC encoder, changing the recording resolution from 2560x1440 to 1920x1080. Nothing makes the message go away or speeds up my uploading.

Clicking the link YouTube provides brings you to this page, https://support.google.com/youtube/answer/1722171?hl=en, and I'm also in line with all those suggestions as well.

Not to say I'm unable to upload at all, but anyone have any success with OBS recording settings that YouTube doesn't seem to take issue with?

Thanks in advance!
 

Attachments

  • Video Quality.PNG
    Video Quality.PNG
    10.5 KB · Views: 262

R1CH

Forum Admin
Developer
Record to MKV and make sure you have a correct keyframe interval. Note this only speeds up YouTube processing, it won't affect your upload speed.
 

wallrik

Member
Interesting YouTube article. I'm going to try to explain this in detail because I have seen people asking before.

But yeah, like R1CH said, you can just record to MKV or FLV to have a streamable file format.

However, if you want to use MP4 there's a key part mentioned on the YouTube article:
Container: MP4
* moov atom at the front of the file (Fast Start)
This is not normally how the file is created. This needs to be done in a second pass after the recording is done.
The moov atom is like a file index that contains all the necessary info to play the file and is normally placed at the end of the file. This is why we never recommend recording straight to MP4 from OBS, because if something happens during recording, the footage will be unplayable.

So you see, the problem for YouTube is that if they cannot read the index (moov atom) they have to wait for you to finish the upload completely before it starts getting processed.

How do you fix it?
For new recordings you can just add this to your custom muxer settings: movflags=faststart

ydaCjdS.png


However, this will make it take longer than normal to stop the recording due to the extra step, but shouldn't be more than a few seconds. But again, this is not the recommended way to record.

Remuxing from within OBS from one container to MP4 does not (currently) do this extra step.

If you record to MKV or FLV and want to remux to MP4 with "faststart" you can download ffmpeg and run this:
Code:
ffmpeg.exe -i recording.mkv -c copy -movflags faststart youtube.mp4
You will see in the output that it says:
- Starting second pass: moving the moov atom to the beginning of the file

Now, let's really go hard with this reply and go through the video codec section as well... :)
Video codec: H.264
* Progressive scan (no interlacing)
* High Profile
* 2 consecutive B frames
* Closed GOP. GOP of half the frame rate.
* CABAC
* Variable bitrate. No bitrate limit required, though we offer recommended bit rates below for reference
* Chroma subsampling: 4:2:0

* Progressive scan (no interlacing)
This is default. There is no built-in option in OBS to make it interlaced.

* High Profile
This can be selected if you switch to Advanced output.

* 2 consecutive B frames
This can be set with a custom encoder option (for x264) bframes=2
For NVENC you can just set the B-frames option to 2

* Closed GOP. GOP of half the frame rate.
Closed GOP is default. It can be set with custom option open_gop=0 but it is already set by default.
GOP of half the frame rate is kind of crazy. It means every 0.5 sec which is lower than what can be set with the OBS UI, so you can set it in frame numbers with keyint=30 (if you are recording at 60 fps).
And here's an extra note on that; x264 will try to detect when the picture has changed enough to warrant a new keyframe. This is normally good for your quality, but if we want to keep a set 30 frame interval we can set scenecut=0
For NVENC this cannot be done. You have to set it to 1 second keyframe interval.

* CABAC
This is default. However, if you use the low cpu option in the simple output it will be disabled (because it uses the ultrafast preset).

* Variable bitrate
Self explanatory. Just anything other than CBR. Stick to CRF for x264 or CQP for NVENC.

* Chroma subsampling: 4:2:0
This is default. Stick to NV12 which is default in OBS.

The recording window would look something like this with custom muxer and custom encoder settings:
wbYGMri.png

The other settings don't have to look the way I have mine, obviously ^^

However, I should say, pretty much anything you do with these encoder settings should affect YouTube's ability to read the file. Only the first thing with the moov atom should actually matter. I would recommend that you keep what you have and you're happy with.

I just felt like doing a write up ^^ Happy recording.
Feel free to shoot back any questions.
 

Frank Lepore

New Member
Wallrik, this is insanely detailed and helpful! Thanks a ton for taking the time to document all this. Lemme ask another question while I'm here, just to get a more professional opinion.

My current processor is an i7 7700k. My video card is a GTX 1080 ti. This being the case, which codec should I use for streaming? Which for recording? I've seen opinions for either option. Let me know if you need any more details or information.

Again, thanks a ton for the info!
 
Last edited:

wallrik

Member
My current processor is an i7 7700k. My video card is a GTX 1080 ti. This being the case, which codec should I use for streaming? Which for recording? I've seen opinions for either option. Let me know if you need any more details or information.
Sorry for the late reply.

x264 vs. NVENC is not that easy to answer, because it depends on the settings you use. But general consensus is that x264 is the best at a given bitrate.

For recording, since bitrate doesn't really matter, you can use either.

(x264 will use your processor and NVENC will use your graphics card.)

The options for NVENC are somewhat limited and say a GTX 1070 will produce the same result as your 1080 Ti. The best quality you can get is the "High Quality" preset.

Since you have a good processor I would say that you should try to use x264 for streaming with a lower preset than the default to get better quality.

However, for people with a weaker processor you may actually get a better result with NVENC, since your x264 options will be very limited.

One thing to consider is that video encoding while playing is always a balancing act. If the game you're playing is maxing out your graphics card you may get framedrops if you try to record with NVENC at the same time. And the same goes with your CPU if you try to record with x264.

I could go on and on, but what really matters in the end is the picture quality, right? So I'd say experiment and try both and see what you like and what works in your setup :)

Good luck.
 

thusup

New Member
I still get this message with the following settings:
settings1.PNG

I think I have everything discussed here. Is there any new information that can be added to this thread?
 

RytoEX

Forum Admin
Forum Moderator
Developer
That warning message about recording to MP4 was added in OBS Studio 18.0.0. It was added in response to multiple user complaints about losing MP4 recordings due to system failures. It will always appear if you are recording to MP4. You can get it to go away by recording to any other format, such as FLV or MKV.
 

thusup

New Member
That warning message about recording to MP4 was added in OBS Studio 18.0.0. It was added in response to multiple user complaints about losing MP4 recordings due to system failures. It will always appear if you are recording to MP4. You can get it to go away by recording to any other format, such as FLV or MKV.
I'm sorry, I meant I still get the "Your videos will process faster if..." message.
 

Suslik V

Active Member
@thusup the YouTube message and the OBS Studio warning you see, is connected. Unfortunately, the feature to make the OBS Studio .mp4 recordings to not rise the YouTube's hint message is still under development. It is mentioned in development of remux feature of OBS Studio and in Stopping recording never ends that you can do right now (both methods are good to not to rise the hint message of YouTube when your production is based on .mp4 output). The files will be processed by YouTube faster. It is noticeable on HD recordings, it usually takes huge time to upload and at the end of the upload, the file will be already processed up to 50-90% (depending on upload speed and server load).
 

thusup

New Member
What is causing the issue? If I save these videos to MP4 I can use them in a video editor. If I save them to MKV I just have to wait to convert them to MP4 before importing then into the editor.
 

koala

Active Member
An additional remark: as far as I know, Youtube's hint message doesn't mean that the quality of the video suffers. The quality is the same. The only bad thing that happens is that Youtube is not able to start the transcoding (importing) of the video in background while the upload is still running. If you see the hint, transcoding can only start after the upload has finished, so it takes longer to see the video as available for viewing.
 

Harold

Active Member
Record to FLV or MKV. If you record to MP4 and the recording is interrupted, the file will be corrupted and unrecoverable. If you require MP4 files for some other purpose like editing, remux them afterwards by selecting File > Remux Recordings in the main OBS Studio window.
A corrupt MP4 is compatible with absolutely nothing.
An MKV corrupted in the same way is still compatible with OBS' remux function, handbrake and ffmpeg at minimum.
 

thusup

New Member
We're getting a little distanced from the original topic here. The question isn't whether to record to MKV or MP4. YouTube provides recommendations for uploads and I used them. I assume the person who started the thread did too. Someone provided guidance on how to set up OBS to do what YouTube recommends. I found the settings didn't resolve the issue for me. The question is how to get rid of the warning during the YouTube upload and allow YouTube to process the video as it's being uploaded.

People are recommending MKV and I will try that. Since the advice is already to do one thing differently than YouTube suggests- by necessity to preserve file integrity while recording- do you recommend any other modifications to the original x264 suggestions?
 

Suslik V

Active Member
...Since the advice is already to do one thing differently than YouTube suggests- by necessity to preserve file integrity while recording- do you recommend any other modifications to the original x264 suggestions?
Did you read my post about writing "fragmented" mp4? It is some kind of "streamable" format that you can use with mp4 right now. The other method - is faststart as it mentioned in: https://github.com/obsproject/obs-studio/pull/1153 (this is info from early development stage of OBS Studio).
 

Boildown

Active Member
The question is how to get rid of the warning during the YouTube upload and allow YouTube to process the video as it's being uploaded.

An MP4 without the faststart / move atom setting can't be decoded until the entire file is accessible. So YouTube detects this and gives you that warning message. This means YouTube won't start encoding the video until the entire MP4 is uploaded. Other than that, everything is fine. Your video will take a few minutes/hours extra to appear on the channel depending on your upload speed.

To resolve this, you can record as MP4 with the faststart option as previously described, but a far better option is to record as MKV or FLV instead of MP4, since they can be decoded before the entire file is uploaded. The reason that MKV or FLV is far better is because if/when OBS craps out, the entire recording isn't trashed, as is the case if OBS craps out when an MP4 is being recorded.

As for other recommendations for YouTube, it turns out it doesn't even matter. You can safely ignore the .5 second keyframe thing, and most of the other recommendations, and YouTube will still handle your upload just fine. Most of those are wise to adhere to, to enable you to create high quality recordings, but they aren't strictly needed. YouTube now-a-days can handle just about anything. In particular, I'd ignore the B-Frames and GOP size stuff, but adhere to the H.264 (obviously) and progressive scan (obviously) stuff.
 
Last edited:

kibblz

New Member
Sorry to reply on an old thread but ... I have the same problems. But I have a question. Why does it only pop up for long/large sized videos? I upload the same video but like a few mins instead of the full 40 min whatever. I don't get the message with the short one. Now from what I've read above, someone said if I put "movflags=faststart" in that box on obs, that fixes the problem? I always thought it was my export settings in premiere.. but I guess its OBS mp4 recordings. I don't wish to record in mkv... just my preference... but I wanted to confirm if that is all I need to do? The only difference from this is I'm not using x264.. Im using my gpu to record so would that still work for me if I put it there?

Also, would adding that cause any issues like lag or whatever?
 

Suslik V

Active Member
@kibblz If you post process your videos in some video editor, than you don't need any additional options in OBS. But if you are using mp4/mov in obs, read this - Stopping recording never ends .

The large files only triggers the warning message, just because no sense to start processing of small files, when whole file will be obtained in 1 minute. But if your upload time takes 1 hour or more will likely see same info on the YouTube's page.

Also, there is number of solutions to make the mp4 file "streamable". There was solution that uses obs remux option: https://github.com/obsproject/obs-studio/pull/1526 , you can use ffmpeg with the mentioned keys right before uploading huge file to YouTube and so on.
 

kibblz

New Member
Yeah, I record mp4 using obs, then I use adobe premiere to edit and export. I get that message with the long/large videos. I've even tried programs like MP4 FastStart. Works for smaller/shorter videos but didn't work on my longer one. I will look at your links.
 
Top