In the past two years that I’ve been working in transcoding at Joost, I have learnt a lot about what works, and what doesn’t, when it comes to putting video on the internet, and I have also seen that in many cases, the best thing to do is go back to the source. This is too much to fit into one guide, so today I will just introduce you to some of the characteristics of great looking video, and in future installments I will explain how to get individual things right using free (and possiby open source tools).

On quality

Most websites will compress video a lot, and encode video to a smaller frame size. Nevertheless it’s a bad idea to send low quality files to aggregrators; each encode will cause more quality loss, and if an encoder tries to encode a low-quality blocky video, the encoder will spend a lot of bits encoding the artifacts in the file you delivered instead of the actual desired picture. So just send the high quality, full size (be it 480p, 720p, or 1080p) and leave the dealing with scaling to the aggregators. They have their systems set up to do that anyhow.

File formats

I recommend two file formats, when preparing video for delivery. Either good old MPEG-2, the workhorse of the video industry, or mp4, with H.264 video and AAC audio. You almost cannot go wrong if you use the following bitrates for these formats:

  • MPEG-2, SD: 8 Mbps
  • H.264, 480p: 3 Mbps
  • H.264, 720p: 8 Mbps
  • H.264, 1080p: 20 Mbps

I must admit that I have relatively little knowledge of Windows Media, but while it has been common for streaming video for a while, it has lost ground to H.264 video these days, and it is not a native format for most video editors, so I can’t recommend it. Generally I recommend staying away from Quicktime if at all possible. Although modern Quicktime files generally will work just fine because it contains more or less the same things as a mp4 with H.264 and AAC, I have seen at least one occurence where there were cards (think a couple of slides) at the beginning of the video which were not part of the video track, causing ffmpeg based players and encoders (think Youtube and VLC) to not display things as expected.

Fill the frame

In online video you only have a limited amount of pixels, it’s a shame to waste about of a third of the pixels available to encode just black because your content is letterboxed, pillarboxed, or worst of all: windowboxed. Letterboxed content looks like this:

Letterboxed video, for in-depth explanation on letterboxing, see the wikipedia entry

Letterboxed video, for in-depth explanation on letterboxing, see the wikipedia entry

Make sure there are no interlacing artifacts

One of the biggest killers for online video are interlacing artifacts. Interlacing artifacts are horizontal stripes, that can mostly be seen during fast horizontal movements, when the camera gets panned, or at very quick transitions. They are caused by the fact that back in the day televisions did not build up the picture progressively, but first rendered the odd lines, and then the even. Handbrake’s guide on interlacing is pretty good, and it is also a great tool to remove it.

Example of interlaced video

Example of video with interlacing artifacts

In almost all cases I have seen of interlacing artifacts, these have been caused by issues in the video that has been uploaded. The two ways you can get interlacing artifacts in your video are:

  • Encoding a video that was interlaced to progressive without running a deinterlace filter.
  • Resizing a interlaced video without deinterlacing it first.

As far as I can tell there is no real decent way to remove interlacing artifacts once the damage is done, so if you ever have issues with this, generally the only way to go is to move back to the step when your video was still interlaced, and fix things at that stage.