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