How to record H.264 stream in VDR?

Message ID 4537BA87.8090109@chello.at
State New
Headers

Commit Message

Michael Müllner Oct. 19, 2006, 5:48 p.m. UTC
  Hallo,

some time ago there was a patch here in this list for H264 but it didnt 
work for me but maybe my prob is that me receive S13.0E only on my 
primary Card. (FF dvb-s)
If i add this patch VDR didnt del the VPid anymore but when i start an 
recording VDR restart itself and create only 0 bytes files.

Here the patch again maybe it works for you.

               case 3: // STREAMTYPE_11172_AUDIO
@@ -408,7 +410,7 @@
                          }
                       }
                       break;
-              //default: printf("PID: %5d %5d %2d %3d %3d\n", 
pmt.getServiceId(), stream.getPid(), stream.getStreamType(), 
pmt.getVersionNumber(), Channel->Number());//XXX
+              default: printf("PID: %5d %5d %2d %3d %3d\n", 
pmt.getServiceId(), stream.getPid(), stream.getStreamType(), 
pmt.getVersionNumber(), Channel->Number());//XXX
               }
             for (SI::Loop::Iterator it; (d = 
(SI::CaDescriptor*)stream.streamDescriptors.getNext(it, 
SI::CaDescriptorTag)); ) {
                 CaDescriptors->AddCaDescriptor(d, true);


regards
Mike

dvb schrieb:
> In DVB-S and DVB-T
> LUXE TV HD:11240:v:S13.0E:27500:0:36,37:0:0:13809:0:0:0
> VPID is 33
>
>
>
> _______________________________________________
> vdr mailing list
> vdr@linuxtv.org
> http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
>
  

Comments

dvb Oct. 20, 2006, 4:22 p.m. UTC | #1
No luck with this patch (1.4.1 & 1.4.3)  :(

they(tv company) use MPEG2 ID in H.264 stream
PID found:  512 (0x0200)  [PES: ITU-T Rec. H.262 | ISO/IEC 13818-2 or ISO/IEC 11172-2 video stream]

Oct 20 18:40:00 testbox vdr: [17789] transfer thread ended (pid=17201, tid=17789)
Oct 20 18:40:00 testbox vdr: [17201] buffer stats: 68244 (3%) used
Oct 20 18:40:00 testbox vdr: [17201] switching device 1 to channel 28
Oct 20 18:40:00 testbox vdr: [17201] timer 19 (28 1840-1842 'test264') start
Oct 20 18:40:00 testbox vdr: [17201] waiting for EPG info...
Oct 20 18:40:04 testbox vdr: [17201] no EPG info available
Oct 20 18:40:04 testbox vdr: [17201] executing '/usr/share/vdr/bin/vdrrecord-gate.sh before 
"/data/vdr/video/test264/2006-10-20.18.40.99.99.rec"'
Oct 20 18:40:04 testbox vdr: [17201] record /data/vdr/video/test264/2006-10-20.18.40.99.99.rec
Oct 20 18:40:04 testbox vdr: [17201] creating directory /data/vdr/video/test264
Oct 20 18:40:04 testbox vdr: [17201] creating directory 
/data/vdr/video/test264/2006-10-20.18.40.99.99.rec
Oct 20 18:40:08 testbox vdr: [17201] recording to 
'/data/vdr/video/test264/2006-10-20.18.40.99.99.rec/001.vdr'
Oct 20 18:40:08 testbox vdr: [17881] file writer thread started (pid=17201, tid=17881)
Oct 20 18:40:08 testbox vdr: [17882] recording thread started (pid=17201, tid=17882)
Oct 20 18:40:09 testbox vdr: [17201] switching to channel 11
Oct 20 18:40:09 testbox vdr: [17201] info: Channel not available!
Oct 20 18:40:11 testbox vdr: [17201] switching to channel 28
Oct 20 18:40:11 testbox vdr: [17201] buffer stats: 0 (0%) used
Oct 20 18:40:11 testbox vdr: [17201] max. latency time 10 seconds
Oct 20 18:40:11 testbox vdr: [17888] transfer thread started (pid=17201, tid=17888)
Oct 20 18:40:39 testbox vdr: [17881] ERROR: video data stream broken
Oct 20 18:40:39 testbox vdr: [17881] initiating emergency exit
Oct 20 18:40:39 testbox vdr: [17201] emergency exit requested - shutting down
...
Oct 20 18:40:39 testbox vdr: [17882] recording thread ended (pid=17201, tid=17882)
Oct 20 18:40:39 testbox vdr: [17881] file writer thread ended (pid=17201, tid=17881)
Oct 20 18:40:39 testbox vdr: [17201] buffer stats: 40608 (0%) used
Oct 20 18:40:39 testbox vdr: [17201] timer 19 (28 1840-1842 'test264') stop
Oct 20 18:40:39 testbox vdr: [17201] executing '/usr/share/vdr/bin/vdrrecord-gate.sh after 
"/data/vdr/video/test264/2006-10-20.18.40.99.99.rec"'
Oct 20 18:40:39 testbox vdr: [17888] transfer thread ended (pid=17201, tid=17888)
Oct 20 18:40:39 testbox vdr: [17201] buffer stats: 61664 (2%) used

...
Oct 20 18:40:40 testbox vdr: [17201] exiting
Oct 20 18:40:40 testbox vdr: [17201] emergency exit!
Oct 20 18:40:40 testbox vdr: [17228] Netwatcher thread ended (pid=17201, tid=17228)



----- Original Message ----- 
From: "Michael Müllner" <mi.muellner@chello.at>
To: "VDR Mailing List" <vdr@linuxtv.org>
Sent: Thursday, October 19, 2006 8:48 PM
Subject: Re: [vdr] How to record H.264 stream in VDR?


> Hallo,
>
> some time ago there was a patch here in this list for H264 but it didnt work for me but maybe my 
> prob is that me receive S13.0E only on my primary Card. (FF dvb-s)
> If i add this patch VDR didnt del the VPid anymore but when i start an recording VDR restart 
> itself and create only 0 bytes files.
>
> Here the patch again maybe it works for you.
>
> --- vdr-1.4.0/pat.c    2006-03-31 14:39:34.000000000 +0200
> +++ vdr-1.4.0.jarada/pat.c    2006-06-18 20:04:34.000000000 +0200
> @@ -340,6 +340,8 @@
>             switch (stream.getStreamType()) {
>               case 1: // STREAMTYPE_11172_VIDEO
>               case 2: // STREAMTYPE_13818_VIDEO
> +              case 0x19: // advanced codec HD digital television service
> +              case 0x1b: //ISO/IEC 14496-10 Video (MPEG-4 part 10/AVC, aka H.264)
>                       Vpid = stream.getPid();
>                       break;
>               case 3: // STREAMTYPE_11172_AUDIO
> @@ -408,7 +410,7 @@
>                          }
>                       }
>                       break;
> -              //default: printf("PID: %5d %5d %2d %3d %3d\n", pmt.getServiceId(), 
> stream.getPid(), stream.getStreamType(), pmt.getVersionNumber(), Channel->Number());//XXX
> +              default: printf("PID: %5d %5d %2d %3d %3d\n", pmt.getServiceId(), stream.getPid(), 
> stream.getStreamType(), pmt.getVersionNumber(), Channel->Number());//XXX
>               }
>             for (SI::Loop::Iterator it; (d = 
> (SI::CaDescriptor*)stream.streamDescriptors.getNext(it, SI::CaDescriptorTag)); ) {
>                 CaDescriptors->AddCaDescriptor(d, true);
>
>
> regards
> Mike
>
> dvb schrieb:
>> In DVB-S and DVB-T
>> LUXE TV HD:11240:v:S13.0E:27500:0:36,37:0:0:13809:0:0:0
>> VPID is 33
>>
>>
>>
>> _______________________________________________
>> vdr mailing list
>> vdr@linuxtv.org
>> http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
>>
>
> _______________________________________________
> vdr mailing list
> vdr@linuxtv.org
> http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
>
  
Reinhard Nissl Oct. 21, 2006, 7:24 a.m. UTC | #2
Hi,

dvb wrote:

> No luck with this patch (1.4.1 & 1.4.3)  :(
> 
> they(tv company) use MPEG2 ID in H.264 stream
> PID found:  512 (0x0200)  [PES: ITU-T Rec. H.262 | ISO/IEC 13818-2 or 
> ISO/IEC 11172-2 video stream]
> 
> Oct 20 18:40:09 testbox vdr: [17201] switching to channel 11
> Oct 20 18:40:39 testbox vdr: [17881] ERROR: video data stream broken

Just an idea: maybe you should disable cVideoRepacker. See remux.c 
#define TEST_cVideoRepacker.

cVideoRepacker can currently only parse MPEG1 and MPEG2 video streams.

Bye.
  

Patch

--- vdr-1.4.0/pat.c    2006-03-31 14:39:34.000000000 +0200
+++ vdr-1.4.0.jarada/pat.c    2006-06-18 20:04:34.000000000 +0200
@@ -340,6 +340,8 @@ 
             switch (stream.getStreamType()) {
               case 1: // STREAMTYPE_11172_VIDEO
               case 2: // STREAMTYPE_13818_VIDEO
+              case 0x19: // advanced codec HD digital television service
+              case 0x1b: //ISO/IEC 14496-10 Video (MPEG-4 part 10/AVC, 
aka H.264)
                       Vpid = stream.getPid();
                       break;