BBC HD

From LinuxTVWiki
Revision as of 14:56, 25 August 2008 by Jon2856 (talk | contribs)
Jump to navigation Jump to search

BBC HD on Astra 28.8e

Sky Digital HDTV Standards are a little different to the norm. You may encounter problems getting BBC HD working with MPlayer or other Linux media players.

When using szap to create channels.conf, the correct video PID is not selected by default. Using a video PID of 0 will not work as it does on non-HD channels and can cause errors such as "NO VIDEO!" or "Video: no video" in MPlayer. Here is the current working channels.conf entry (October 2007):

BBC HD:10847:v:0:22000:2318:2319:6940

As you can see the correct video PID is 2318. 2319 is the Dolby Digital (AC3) PID, choose 2320 if you want MP2 Layer 3 (Mp3).


The way in which the H.264 codec is defined in the TS stream is non-standard and a patch is required for mplayer:


--- mplayer/libmpdemux/video.c.ark	2007-02-25 15:31:54.000000000 +0100
+++ mplayer/libmpdemux/video.c	2007-02-25 15:39:20.000000000 +0100
@@ -81,6 +81,7 @@
     video_codec = VIDEO_OTHER;
     
 // Determine image properties:
+scan_video:
 switch(video_codec){
  case VIDEO_OTHER: {
  if((d_video->demuxer->file_format == DEMUXER_TYPE_ASF) || (d_video->demuxer->file_format == DEMUXER_TYPE_AVI)) {
@@ -250,6 +251,13 @@
    while(1){
       int i=sync_video_packet(d_video);
       if(i==0x1B3) break; // found it!
+      else if((i&~0x60) == 0x107 && i != 0x107) {
+        // Some H.264 HDTV stations, including e.g. ProSieben HD as of
+	// 2007/02/25, are misidentified as MPEG-2. This is probably what
+	// we're seeing here, let's try to fix it.
+	video_codec=VIDEO_H264;
+	goto scan_video;
+      }
       if(!i || !skip_video_packet(d_video)){
         if( mp_msg_test(MSGT_DECVIDEO,MSGL_V) )  mp_msg(MSGT_DECVIDEO,MSGL_V,"NONE :(\n");
         mp_msg(MSGT_DECVIDEO,MSGL_ERR,MSGTR_MpegNoSequHdr);

Special thanks to Bernhard Rosenkraenzer for this patch, it hasn't been accepted into the main MPlayer source tree as the maintainers do not want to support wrongly produced TS streams. The same problem exists on ProSieben HD in Germany and the above patch fixes that too.

On slower CPUs, very slow MPlayer playback of BBC HD can be fixed with the command-line option -lavdopts skiploopfilter=all. Also possibly add :threads=N option for multi-core CPUs.

Kaffeine plays BBC HD, see that page for more details.