[Live-devel] H264VideoStreamFramer

malc av1474 at comtv.ru
Wed Sep 12 10:05:46 PDT 2012


Hello,

Few years back i've implemented a simple application which used
live555 to connect to an IP camera, acquire video stream via RTSP/RTP
and transmux video from H264ES to a MPEG2TS via libavformat, this
setup worked. Now being made aware of H264VideoStreamFramer i decided
to give it a try but am failing miserably.

Basically, i'm doing this:

            framer = H264VideoStreamFramer::createNew
                (*env, subsession->readSource (), True/*includeStartCodeInOutput*/);

            MPEG2TransportStreamFromESSource* tsFrames =
                MPEG2TransportStreamFromESSource::createNew (*env);
            tsFrames->addNewVideoSource(framer, 5/*mpegVersion: H.264*/);

            MediaSink *sink = new SimpleFileDumperSink (*env);
            subsession->sink = sink;
            subsession->sink->startPlaying(*tsFrames,
            // *subsession->readSource (),
            subsessionAfterPlaying,
            subsession);

So, in a nutshell, instead of feeding the SimpleFileDumperSink the
*subsession->readSource, i'm attempting to feed it tsFrames which feds
from the framer which feds from the RTP instead.

What i'm getting is an empty output file and console filled with something
like:

        MultiFramedRTPSource::doGetNextFrame1(): The total received
        frame size exceeds the client's buffer size (12443).  25905
        bytes of trailing data will be dropped!

o Timestamp on the copy of live555-latest.tar.gz is 2012-08-31
o The RTP server is live/mediaServer/live555MediaServer
o The sample ES stream is http://samples.mplayerhq.hu/V-codecs/h264/src13_hrc7_525_420_2.264
o The sample code that fails is at http://boblycat.org/~malc/es2ts.cpp

I'm not confident that what i'm doing is correct or proper way to achieve the
desired goal, so any hints/suggestions will be greatly appreciated.

--
mailto:av1474 at comtv.ru


More information about the live-devel mailing list