<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" dir="ltr" style="font-size: 12pt; color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif, "EmojiFont", "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; --darkreader-inline-color:#e8e6e3;" data-darkreader-inline-color="">
<p>Dear all,<br>
</p>
<p><br>
</p>
<p>I am trying to send video H265 and audio AAC  from a camera and a mic using MPEG-TS, I previously sent video and audio using two rtsp sessions with
<span>H265VideoRTPSink</span> and <span>MPEG4GenericRTPSink and it works. Now with the configurations for mpeg-ts, openRTSP can only play audio but video somehow is discarded, then I removed the audio and keep only h265 but openRTSP client now saves video frames
 but I cannot play the file, ffplay is complaining that it could not find start code and cannot find codec parameters.
<br>
</span></p>
<p><span><br>
</span></p>
<p><span>Besides this I parsed the video stream and I removed nal start code 00000001 and I only send one NAL unit at a time.<br>
</span></p>
<p><br>
</p>
<p>Here is the relevant code for video hevc over mpeg-ts:<br>
<span></span></p>
<p><span><br>
</span></p>
<p><span><br>
</span></p>
<p><span>//create a RTSPSink object<br>
</span></p>
<p><span></span></p>
<div>
<div><span>RTSPSink</span>* sink = SimpleRTPSink::createNew(*env, &rtpGroupsock, 33, 90000, "video","MP2T", 1, True, False /*no 'M' bit*/);</div>
</div>
<p></p>
<p><br>
</p>
<p>//LiveSource is a class that inherit FramedSource class<br>
</p>
<p><span><span>LiveSource</span>* <span>vdoSource</span> = LiveSource::createNew(*env);</span></p>
<p><span><br>
</span></p>
<p><span>//<span> Create a framer for the Video Elementary Stream:</span><br>
</span></p>
<p><span></span></p>
<div><span>H265VideoStreamDiscreteFramer</span>* framer = H265VideoStreamDiscreteFramer::createNew(*dev, vdoSource,false);<br>
</div>
<div><br>
</div>
<div><span><span><span>MPEG2TransportStreamFromESSource</span></span>* tsFrames = MPEG2TransportStreamFromESSource::createNew(*env);</span><br>
</div>
<div><br>
</div>
<div><span> tsFrames->addNewVideoSource(framer , 6/*mpegVersion: H.265*/);</span></div>
<div><br>
</div>
<div>
<div>// Finally, start playing:<br>
 sink->startPlaying(*tsFrames, afterPlaying, NULL);</div>
</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
I also tried to use <span>H265VideoRTPSink</span> instead of SimpleRTPSink but there was nothing sent on network. What I may missing?
<p></p>
<p><span><br>
</span></p>
<p><span>Thank you for your help!</span></p>
<p><span><br>
</span></p>
<p><span>Sorin.<br>
</span></p>
<p><span><br>
</span></p>
<p><span><br>
</span></p>
<p><span></span><br>
</p>
</div>
</body>
</html>