<div style="line-height:1.7;color:#000000;font-size:14px;font-family:Arial"><div style="margin: 0px;">Hi,</div><div style="margin: 0px;"><p data-sourcepos="1:1-1:67" dir="auto">I'm working on Ubuntu 20.04, with GStreamer 1.16.2 and FFmpeg 4.2.2</p>
<p data-sourcepos="3:1-3:45" dir="auto">Here's detailed steps to reproduce the issue.</p>
<ol data-sourcepos="5:1-8:0" dir="auto">
<li data-sourcepos="5:1-5:114">Download test video from <a href="https://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.webm" rel="nofollow noreferrer noopener" target="_blank">https://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.webm</a>
</li>
<li data-sourcepos="6:1-6:125">Convert to VP9 / PCM with FFmpeg command <code>ffmpeg -i sintel.webm -c:v vp9 -ar 8000 -ac 1 -c:a pcm_s16le sintel-vp9-pcm.mkv</code>
</li>
<li data-sourcepos="7:1-8:0">Convert to H264 / PCM with FFmpeg command <code>ffmpeg -i sintel.webm -c:v libx264 -ar 8000 -ac 1 -c:a pcm_s16le sintel-h264-pcm.mkv</code>
</li>
</ol>
<p data-sourcepos="9:1-9:131" dir="auto">Now we have two video files, sintel-vp9-pcm.mkv and sintel-h264-pcm.mkv, and we are going to send the video / audio streams by RTP.</p>
<p data-sourcepos="11:1-11:21" dir="auto">Commands for VP9 are:</p><pre class="code highlight" lang="shell"><span id="LC1" class="line" lang="shell"># sender</span>
<span id="LC2" class="line" lang="shell">gst-launch-1.0 rtpbin <span class="nv">name</span><span class="o">=</span>rtpbin <span class="se">\</span></span>
<span id="LC3" class="line" lang="shell"> filesrc <span class="nv">location</span><span class="o">=</span>/tmp/sintel-vp9-pcm.mkv <span class="o">!</span> matroskademux <span class="nv">name</span><span class="o">=</span>demux <span class="se">\</span></span>
<span id="LC4" class="line" lang="shell"> demux.audio_0 <span class="o">!</span> <span class="s2">"audio/x-raw, format=S16LE, width=16, rate=8000, channels=1, layout=interleaved"</span> <span class="o">!</span> alawenc <span class="o">!</span> rtppcmapay <span class="o">!</span> rtpbin.send_rtp_sink_0 <span class="se">\</span></span>
<span id="LC5" class="line" lang="shell"> demux.video_0 <span class="o">!</span> rtpvp9pay <span class="o">!</span> rtpbin.send_rtp_sink_1 <span class="se">\</span></span>
<span id="LC6" class="line" lang="shell"> rtpbin.send_rtp_src_0 <span class="o">!</span> udpsink <span class="nv">host</span><span class="o">=</span>127.0.0.1 <span class="nv">port</span><span class="o">=</span>5000 <span class="nb">sync</span><span class="o">=</span><span class="nb">true </span><span class="nv">async</span><span class="o">=</span><span class="nb">false</span> <span class="se">\</span></span>
<span id="LC7" class="line" lang="shell"> rtpbin.send_rtcp_src_0 <span class="o">!</span> udpsink <span class="nv">host</span><span class="o">=</span>127.0.0.1 <span class="nv">port</span><span class="o">=</span>5001 <span class="nb">sync</span><span class="o">=</span><span class="nb">false </span><span class="nv">async</span><span class="o">=</span><span class="nb">false</span> <span class="se">\</span></span>
<span id="LC8" class="line" lang="shell"> rtpbin.send_rtp_src_1 <span class="o">!</span> udpsink <span class="nv">host</span><span class="o">=</span>127.0.0.1 <span class="nv">port</span><span class="o">=</span>5002 <span class="nb">sync</span><span class="o">=</span><span class="nb">true </span><span class="nv">async</span><span class="o">=</span><span class="nb">false</span> <span class="se">\</span></span>
<span id="LC9" class="line" lang="shell"> rtpbin.send_rtcp_src_1 <span class="o">!</span> udpsink <span class="nv">host</span><span class="o">=</span>127.0.0.1 <span class="nv">port</span><span class="o">=</span>5003 <span class="nb">sync</span><span class="o">=</span><span class="nb">false </span><span class="nv">async</span><span class="o">=</span><span class="nb">false</span></span>
<span id="LC10" class="line" lang="shell"># client</span>
<span id="LC11" class="line" lang="shell">gst-launch-1.0 rtpbin <span class="nv">name</span><span class="o">=</span>rtpbin <span class="se">\</span></span>
<span id="LC12" class="line" lang="shell"> udpsrc <span class="nv">address</span><span class="o">=</span>127.0.0.1 <span class="nv">port</span><span class="o">=</span>5000 <span class="nv">caps</span><span class="o">=</span><span class="s2">"application/x-rtp, media=audio, encoding-name=PCMA, clock-rate=8000"</span> <span class="o">!</span> rtpbin.recv_rtp_sink_0 <span class="se">\</span></span>
<span id="LC13" class="line" lang="shell"> udpsrc <span class="nv">address</span><span class="o">=</span>127.0.0.1 <span class="nv">port</span><span class="o">=</span>5001 <span class="nv">caps</span><span class="o">=</span><span class="s2">"application/x-rtcp"</span> <span class="o">!</span> rtpbin.recv_rtcp_sink_0 <span class="se">\</span></span>
<span id="LC14" class="line" lang="shell"> udpsrc <span class="nv">address</span><span class="o">=</span>127.0.0.1 <span class="nv">port</span><span class="o">=</span>5002 <span class="nv">caps</span><span class="o">=</span><span class="s2">"application/x-rtp, media=video, encoding-name=VP9, clock-rate=90000"</span> <span class="o">!</span> rtpbin.recv_rtp_sink_1 <span class="se">\</span></span>
<span id="LC15" class="line" lang="shell"> udpsrc <span class="nv">address</span><span class="o">=</span>127.0.0.1 <span class="nv">port</span><span class="o">=</span>5003 <span class="nv">caps</span><span class="o">=</span><span class="s2">"application/x-rtcp"</span> <span class="o">!</span> rtpbin.recv_rtcp_sink_1 <span class="se">\</span></span>
<span id="LC16" class="line" lang="shell"> rtpbin. <span class="o">!</span> rtppcmadepay <span class="o">!</span> queue <span class="o">!</span> autoaudiosink <span class="nb">sync</span><span class="o">=</span><span class="nb">true</span> <span class="se">\</span></span>
<span id="LC17" class="line" lang="shell"> rtpbin. <span class="o">!</span> rtpvp9depay <span class="o">!</span> queue <span class="o">!</span> avdec_vp9 <span class="o">!</span> autovideosink <span class="nb">sync</span><span class="o">=</span><span class="nb">true</span></span>
</pre></div><div style="margin: 0px;"><div style="margin: 0px;">It works and a window will pop up showing the video with audio.</div><div style="margin: 0px;">
<p data-sourcepos="34:1-34:22" dir="auto">Commands for H264 are:</p></div><div style="margin: 0px;"><pre class="code highlight" lang="shell"><span id="LC1" class="line" lang="shell"># sender</span>
<span id="LC2" class="line" lang="shell">gst-launch-1.0 rtpbin <span class="nv">name</span><span class="o">=</span>rtpbin <span class="se">\</span></span>
<span id="LC3" class="line" lang="shell"> filesrc <span class="nv">location</span><span class="o">=</span>/tmp/sintel-h264-pcm.mkv <span class="o">!</span> matroskademux <span class="nv">name</span><span class="o">=</span>demux <span class="se">\</span></span>
<span id="LC4" class="line" lang="shell"> demux.audio_0 <span class="o">!</span> <span class="s2">"audio/x-raw, format=S16LE, width=16, rate=8000, channels=1, layout=interleaved"</span> <span class="o">!</span> alawenc <span class="o">!</span> rtppcmapay <span class="o">!</span> rtpbin.send_rtp_sink_0 <span class="se">\</span></span>
<span id="LC5" class="line" lang="shell"> demux.video_0 <span class="o">!</span> rtph264pay <span class="o">!</span> rtpbin.send_rtp_sink_1 <span class="se">\</span></span>
<span id="LC6" class="line" lang="shell"> rtpbin.send_rtp_src_0 <span class="o">!</span> udpsink <span class="nv">host</span><span class="o">=</span>127.0.0.1 <span class="nv">port</span><span class="o">=</span>5000 <span class="nb">sync</span><span class="o">=</span><span class="nb">true </span><span class="nv">async</span><span class="o">=</span><span class="nb">false</span> <span class="se">\</span></span>
<span id="LC7" class="line" lang="shell"> rtpbin.send_rtcp_src_0 <span class="o">!</span> udpsink <span class="nv">host</span><span class="o">=</span>127.0.0.1 <span class="nv">port</span><span class="o">=</span>5001 <span class="nb">sync</span><span class="o">=</span><span class="nb">false </span><span class="nv">async</span><span class="o">=</span><span class="nb">false</span> <span class="se">\</span></span>
<span id="LC8" class="line" lang="shell"> rtpbin.send_rtp_src_1 <span class="o">!</span> udpsink <span class="nv">host</span><span class="o">=</span>127.0.0.1 <span class="nv">port</span><span class="o">=</span>5002 <span class="nb">sync</span><span class="o">=</span><span class="nb">true </span><span class="nv">async</span><span class="o">=</span><span class="nb">false</span> <span class="se">\</span></span>
<span id="LC9" class="line" lang="shell"> rtpbin.send_rtcp_src_1 <span class="o">!</span> udpsink <span class="nv">host</span><span class="o">=</span>127.0.0.1 <span class="nv">port</span><span class="o">=</span>5003 <span class="nb">sync</span><span class="o">=</span><span class="nb">false </span><span class="nv">async</span><span class="o">=</span><span class="nb">false</span></span>
<span id="LC10" class="line" lang="shell"># client</span>
<span id="LC11" class="line" lang="shell">gst-launch-1.0 rtpbin <span class="nv">name</span><span class="o">=</span>rtpbin <span class="se">\</span></span>
<span id="LC12" class="line" lang="shell"> udpsrc <span class="nv">address</span><span class="o">=</span>127.0.0.1 <span class="nv">port</span><span class="o">=</span>5000 <span class="nv">caps</span><span class="o">=</span><span class="s2">"application/x-rtp, media=audio, encoding-name=PCMA, clock-rate=8000"</span> <span class="o">!</span> rtpbin.recv_rtp_sink_0 <span class="se">\</span></span>
<span id="LC13" class="line" lang="shell"> udpsrc <span class="nv">address</span><span class="o">=</span>127.0.0.1 <span class="nv">port</span><span class="o">=</span>5001 <span class="nv">caps</span><span class="o">=</span><span class="s2">"application/x-rtcp"</span> <span class="o">!</span> rtpbin.recv_rtcp_sink_0 <span class="se">\</span></span>
<span id="LC14" class="line" lang="shell"> udpsrc <span class="nv">address</span><span class="o">=</span>127.0.0.1 <span class="nv">port</span><span class="o">=</span>5002 <span class="nv">caps</span><span class="o">=</span><span class="s2">"application/x-rtp, media=video, encoding-name=H264, clock-rate=90000"</span> <span class="o">!</span> rtpbin.recv_rtp_sink_1 <span class="se">\</span></span>
<span id="LC15" class="line" lang="shell"> udpsrc <span class="nv">address</span><span class="o">=</span>127.0.0.1 <span class="nv">port</span><span class="o">=</span>5003 <span class="nv">caps</span><span class="o">=</span><span class="s2">"application/x-rtcp"</span> <span class="o">!</span> rtpbin.recv_rtcp_sink_1 <span class="se">\</span></span>
<span id="LC16" class="line" lang="shell"> rtpbin. <span class="o">!</span> rtppcmadepay <span class="o">!</span> queue <span class="o">!</span> autoaudiosink <span class="nb">sync</span><span class="o">=</span><span class="nb">true</span> <span class="se">\</span></span>
<span id="LC17" class="line" lang="shell"> rtpbin. <span class="o">!</span> rtph264depay <span class="o">!</span> queue <span class="o">!</span> avdec_h264 <span class="o">!</span> autovideosink <span class="nb">sync</span><span class="o">=</span><span class="nb">true</span></span>
</pre><pre class="code highlight" lang="shell"><p data-sourcepos="54:1-54:80" dir="auto">It does not work and no window pops up. There is no warning / error logs either.</p><p data-sourcepos="54:1-54:80" dir="auto">It seems that something's wrong with the elements' internal implementations, or an appropriate warning / error message is absent.</p></pre></div><div style="margin: 0px;">I have also created an issue on <a href="https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/774">https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/774</a></div><div style="margin: 0px;"><br></div><div style="margin: 0px;">Any help that can move me in the right direction to solve this would be appreciated :)</div><div style="margin: 0px;"><br></div><div style="margin: 0px;">Regards,</div><div style="margin: 0px;">Windy</div></div></div><br><br><span title="neteasefooter"><p> </p></span>