<div dir="ltr"><div class="gmail_quote"><div dir="ltr"><div dir="ltr"><div dir="ltr">I've managed to come back and test the new optional parameter through a modified version of the testH264VideoToTransportStream.cpp however there seem to be issues with the final .TS file. I see the first two packets consist of the PAT and PMT, and I verified that I have the SPS and PPS NAL units before any H.264 NAL units, as well as all NAL units have the 0x00000001 start code prefixed to them. I have a working copy of a QuickTimeFileSink output file that I used with the original unmodified version of testH264VideoToTransportStream.cpp and that .TS file doesn't work either. Have there been any recent changes to the TS part of the LIVE555? Here is the relevant section of my code.<div><br></div><div><div> // Make stream replicas for the MPEG2-TS and QuickTime file sinks</div><div> replicator = StreamReplicator::createNew(envir(), subsession.readSource(),</div><div> false);</div><div> streamQT = replicator->createStreamReplica();</div><div> streamTS = replicator->createStreamReplica();</div><div><br></div><div> // Replace video stream in the MediaSession object with a replica for the QuickTime buffer and file sinks</div><div> subsession.addFilter(static_cast<FramedFilter*>(streamQT));</div><div><br></div><div> // Create a 'framer' filter for this RTP source, to generate presentation times for each NAL unit:</div><div> framer = H264VideoStreamDiscreteFramer::createNew(envir(), streamTS, true);<br></div><div><br></div><div> // Then create a filter that packs the H.264 video data into a Transport Stream:</div><div> MPEG2TransportStreamFromESSource* tsFrames =</div><div> MPEG2TransportStreamFromESSource::createNew(envir());</div><div> tsFrames->addNewVideoSource(framer, 5/*mpegVersion: H.264*/);</div><div> MediaSink* outputSink = FileSink::createNew(envir(), "out.ts");</div><div> outputSink->startPlaying(*tsFrames, nullptr,
nullptr);</div><div><br></div><div>Thanks,</div><div>Chris</div><div><br></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Mar 6, 2019 at 3:35 AM Ross Finlayson <<a href="mailto:finlayson@live555.com" target="_blank">finlayson@live555.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
<br>
> On Mar 2, 2019, at 10:29 AM, Chris Paucar <<a href="mailto:chris.paucar@roc-connect.com" target="_blank">chris.paucar@roc-connect.com</a>> wrote:<br>
> <br>
> Hi Ross,<br>
> <br>
> <a href="http://lists.live555.com/pipermail/live-devel/2014-August/018581.html" rel="noreferrer" target="_blank">http://lists.live555.com/pipermail/live-devel/2014-August/018581.html</a><br>
> <br>
> You mentioned in the above link about H264VideoStreamDiscreteFramer::createNew() getting the includeStartCodeInOutput parameter that H264VideoStreamFramer::createNew() currently has.<br>
<br>
Oh wow - I had promised to do this way back in 2014, but (somehow) forgot all about it.<br>
<br>
I’ve now installed a new version (2019.03.06) of the code that adds an (optional) “includeStartCodeInOutput” to “H264VideoStreamDiscreteFramer” and “H265VideoStreamDiscreteFramer”. (I haven’t tested this, but it should work OK. If not, let us know ASAP.)<br>
<br>
<br>
Ross Finlayson<br>
Live Networks, Inc.<br>
<a href="http://www.live555.com/" rel="noreferrer" target="_blank">http://www.live555.com/</a><br>
<br>
<br>
_______________________________________________<br>
live-devel mailing list<br>
<a href="mailto:live-devel@lists.live555.com" target="_blank">live-devel@lists.live555.com</a><br>
<a href="http://lists.live555.com/mailman/listinfo/live-devel" rel="noreferrer" target="_blank">http://lists.live555.com/mailman/listinfo/live-devel</a><br>
</blockquote></div></div></div></div></div>
</div></div>