[linux-dvb] Bad TS from dvb-t recording?

Andrea Venturi a.venturi at cineca.it
Fri Mar 9 12:15:47 CET 2007


Torbjörn Lundquist wrote:
> Thanks. When I tried with 8192 it worked. But then I got all programs in
> the mux and the file got extremely big so I want only one program in my
> recording.

of course.
this is something you should achieve dumping only the PID contained in
the PMT table of the service you are after.

dvbsnoop will help you.

>  
> When I come home I will try with some other pid configurations. My goal
> is to have VLC to play the TS-stream, with lipsync.

i'd like to give my point of view. maybe someone who know can comment on
it..

AFAIK in the "linux dvb software stack" there are two different kind of
problems.

1. correct buffer management, i.e. the PCR restamping issue.

in general, in a transport stream with a fixed bit rate, each service
has a counter called PCR useful to get "exactly" filled (not to much:
overrun; not to low,: underrun) the small buffers in the "remote decoder"

when you strip down all the PIDs except the ones you need for a single
service, you are going to modify the rate of the saved stream SO you'll
need to modify (restamp) the PCR to maintain the consistency of this
counter.. otherwise you are going to see (during the replay of the
stream on a decoder) artifacts coming from the underrun and overrun..

anyway, when you feed a video decoder like VLC on a PC, you don't see
this kind of things because in a pc usually there is plenty of space in
the buffers AND you have flow control, so the decoder can stop and start
the reads from the file when it has full or empty buffers.

but this is something we need to cope with, if we want to move to a
better management of the MPEG TS features (expecially in constrained /
embedded environment or in multicast/IPTV)

BTW i just see (IIRC in some DVR dumps) that there are some tricks
implemented to "fake" this PCR feature, using for example another
counter (64 bits), in the head of each TS packets, where the recorder
saves the position of the packet in the "original" full TS, so when the
DVR makes the replay of the single service dump, i suppose it fills the
decoding pipeline with NULL packets between every TS packet not
adjacent, this way it restores correctly the original bit rate without
any hard computation.. clever and easy!


2. lipsync (DTS/PTS fields).

to get in sync audio and video streams there are these two fields with
counters inside, and they are all about when decode and present (i.e.
send to the screen and to the audio decoder) the video and audio frames..

how well are these fields supported in the linux video players, i don't
know..  but it seems to me something valuable to be investigated if we
want to improve the linux video applications.

IMHO we shoudln't need to enlarge buffers or wait some time just to get
insync audio and video IF the HW decoders are capable to do it sooner,
better and with less resource..

it's just a matter of better software (in the long run)

but of course, this is free (as freedom) software, so, thanks god AND
all the people already working on it with this open attitude; it's
already too much!! :-)

i'd like to say we can do something on this topic, but we are working
more on the infrastructure of DVB networks so it could be we can put
something out WRT the PCR/fakePCR issues (and reduce artifacts and/or
memory footprint in DVB applications) like a "smart DVB remultiplexer",
an improvement of our software TS manipulator called JustDvb-It:

  http://krusty.cineca.it/vpweb/cgi-bin/blosxom.cgi

[yes, i know it seems dead since long time, but we are still working on
it..]

but we are not working on the lipsync issues because we are using HW
boxed decoders.

hope it helps


>  
> When playing with mplayer I got video and audio out of sync. How do I
> fix that?
>  
> Andrea, I'll come back to you with the MUX-recording.
>  

fine

bye

andrea venturi




> Regards
> /Torbjörn
> 
> 
>  
> 2007/3/9, Andrea Venturi <a.venturi at cineca.it
> <mailto:a.venturi at cineca.it>>:
> 
>     Torbjörn Lundquist wrote:
>     > That solved it! Thanks.
>     >
>     > But how do I record a specific program in a mux? If I point out the
>     > video and sound pids for a program with
>     >
>     > dvbstream -f 522000 -o -tm 8 1249 1248 > recordings/test.ts
>     >
>     > The stream does not play in VLC.
> 
>     can you try with the wildcard pid 8192.
> 
>     dvbstream -f 522000 -o -tm 8 8192 > recordings/test.ts
> 
>     it just means "get all the TS" (supposed your card&driver are good to
>     dump all the stream without hardware pid filtering AND you are on a
>     large enough link i.e. NOT on a USB 1.1 bus!)
> 
>     as i told you, it's a 24Mbps streams (3MB per sec) at least here in
>     italy, this is the usual bit rate for DVB-T transmission
> 
> 
>     BTW in DVB-H transmission there's only a mere 5Mbps net payload .. we
>     already have two or three in Bologna. mobile tv is all about
>     reliability
>     thru redundancy!
> 
>     then play it with VLC and should be able to wade thru the hierarchy of
>     the TS and show you all the services available in the mux in the
>     Navigation menu.
> 
>     tell us it works this way AND you'll be on the right track.
> 
>     it could not work AFAIK ONLY IF you have a really poor signal but the
>     resulting file should show it. do this simple comparison between:
> 
>     - size_of_dump
> 
>     - time_of_rec_in_seconds * 3MB
> 
>     if they are similar, you have a good ts,
> 
>     if the size of the dump is really short, you don't have a good ts.
> 
>     anyway, i see you get all the relevant table of this mux, so you should
>     be able to dump a quite clean stream.
> 
> 
>     now, i just see in this mux the presence of MHP interactive
>     applications.
>     this is actually my main business here in italy, so i'd like to ask you
>     if you can put on a website a 3 min full dump (should be a 500MB size..)
>     to let my download it (then you can erase it..).
>     i like to study what's going on abroad!
> 
>     bye
> 
>     andrea venturi
> 
> 
> 
> 
>     > Here are the pids I got from dvbsnoop:
>     >
>     > dvbsnoop -s pidscan
>     > dvbsnoop V1.4.00 -- http://dvbsnoop.sourceforge.net/
>     <http://dvbsnoop.sourceforge.net/>
>     >
>     > ---------------------------------------------------------
>     > Transponder PID-Scan...
>     > ---------------------------------------------------------
>     > PID found:    0 (0x0000)  [SECTION: Program Association Table (PAT)]
>     > PID found:    1 (0x0001)  [SECTION: Conditional Access Table (CAT)]
>     > PID found:   18 (0x0012)  [SECTION: Event Information Table (EIT) -
>     > other transport stream, present/following]
>     > PID found:   41 (0x0029)  [SECTION: DVB CA message section (EMM/ECM)]
>     > PID found:   57 (0x0039)  [SECTION: DVB CA message section (EMM/ECM)]
>     > PID found:  870 (0x0366)  [SECTION: Program Map Table (PMT)]
>     > PID found:  871 (0x0367)  [SECTION: MHP- Application Information
>     Table
>     > (AIT)]
>     > PID found:  872 (0x0368)  [SECTION: DSM-CC - Download Data
>     Messages (DDB)]
>     > PID found:  878 (0x036e)  [PES: ISO/IEC 13818-3 or ISO/IEC 11172-3
>     audio
>     > stream]
>     > PID found:  879 (0x036f)  [PES: ITU-T Rec. H.262 | ISO/IEC 13818-2 or
>     > ISO/IEC 11172-2 video stream]
>     > PID found:  880 (0x0370)  [SECTION: Program Map Table (PMT)]
>     > PID found: 1002 (0x03ea)  [SECTION: DSM-CC - Download Data
>     Messages (DDB)]
>     > PID found: 1004 (0x03ec)  [PES: private_stream_1]
>     > PID found: 1010 (0x03f2)  [SECTION: Program Map Table (PMT)]
>     > PID found: 1011 (0x03f3)
>     > PID found: 1012 (0x03f4)  [SECTION: DSM-CC - Download Data
>     Messages (DDB)]
>     > PID found: 1016 (0x03f8)  [PES: ISO/IEC 13818-3 or ISO/IEC 11172-3
>     audio
>     > stream]
>     > PID found: 1017 (0x03f9)  [PES: private_stream_1]
>     > PID found: 1018 (0x03fa)  [PES: ISO/IEC 13818-3 or ISO/IEC 11172-3
>     audio
>     > stream]
>     > PID found: 1019 (0x03fb)  [PES: ITU-T Rec. H.262 | ISO/IEC 13818-2 or
>     > ISO/IEC 11172-2 video stream]
>     > PID found: 1021 (0x03fd)  [SECTION: MHP- Application Information Table
>     > (AIT)]
>     > PID found: 1022 (0x03fe)  [SECTION: DSM-CC - Download Data
>     Messages (DDB)]
>     > PID found: 1026 (0x0402)  [PES: ISO/IEC 13818-3 or ISO/IEC 11172-3
>     audio
>     > stream]
>     > PID found: 1027 (0x0403)  [PES: private_stream_1]
>     > PID found: 1028 (0x0404)  [PES: ISO/IEC 13818-3 or ISO/IEC 11172-3
>     audio
>     > stream]
>     > PID found: 1029 (0x0405)  [PES: ITU-T Rec. H.262 | ISO/IEC 13818-2 or
>     > ISO/IEC 11172-2 video stream]
>     > PID found: 1241 (0x04d9)  [SECTION: MHP- Application Information Table
>     > (AIT)]
>     > PID found: 1242 (0x04da)  [SECTION: DSM-CC - U-N messages (DSI or
>     DII)]
>     > PID found: 1248 (0x04e0)  [PES: ISO/IEC 13818-3 or ISO/IEC 11172-3
>     audio
>     > stream]
>     > PID found: 1249 (0x04e1)  [PES: ITU-T Rec. H.262 | ISO/IEC 13818-2 or
>     > ISO/IEC 11172-2 video stream]
>     > PID found: 1280 (0x0500)  [SECTION: Program Map Table (PMT)]
>     > PID found: 1290 (0x050a)  [SECTION: Program Map Table (PMT)]
>     > PID found: 5050 (0x13ba)  [SECTION: Program Map Table (PMT)]
>     > PID found: 5070 (0x13ce)  [SECTION: Program Map Table (PMT)]
>     > PID found: 5180 (0x143c)  [SECTION: Program Map Table (PMT)]
>     > PID found: 8191 (0x1fff)
>     >
>     >
>     >
>     >
> 
> 
> 
>     _______________________________________________
>     linux-dvb mailing list
>     linux-dvb at linuxtv.org <mailto:linux-dvb at linuxtv.org>
>     http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
>     <http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb>
> 
> 




More information about the linux-dvb mailing list