Sometimes, the world of Internet video on demand looks down on the TV. After all, in the Internet, users have the choice of 50 to 120 thousands of items to watch, 1000 times more than on PayTV or 10 times more than in DVD rental.
But, the internet video is still lacking fidelity. Here is how you should transcode if you want to provide most value for your Smart TV users and to target as wide audience as possible:
- If possible, do not use DVD as your source. Use at least BluRay sources, or request transcoding from mezzanine files. Owners of FullHD TV sets will see the difference and thank you.
- Absolutely stick with the native framerate. Otherwise the motion compensation logic in the TV set can be confused.
- For HD videos, try to use the bitrate of at least 6 Mbps VBR with 1920 x 1080p. If you support several bitrates per item, you should absolutely have a 12 Mbps VBR with 1920 x 1080p.
- H.264 is the video codec of your choice. Period.
- AAC or AAC+ is your audio codec. Do not economize on audio bitrate either; 384 kbps should be your minimum for stereo AAC.
- If you want to experiment with multichannel sound, use AC3. It is old, but a lot of TV sets do not support newer formats.
- If possible, use MPEG2 Transport Stream as your container format. It has the .TS extension, and should not be confused with M2TS (also known as MTS). If TS is not possible, use MP4.
- By not using any DRM you will widen the possible choice of TV sets capable of playing your stream. If you have a content provider not requiring you to use DRM, consider yourself very lucky. If you are forced to use DRM, stick with PlayReady. Marlin might play some more important role in the future (Marlin and PlayReady are both going to be part of the European HbbTV standard), and perhaps Widevine could be interesting, because it is Google. Other DRMs are not even remotely useful for Smart TVs.
- Even though video and audio conceptually appear to be two parallel streams in the container, in reality when looking at the physical bytes, you have of course chunks of video interspersed with chunks of audio. Ensure that the longest chunk does not exceed 1 to 2 seconds of payload. Eg. “1 second video”, “1 second audio”, “1 second video”, “1 second audio” in the file is OK. “5 seconds video”, “5 seconds audio”, “5 seconds video”, “5 seconds audio” is not OK.
- Do not have anything important in the first five seconds. Not every TV set will be able to start the playback from the very first frame. In some TV sets, audio will be unmuted only one second after beginning. This is usually an issue with short news clips or various talk shows that are cut so agressively that they tend to say a lot of things in the first second of video.
- Do not have anything important in the last five seconds. Some TV sets are sometimes not able to play the last several seconds (the hardware video decoder would prematurely report to be finished). This is usually an issue for agressively cut advertisements, putting the most important information (the name of product being advertized, for example) in the last two seconds.
- Summarizing the previous two bulletpoints: a) video clips shorter than 10 seconds have very good chances of not being played at all, b) do not cut agressively, insert several seconds of black before and after your video.
- Use an actual hardware device to QA your transcoding. Software players such as WMP or VLAN are much more robust and forgiving to format errors than hardware decoders.