I'm having trouble encoding a video for YouTube. The content isn't very "compression-friendly" (it's Battlefield 4 gameplay footage), but I'm 100% positive the results could be better. Some links:
- The same frame extracted from the source and from the video processed by YouTube: https://i.stack.imgur.com/8rTcU.jpg
- The source MP4: https://mega.co.nz/#!Z990iCDD!QHpW3h6ZnEy3tlhsCYAEnGGpoY4d4N9ImgdPdlWLwdE
- The video itself: http://youtu.be/0b8ollYsQU8
- A random clip of a guy playing on the same map (compare to 1080p version of it, of course): http://youtu.be/R4Nz2dBZRQY
The command I use to invoke the encoder:
ffmpeg.exe -i %INPUT%.avs -c:v libx264 -profile high -g 15 -keyint_min 15 -coder 1 ^
-preset slow -bf 2 -subq 9 -crf 18 -c:a libvorbis -pix_fmt yuv420p %OUTPUT%.mp4
I've tried many different configurations:
- http://youtu.be/T9CH4ypbI_I
- http://youtu.be/eFkHGi_kj7U
- http://youtu.be/D7nZFQHWNuw
- http://youtu.be/emzQhiMHxxE
But none seem to make things any different. Even raw unmodified footage, recorded with ShadowPlay, looks bad: http://youtu.be/bLR-QavrpGU. Maybe I should give some other encoder a try? Or use another container? I've picked my options according to YouTube's official guide: https://support.google.com/youtube/answer/1722171
I'm all out of ideas now. Any hint would be much appreciated.
P.S. I do realize, that the frame I'm referencing is any encoder's nightmare, but why is it SO bad? And why does it affect the whole picture, not just the most hard parts of it?
EDIT: I've tried encoding with fixed bitrate (two-pass):
- 1080p 8000k ~11mb
- 1080p 50000k ~72mb
- 1440p 50000k ~70mb (this isn't a typo, it's less than 1080p)
The album with the screenshots has been updated. 50m seems to be a little bit better than all the others (sharper edges, recognizable HUD elements, like the red tank icon on a tree to the left of the jeep; except the downscaled 1440p, of course, but it's out of the competition), but this still isn't even close to what it's supposed to be.