[Live-devel] Creating a RTSP stream from DVB-T hardware card

Ryan Walklin ryanwalklin at gmail.com
Fri Jul 11 15:52:11 PDT 2008


Hi,

I'm using an Elgato DVB-T USB tuner (EyeTV for DTT) in combination  
with the livemedia library to stream a MPEG2-TS stream containing h264  
video and AAC audio (LATM encapsulation) via RTSP over my LAN. I've  
based my streaming server on the testMPEG2TransportStreamer sample.

The EyeTV plugin SDK provides a callback which is activated when ~100  
or so packets have arrived, and sends the raw TS data via a pipe to  
the server code, running in another thread. I've modified the code to  
read from the other end of the pipe I created. I've also removed the  
MPEG2Framer from the chain as I presumed the packet stream was already  
in this format.

This done, I'm able to launch VLC and see the stream for 1-2 seconds,  
however VLC proceeds to crash with the console errors:

MultiFramedRTPSource::doGetNextFrame1(): The total received frame size  
exceeds the client's buffer size (48).  1388 bytes of trailing data  
will be dropped!
MultiFramedRTPSource::doGetNextFrame1(): The total received frame size  
exceeds the client's buffer size (112).  1324 bytes of trailing data  
will be dropped!
MultiFramedRTPSource::doGetNextFrame1(): The total received frame size  
exceeds the client's buffer size (60).  1376 bytes of trailing data  
will be dropped!
MultiFramedRTPSource::doGetNextFrame1(): The total received frame size  
exceeds the client's buffer size (8).  1428 bytes of trailing data  
will be dropped!


 From my reading of the mailing list archives, I understand that  
somewhere along the encoding chain (Presumably in ByteStreamFileSource  
(MultiFramedRTPSource) a buffer is being over-run, but I cannot fathom  
where. All the buffers seem to default to ~50-60kb, however from those  
errors it seems to be under 100 bytes most of the time. I note the sum  
of the streamed+dropped packets is 1440, so presumably this has  
something to do with network framing.

I've been playing with this all week and ended up more and more  
confused reading the source. I'd apprecitate it if anyone is able to  
shed light. I've attached my server thread source for your perusal.  
(createRTSPserver is essentially  main() from  
testtMPEG2TransportStreamer.cpp with my tweaks).

Regards,

Ryan Walklin

-------------- next part --------------
A non-text attachment was scrubbed...
Name: MPEG2RTSPServer.cpp
Type: application/octet-stream
Size: 6079 bytes
Desc: not available
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20080712/0fac44d3/attachment-0001.obj>
-------------- next part --------------





- stream structure
- using pipe to copy packets
- raw off card

- how to relay mpeg2 ts as live to rtsp
- buffer size




More information about the live-devel mailing list