[Live-devel] H264 working in openRTSP but not testRTSPClient

Shervin Emami shervin at dibaustralia.com.au
Tue Dec 22 16:18:07 PST 2015


Hi,

Firstly I'd like to say thanks for the liveMedia library and for supporting
the community! But I have a problem ...

When I run "openRTSP -b 300000 rtsp://192.168.2.101" on the H.264 stream of
my IP camera it works perfectly, but when I tried modifying testRTSPClient
to do the equivalent (ie: saving NAL packets to a H264 raw bitstream file),
it works perfectly sometimes but occasionally the video looks broken.

I compared the output using h264bitstream (
https://github.com/aizvorski/h264bitstream) and found the difference to be
that sometimes my testRTSPClient code isn't saving an IDR frame and that
seems to be causing the weird videos. Anyway, here is the code I used
inside testRTSPClient, I basically got testRTSPClient to call the same
functions as openRTSP, so I assume there is something else I have to do to
get testRTSPClient handling H264 correctly:

I replaced the line in continueAfterSETUP() of testRTSPClient.cpp from:

    scs.subsession->sink = DummySink::createNew(env, *scs.subsession,
rtspClient->url());

With this code (taken from createOutputFiles() in playCommon.cpp):

    FileSink* fileSink = NULL;
    if (strcmp(scs.subsession->mediumName(), "video") == 0) {
        if (strcmp(scs.subsession->codecName(), "H264") == 0) {
            char outFileName[1000] = "video.264";
            unsigned int fileSinkBufferSize = 300000;

            // For H.264 video stream, we use a special sink that adds
'start codes',
            // and (at the start) the SPS and PPS NAL units:
            fileSink = H264VideoFileSink::createNew(env, outFileName,
                            scs.subsession->fmtp_spropparametersets(),
                            fileSinkBufferSize);
        }
    }
    scs.subsession->sink = fileSink;


Is there anything that needs to be done to testRTSPClient so it generates
H264 raw bitstream files properly?

Cheers,
Shervin Emami.
Senior Embedded Vision Engineer,
DIB Australia.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20151223/83f53c84/attachment.html>


More information about the live-devel mailing list