[Live-devel] Multiple File Sinks Issue

Ross Finlayson finlayson at live555.com
Fri Feb 22 13:49:55 PST 2019


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/




More information about the live-devel mailing list