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

Attachment: MPEG2RTSPServer.cpp
Description: Binary data






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

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


_______________________________________________
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to