0

我正在开发一个基于 IP 流的媒体播放器。我正在使用以下管道:

源:

gst-launch-1.0 -vvv udpsrc port=5004 ! application/x-rtp, payload=96 ! rtph2 64depay ! h264parse ! imxvpudec ! imxipuvideosink sync=false

下沉:

C:\gstreamer\1.0\x86_64\bin\gst-launch-1.0.exe -v filesrc location=C:\\gstreamer\\1.0\\x86_64\\bin\\hash.h264 ! h264parse ! rtph264pay ! udpsink host=153.77.205.139 port=5004 sync=true

这是概念的证明。现在,我们希望有一个可以执行相同操作的应用程序,但在没有流媒体或接收器没有数据时稍作调整,我们需要切换到离线基础媒体播放器,这意味着离线播放一组视频和当 udp 端口​​上有数据时,切换到流式传输。

以下是我的查询:

  1. 通过 IP 播放视频后,有什么方法可以确定流媒体是否已完成
  2. 有没有办法找出没有流媒体发生。

请帮忙。如果您需要更多详细信息,我随时准备为您提供帮助

4

1 回答 1

0

对于 udpsrc 有 timeout 属性,如果没有可用数据,它会在总线上发送一条消息(您可以尝试将其设置为 1 秒),因为流媒体已完成,您应该再次在总线上获取 EOS。(试试这个管道gst-launch-1.0 -vvvm udpsrc port=5004 timeout=100000000 ! application/x-rtp, payload=96 ! rtph2 64depay ! h264parse ! imxvpudec ! imxipuvideosink sync=false

于 2018-01-18T09:30:22.960 回答