我正在开发一个基于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端口上有数据时,切换到流媒体。
以下是我的问题:
在IP上播放视频后,有没有办法发现流媒体已经完成
有没有办法发现没有流媒体发生。
请帮忙。如果你需要更多的细节,我愿意帮助你
最佳答案
对于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
)