[Live-devel] How to play a MPEG2-TS (H264 transport stream) live stream

leonardo.citraro at dos-web.net leonardo.citraro at dos-web.net
Tue Apr 12 00:10:35 PDT 2016


Il 2016-04-09 20:07 Ross Finlayson ha scritto:
>>> I managed to modify the testRTSPClient.cpp in order to obtain 
>>> MPEG2-TS packets in the array fReceiveBuffer correctly but when I 
>>> output them to stdout and pipe them to vlc there is a problem, vlc do 
>>> not recognize the stream.
>
> Sorry, but we can’t help you with problems with VLC; VLC is not our 
> software.
>
> Ross Finlayson
> Live Networks, Inc.
> http://www.live555.com/
>
>
> _______________________________________________
> live-devel mailing list
> live-devel at lists.live555.com
> http://lists.live555.com/mailman/listinfo/live-devel$



I am trying to figure out where the problme is in my modified 
testRTSPClient.cpp. The concerned line of code are the following:


void continueAfterSETUP(RTSPClient* rtspClient, int resultCode, char* 
resultString) {
    ...

    scs.framer = H264VideoStreamDiscreteFramer::createNew(env, 
scs.subsession->readSource());

    // this also make sense as it adds the start-code but the function 
afterGettingFrame() is never called!
    //scs.framer = H264VideoStreamFramer::createNew(env, 
scs.subsession->readSource(), True/*includeStartCodeInOutput*/);


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

    scs.subsession->sink = FileSink::createNew(env, "out.ts", 1100000);

    ...

    
scs.subsession->sink->startPlaying(*(scs.tsFrames),subsessionAfterPlaying, 
scs.subsession);

    ...
}

with this modifications the output file 'out.ts' seams to contains a 
video but I cannot play it. I tried with vlc, mplayer and smplayer.


More information about the live-devel mailing list