首页 > 解决方案 > 如何检测一个漏斗插件来源已在 gstreamer 管道中结束?

问题描述

我正在使用 gstreamer 构建具有两个源的管道。一个是文件源 ( filesrc),另一个是appsrc. 当 filesrc 获得 EOS 时,管道不会退出。appsrc仍然会收到need-data信号,并且永远不会自行停止。在将 EOS 发送到管道之前,插件似乎funnel会等待所有来源结束。当 filesrc 到达文件末尾时,有没有办法得到通知?

gst-launch 命令如下所示:

gst-launch-1.0 funnel name=f \
appsrc name=appsrc-h264-sei do-timestamp=true block=true is-live=true ! video/x-h264, stream-format=byte-stream, alignment=au ! queue ! f. \
filesrc input.h264 ! queue ! f. \
f. ! queue ! h264parse ! video/x-h264, stream-format=byte-stream, alignment=au ! mp4mux ! filesink location=file.mp4

标签: gstreamerh.264

解决方案


您可以GstPadProbe在漏斗输入板上安装一个并检查回调中的 EOS 事件。


推荐阅读