View Single Post
Old 3rd October 2019, 21:04   #10  |  Link
poisondeathray
Registered User
 
Join Date: Sep 2007
Posts: 5,371
It has to do with the way youtube re-encodes it.

Sometimes they distribute the encode over multiple encoders so there are more keyframes than you would expect. In theory, you could use 1 frame if it was just a static image (ie. for a video that didn't have fades) . Keyframes "cost" a lot because they encode the entire image complete - there is no temporal compression from adjacent frames

But you need at least some keyframes for seeking . eg. If viewer wants to skip to end of song for example. A super long keyframe interval would make seeking difficult and slow if it had a high fps, or the gradation too wide (not able to seek to fine points, but only in big chunks like 5 minutes instead of 1 second)

If they used more efficient settings it could be much smaller (more b frames, longer GOP intervals) . But this negatively impacts processing time , and playback experience (seek latency increase), so YT has to make some tradeoffs

In theory, you could encode a fractional FPS video, this would mean many fewer images. "b" frames don't "cost" a lot in terms of size for adjacent still frames - but they still cost something. Something is more than nothing. The lowest framerate from YT is 6 (if you upload a 1 fps video, it will be duplicated to 6). (Or at least it used to be when testing a few years ago, it might have changed)


The more clever way for you, if it's not for YT (you cannot do much about how YT re-encodes the video, although a lower framerate to 6 will help if it's "still" image)

1) "VFR" . Still sections get lower framerates, even fractional. A still image for 6 minute presentation might be 1 frame. Fast action sequences get higher framerates appropriately

2) And to use efficient encoding settings; larger GOP sizes, slower encoding settings, more b-frames
poisondeathray is offline   Reply With Quote