From LinuxTVWiki
Jump to navigation Jump to search

High-Definition Television. Means Broadcasts with higher resolutions than PAL or NTSC. For standards and backgrounds, see the Wikipedia article [1].

Getting some HDTV with Linux

This section assumes that you're familiar with command-line tweaking your card and receiving from it, and that you already have a completed channels.conf. If you're in doubt, see the Testing your DVB device.

If you're lucky, you can just tune into your HDTV channel with s/c/tzap and save the TS using dvbstream -o as you learned in the first steps. Try it -- but if you're less lucky, read the following:

You should also check that on the hardware side, you really can receive the PIDs that correspond to the HDTV channels. This includes problems that arrise if HDTV contents is on QAM256 transponders rather than QAM64 (for DVB-C) or on DVB-S2/DVB-T2 rather than DVB-S/DVB-T. Also, QAM256 reception is more error-prone than QAM64 and thus needs a good signal.

The next question is: can I receive contents with my card that is not MPEG-2? Most HDTV contents (at least in Europe) is broadcasted as MPEG-4 AVC/H.264. You can find out whether that's the case using (inspired by [2]):

czap "My HDTV channel of choice"
dvbsnoop -n 1  0

This gives you a list of Program_map_PIDs that you have at the multistream (not to confuse with a PID). Choose the right one for your channel, e.g. 96, and then do

dvbsnoop -n 1  96

This gives you output of which ePIDs/streams you got; watch out for lines with

     Stream_type: 27 (0x1b) [= AVC video stream as defined in ITU-T Rec. H.264 | ISO/IEC 14496-10 Video]

This means that this PID is H.264 encoded. Note the PID that comes two lines below:

     Elementary_PID: ...

For the audio ePID, look for

     Stream_type: 6

and note it.

Now try to save these two PIDs using dvbstream (e.g. audio 259, video 256):

dvbstream -o 256 259 >an_mpeg4_transport_stream

Note that you need at least 10 seconds to be able to see anything, as the keyframes are spaced by 10 seconds usually for MPEG4.

A note on "HDTV ready" computer-hardware

Nowadays, many DVB-cards (whether USB or PCI, whether DVB-T or DVB-C) are advertised with "HD-ready" or "HDTV" (for example, the newest Twinhan DVB-T card. But then, what does this really mean? An MPEG-2 TS in principle can always have high-definition contents, the TS container doesn't bother. But the sticker might mean that the card won't freak out if a TS/PS is not MPEG-2, but MPEG-4 (as this encoder is often used for HDTV). It might also mean, the card can handle high bandwidth TS (e.g. about 15 Mbit/s for HD-BBC in the DVB-T testrun in London, as opposed to 4 Mbit/s for the regular SDTV). But this is all not well defined, and therefore, this "HDTV ready" sticker might be more of a PR-thing...

However, in no case does it mean that the hardware has a hardware-decoder for HDTV-resolutions ("full-featured cards"). Such PCI-cards don't exist yet (end of 2006). (This makes it difficult to use them with the software VDR, as that one mostly relies on hardware-decoding.) The decoding therefore has to be done by the CPU, and HDTV requires fast hardware (>2GHz processors).

This note is complicated by the fact that many broadcaster will not send HDTV free to air, but either encrypt it (making additional hardware necessary: CI, CAM, which is not always possible to find for / connect to a given DVB-card) or turn a No-Copy-Flag on, which (at least currently) means it can't be handled by Linux. See also DVB-S2 and DVB-T2.