You seem to be on the right track (though I can’t address whatever specific 
problems you are having, because the word “issues” isn’t very descriptive :-)

It’s important to do things in the right order, specifically:
1/ Call “initiate()” on your “MediaSubsession” object (to create RTP source 
objects)
2/ Call
        StreamReplicator* streamReplicator = StreamReplicator::createNew(env, 
mediaSubsession->.readSource())
  to create a replicator object.
3/ Call
        FramedSource* replica1 = streamReplicator->createStreamReplica();
        FramedSource* replica2 = streamReplicator->createStreamReplica();
4/ Call
        mediaSubsession->addFilter(replica1);
   to tell the downstream “QuickTimeFileSink” object (to be created next) to 
read from the (first) replica.
5/ Call
        QuickTimeFileSink::createNew()
   on your “MediaSubsession” object.
6/ Create appropriate filter(s) and sink for creating a Transport Stream from 
“replica2”.  This will be similar to the code in 
“testH264VideoToTransportStream.cpp”, ***except that*** you must use a 
“H264VideoStreamDiscreteFramer” rather than a “H264VideoStreamFramer”.  (This 
is because your input source (“replica2” in this case) will be a sequence of 
discrete H.264 NAL units, rather than an unstructured byte stream (e.g., from a 
file.)
7/ Call “startPlaying()” on each of your sinks (the “QuickTimeFileSink” that 
you created in step 5/, and the sink (“FileSink”?) that you created in step 6/.


Ross Finlayson
Live Networks, Inc.
http://www.live555.com/


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

Reply via email to