Hello guys,
I recorded my first own commented video game playthrough and I would like to publish it on the YouTube in the upcoming weeks / months.
Thing is, I never really encoded stuff (except for some old crappy quality personal videos). So I'm trying to learn a bit to produce something with decent quality.
I used latest Fraps, recording in native 1280x720 (no scaling) at 30 FPS, in which I'd like to publish it on the YouTube as well.
Results are looking great (totally satisfied), except for the file size and dull colors (which I already corrected using some of the Premiere's filters).
After I got my final cut, I tried to do some encoding tests using 15s video previews and upload it to the YouTube.
I checked this article from YouTube with recommended encoding settings. And here comes first problem: They list some settings like 2 consecutive B frames, CABAC and Closed GOP (GOP of half the frame rate), but I simply can't find anything like this in the Premiere Pro CC..
So I'm using 1280x720/30FPS H.264 Progressive, High Profile, Level 4.2, 2 pass VBR with Maximum Render Quality and playing out with different bitrates. I started with 5Mbps and I did previews of 6,7,8,9,10,20 and 30 to compare, using Max Bitrate usually around 2-10 Mbps higher.
I'm satisfied with values of 8Mbps+ and if that was the result that I get by watching it on the YouTube, I'd call it done and simply upload all my episodes.
However, it looks really ugly once I play it from YouTube, no matter how high bitrate I use. I even tried 30-50 Mbps bitrate, but it still looks very blurry and pixelated. I read that YouTube re-encodes your videos (so I should upload in much higher quality than needed for local playback - thus my 30-50 Mbps upload test) and that it takes some time, but I just re-checked my yeasterday's uploads just to get angry again - no change at all.
I'm aware that h.264 might not be best choice for fast FPS gaming. On top of that, I'm recording Crysis which has a lot of jungle and forests with loads of grass, trees and plants, so moving fast in there must be hard for the encoder. BUT, when I check Crysis videos of some other people on YouTube, you can find some with really nice quality that I'd be happy with. Mine are looking much worse.
I think this is more than long enough introduction, so here are some examples.
Video:
Local copy (r.click - Save as) -> YouTube
Screenshots:
t=5s: Source Video (from Fraps) -> Local copy (30-50Mbps) -> YouTube player (720p)
TIP for viewing in Google Chrome: Open each of them in a new tab, then press F11 and then cycle them using Ctrl-TAB and Ctrl-Shift-TAB
As you can see, in some moments it's pretty much unwatchable and I'd rather not publish my walkthrough at all, than publish it ugly like this.
I just can't figure out what's wrong, hopefully someone here can help.
Thank you very much for your time!
LyrickCZE from Prague
Support our site by donate $5 directly to us Thanks!!!
Try StreamFab Downloader and download streaming video from Netflix, Amazon!
Try StreamFab Downloader and download streaming video from Netflix, Amazon!
+ Reply to Thread
Results 1 to 27 of 27
-
-
When your YouTube video is downloaded it looks a lot better. I think your issue is playback bandwidth. You're using too high a bitrate. You may want to make your video a little less sharp in order to encode it more efficiently.
-
Just select Youtube 720p preset in Premiere
then change from VBR to CRB
change bitrate to 8 mbps -
Thanks for your replies.
You got the point, smrpix, with bitrate too high!
I tried downloading the uploaded video from the YouTube (using the Video Manager - Download as .mp4) and it indeed looks better (still dissapointed though). But I'm confused - the downloaded video comes out re-encoded as VBR with 4-5.5 Mbps I believe (that's what VLC shows), so there should not be a reason for the connection not keeping up. Plus it has same issues even when you let it pre-load before playing...
Anyways, going to try the YT Preset mentioned (maybe there is some hidden options set by it?)...
... some time later ...
It's here: YouTube 720p Preset, 8Mbps CBR
Unfortunately, it is slighty better, but still very bad : / -
Do you have slow computer that you record in 720p?
-
I would not call it slow, but I only have 1366x768 screen, so I decided to play and record in 720p, since YouTube would scale it down anyway.
Edit: Well, found some guide on how to get it from Premiere to FFMPEG, so I will try encoding in it.
It seems that CRF method / film could be way better for stuff like these moving forest scenes.
Hopefully YouTube will be able to re-encode it better if it's given better source..
Gotta leave now though, I will post the results once it's done.Last edited by LyrickCZE; 10th Sep 2014 at 12:46.
-
Did you try render with YouTube 1080p preset CBR 8 mbps ?
I know the quality not suppose to be better
but maybe Youtube quality will improve -
I think it still has to do with factors beyond your control. The download looks relatively clean, but the streaming playback is constantly jumping around. Best guess, the complexity of the images -- tiny details, unblurred motion -- requires a lot of constant bandwidth.
-
Yea.. I was afraid so. In other words - I really choose great first footage to learn encoding on
Ok really gotta run now, I will just try the stuff I mentioned above once I get back.
Later. -
I think the uploaded video has no problems. Youtube may try to change the video quality according to user's network conditions. If your network is not well, the video may be in 144P or 240P. You may change it into 720P by clicking on the settings icon in the YouTube player section. Click the setting icon you will see the speed and video quality options. Hope this can help you.
Real media really matters. Just get BD DVD discs and say NO to online stream media. -
But then why can I play other 1080p videos on YouTube smoothly and with great quality?
That's just something I can not understand and that is why I'm still thinking it has to do with the uploads.
Unless they use some crappy encoding for new (unimportant) channels or something...
Anyways, I took it to next level today and used Advanced Frameserver and AviSynth to feed the output from Premiere Pro directly into the FFmpeg.
Here are two example uploads:
https://www.youtube.com/watch?v=RFS2u3xjaTM
https://www.youtube.com/watch?v=sR8ZFw1OTDs
You can find FFmpeg settings in the video descriptions.
Local results look really nice and I can already see something happening on YouTube... Instead of resulting 8.5 MB re-encoded video by YouTube, it now has 16.3 MB and after download, it is slightly better.
Still, while playing directly on YouTube, it looks like that brown thing you create every day. Aaargh!
I just don't get it... -
Real media really matters. Just get BD DVD discs and say NO to online stream media.
-
-
Did you try test render with YouTube 1080p preset CBR 8 mbps ?
-
For encoding to YT use preset fast, superfast or ultrafast - personally i use fixed quantizer single pass - bitrate before upload have meaning only when your upload speed is low.
Always download video from YT to evaluate quality, use decent player not web browser based, consider upscaling video to 1080 or even higher resolution before encoding and uploading. -
Thank you for tips, pandy.
I will give it a try once I have some more time. -
Personally i use ffmpeg with syntax like this - it fast and should work for You - perhaps scale (resize need to be added) and video need to be pad to more than 1280x720 (also perhaps color matrix different - i use this to place SD on YT that's why it is 470 not 709) but all this is plain cosmetics.
Code:@set x264opts="level=4:qp=20:ipratio=2:cabac=1:colorprim=bt470bg:transfer=bt470bg:colormatrix=bt470bg:fullrange=off:overscan=show:pic-struct:force-cfr=1:aud=1:threads=auto" @ffmpeg -i %1 -c:v libx264 -preset ultrafast -tune zerolatency -profile:v high -x264opts %x264opts% -x264-params %x264opts% -vf "pad=1280:720:(ow-iw)/2:(oh-ih)/2,setsar=sar=1/1" -af "aresample=resampler=soxr:osr=44100:cutoff=0.95" -strict experimental -c:a aac -b:a 320k -ac 2 -shortest -movflags faststart %1_.mp4
-
Having hard time understanding some of your settings, but trying to make something close using the FFmpeg documentation.
For some reason, I cant find the ipratio parameter though : /
QP method and zerolatency seems to be main changes there (hope Im correct), so I will give it some testing and report back..
Thanks, Lyr. -
You're basically wasting your time.
It's not going to make much of a difference what you do. The problem is youtube and lowish bitrate for the type of content (It will re-encode at about 4-5Mb/s for 720p, which might be ok if you didn't move as much) . Things like motion, noise, complex content (explosions, lots of details), are very difficult to compress
It's a bit counterintuitive, but the higher the quality past a certain point, the worse it will look on youtube. You can fiddle all you want with the encoding settings, or even upload a lossess video - it won't make a difference and will probably even look worse. YT struggles at that bitrate to keep all the detail.
What people do is add motion blur, denoise it, so it's easier to compress, will look slightly better on youtube. Also creative edits, where you edit in low action parts, maybe dialog - this way the bitrate can be distributed better -
Thanks for the explanation. I will try to experiment with motion blur then..
Im curious - do you think the real problem here is that I upload in 720p instead of 1080p? I mean, do they use better encoding or maybe more suitable bitrate for 1080p, so it then looks way better even when played in 720p?
Because I cant really test it with 1366x768 screen...
Here is a nice example how much nicer it can look in practically same game:
https://www.youtube.com/watch?v=Bj8WQoa1xpY -
^ It falls apart too in sections
720p seems to be the sweet spot right now at YT, you don't gain much more for going 1080p 6-8Mb/s, but larger frame size. The overall quality isn't any better
The reason why all your encoding settings, fiddling with encoding don't matter is YT re-encodes it. It decodes, then re-encodes it. So it doesn't matter what your encoding settings are as long as you upload something decent in quality. It doesn't look at, or factor in the encoding settings you used ; all it "sees" is uncompressed video as it decodes it.
Your movement in that sequence is too rapid, too twitchy. Other people might have slightly higher quality, because they aren't jerking around, their movement slower. That's all it comes down to - content complexity. In long GOP compression , the differences between frames are stored. Big difference from fast movement, means big frames bitrate wise. Since YT doesn't give enough for that scenario, the picture breaks apart. You can see major problems in that link as well that you said was "nicer" . (I guess it is "nicer", but still looks very bad in sections) . So if you played like a "sniper", with very little movement - guess what - the picture quality will look much better because it 's easier to compress
So the biggest difference you can make, will be in processing . (eg. the type of editing - a long action sequence without interruptions or breaks will look worse than one that has breaks edited in) . Motion blur, denoising , selective focus (shallow depth of field) - those things all reduce required bitrate for compression and subjective quality when viewed on youtube -
Understood.
I will probably not get to it sooner then on monday, but I will certainly try some of your tips.
Thank you for your time! -
Once again - my example is not to provide high quality for YT but to provide fastest encoding before uploading movie to YT where YT do own re-encoding anyway. There huge number of guides where people struggle and encode movies to be uploaded to YT where some slow and HQ presets are in use then after upload, YT anyway re-encode such video to own, common denominator.
And as poisondeathray pointed - i suggest only to shift time from video encoding to video pre-processing, also i disagree with poisondeathray that up-sizing to 1080 have no sense - from YT approach it have perfect sense - one thing you need to remember to watch such video back in 720p size - blockines should be reduced. -
-
Can you check with one of your sources (before upload to YT) bellow settings?
Code:@set x264opts="level=5:qp=25:cabac=1:colorprim=bt709:transfer=bt709:colormatrix=bt709:fullrange=on:overscan=show:pic-struct=1:force-cfr=1:aud=1:threads=auto" @ffmpeg -threads %NUMBER_OF_PROCESSORS%*1.5 -i %1 -c:v libx264 -preset ultrafast -tune animation -profile:v high -x264opts %x264opts% -x264-params %x264opts% -vf hqdn3d=8:8:8:8,scale="'if(gt(a,16/9),1920,-1)':'if(gt(a,16/9),-1,1080)':sws_flags=spline",pad=1920:1080:(ow-iw)/2:0 -af "aresample=resampler=soxr:osr=44100:cutoff=0.95" -strict experimental -c:a aac -b:a 320k -ac 2 -shortest -movflags faststart %1_1080_f.mp4 @ffmpeg -threads %NUMBER_OF_PROCESSORS%*1.5 -i %1 -c:v libx264 -preset ultrafast -tune animation -profile:v high -x264opts %x264opts% -x264-params %x264opts% -vf scale="'if(gt(a,16/9),1920,-1)':'if(gt(a,16/9),-1,1080)':sws_flags=spline",pad=1920:1080:(ow-iw)/2:0 -af "aresample=resampler=soxr:osr=44100:cutoff=0.95" -strict experimental -c:a aac -b:a 320k -ac 2 -shortest -movflags faststart %1_1080.mp4 @ffmpeg -threads %NUMBER_OF_PROCESSORS%*1.5 -i %1 -c:v libx264 -preset ultrafast -tune animation -profile:v high -x264opts %x264opts% -x264-params %x264opts% -vf hqdn3d=8:8:8:8 -af "aresample=resampler=soxr:osr=44100:cutoff=0.95" -strict experimental -c:a aac -b:a 320k -ac 2 -shortest -movflags faststart %1_720_f.mp4 @ffmpeg -threads %NUMBER_OF_PROCESSORS%*1.5 -i %1 -c:v libx264 -preset ultrafast -tune animation -profile:v high -x264opts %x264opts% -x264-params %x264opts% -af "aresample=resampler=soxr:osr=44100:cutoff=0.95" -strict experimental -c:a aac -b:a 320k -ac 2 -shortest -movflags faststart %1_720.mp4 @pause
-