3

How can this 6 minute video (1080p/h264) with a lot of animation and movement going on be only 50 megabytes in size with no visible compression artifacts?

Is it simply because there's so much almost-white snow in many of the scenes? Or what magic tricks have they pulled off to make this possible?

For comparison an Apple 1080p trailer of a couple of minutes is usually around 150MB, albeit that's live motion with very high video quality / bit rate.

5

The H.264-encoded variant of the clip uses about 1 Mbit/s, which is not a terribly high bitrate, but it's also not nothing. You can get by with 1.5 Mbit/s for H.264-encoded video at 1080p, if you use a good encoder and you configure it properly.

There are several factors that come into play here:

  • The video is not actually 1080p. Its dimensions are 1920⨉804, so it's closer to 720p vertically.

  • YouTube can use a very slow and compression-efficient encoding process, since it's better for them to invest into encoding for quality once, using their parallel cloud services, and later stream reduced file sizes. The encoding will only cost them once, but the streaming will cost them multiple times — think of thousands or even millions of streams. Other VoD companies like Netflix are doing the same.

  • Generally, animated content like this is not super hard to encode. It lacks high-frequency camera noise or simulated film grain (which is hard to preserve while encoding) and you will often see smooth surfaces.

  • The content includes a lot of scenes with a completely static camera, where motion is constrained to only small parts of the video (i.e. moving objects or protagonists). Such motion can be easily predicted and encoded with B-frames, where the majority of macroblocks in the frame can be skipped entirely. This saves bits.

Finally, I'd say the quality is okay — it's not perfect. You can still see color artifacts and smudging in areas with high spatial complexity (like fur), and these aren't perfectly sharp either.

The VP9-encoded variant (which you will see when using Google Chrome) uses about the same bitrate, but its visual quality is much better, as VP9 is a more compression-efficient codec. Compare a screenshot of the H.264 version (click to enlarge) …

… against the VP9 one:

You will see much more spatial detail in the fur.

  • Very good answer which covers vital factors, especially the part about investing in quality encoding. Do you (or anyone) know what kind of encoders they use? How much more efficient are they compared to ffmpeg? – forthrin May 6 '18 at 14:04
  • I think YouTube uses modified versions of FFmpeg with x264 (for H.264), and their own libvpx encoder for VP9 encoding. (See multimedia.cx/eggs/googles-youtube-uses-ffmpeg for some rumors, which might also be already outdated.) The most notable quality gains are properties of the formats (i.e., H.264 vs. VP9) themselves, and a good encoder will produce better quality faster, of course. – slhck May 6 '18 at 16:18
  • A possibly related side note: A friend who's working with video compression told me that "professional" encoders used for BluRay, cinemas, broadcasting, etc. were all about "planning", and therefore had 3-4 passes rather than the usual 1-2 in ffmpeg, and these encoders cost "millions" and are not available to the general public. Can you (or anyone) confirm this, because YouTube would no doubt have the financial means to obtain such a tool if it exists. – forthrin May 6 '18 at 16:25
  • To be honest, I don't know anything specific related to offline encoding, particularly for Blu-ray, but of course there are commercial solutions for parallel live encoding (e.g. from Harmonic) or other professional encoding tools (e. g. MainConcept). That world is a litte bit out of reach for me; I have an academic background, so there was never a lot of money for anything. Hence ffmpeg all the way. – slhck May 6 '18 at 18:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.