<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p>Generally when i have issues where only the first frame gets
drawn, it is a time stamping issue.</p>
<p>The pipeline will preroll and pull the first frame, but then wait
for data to match the current time clock. The buffers you are
supplying to the appsrc should be timestamped. The videorate
plugin might also work (it works really well with sources that
sometimes have timestamps). But when you tell appsrc format=time,
it is expecting timestamps. Or at least that is my understanding.</p>
<p>In my situation, I have a pipeline that I pass frames to after
the main pipeline has started, so I have to adjust each timestamp
by an offset (this is on the new-sample callback on my appsink
which feeds my appsrc).</p>
<p><span style=" color:#5555ff;">GST_BUFFER_PTS</span><span style="
color:#aaaaaa;">(</span>buffer<span style=" color:#aaaaaa;">)</span><span
style=" color:#c0c0c0;"> </span><span style=" color:#aaaaaa;">=</span><span
style=" color:#c0c0c0;"> </span><span style=" color:#5555ff;">GST_BUFFER_PTS</span><span
style=" color:#aaaaaa;">(</span>buffer<span style="
color:#aaaaaa;">)</span><span style=" color:#c0c0c0;"> </span><span
style=" color:#aaaaaa;">- offset;<br>
</span></p>
<div class="moz-cite-prefix">Hopefully this helps!</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix">On 11/18/2019 7:10 AM, Shishigami
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:1574089803584-0.post@n4.nabble.com">
<pre class="moz-quote-pre" wrap="">I'm on Windows 10 using Gstreamer 1.16.1.
I'm trying to run two pipelines in parallel. Sender gets data from appsrc
(OpenCV) and writes them to UDP sink:
appsrc is-live=true format=time ! videoconvert ! video/x-raw, format=I420 !
x264enc speed-preset=superfast tune=zerolatency byte-stream=true
key-int-max=15 ! rtph264pay pt=96 config-interval=5 ! udpsink sync=false
host=localhost port=8553
Receiver reads from UDP source and uses gst-rtsp-server to provide an RTSP
stream:
udpsrc address=localhost port=8553 caps="application/x-rtp,
clock-rate=90000, payload=96" ! rtpjitterbuffer ! rtph264depay ! rtph264pay
name=pay0 pt=96
Opening the stream in VLC media player, the resulting frame from OpenCV does
show up, but it never changes. In Unreal Engine (target environment) the
stream opens fine, but it only shows a gray image.
I'm not sure if this is related, but I set GST_DEBUG and get the following
output from gst-rstp-server:
0:00:03.329599300 6124 0000024F68D88700 FIXME rtspmedia
rtsp-media.c:4168:gst_rtsp_media_suspend: suspend for dynamic pipelines
needs fixing
0:00:03.329990500 6124 0000024F68D88700 WARN rtspmedia
rtsp-media.c:4194:gst_rtsp_media_suspend: media 0000024F68DB3220 was not
prepared
0:00:03.339047900 6124 0000024F68D88700 FIXME rtspclient
rtsp-client.c:1818:handle_play_request:<GstRTSPClient@0000024F68D89850> Add
support for seek style (null)
0:00:03.339776300 6124 0000024F68D88700 FIXME rtspmedia
rtsp-media.c:2684:gst_rtsp_media_seek_full:<GstRTSPMedia@0000024F68DB3220>
Handle going back to 0 for none live not seekable streams.
I tried using fpsdisplaysink with the following pipeline (instead of
receiver) and that works:
gst-launch-1.0 -v udpsrc address=localhost port=8553
caps="application/x-rtp,clock-rate=90000,payload=96" ! rtpjitterbuffer !
rtph264depay ! decodebin ! videoconvert ! fpsdisplaysink
But the FPS is pretty bad, averaging at 2.29, which is a far cry from the 30
FPS I'm looking to achieve:
last-message = rendered: 240, dropped: 0, current: 2.25, average: 2.29
Why does it work with fpsdisplaysink but not RTSP? I'd highly highly
appreciate any help!
--
Sent from: <a class="moz-txt-link-freetext" href="http://gstreamer-devel.966125.n4.nabble.com/">http://gstreamer-devel.966125.n4.nabble.com/</a>
_______________________________________________
gstreamer-devel mailing list
<a class="moz-txt-link-abbreviated" href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a>
<a class="moz-txt-link-freetext" href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a></pre>
</blockquote>
</body>
</html>