我正在制作一个具有可变输入流长度的视频矩阵。 如何在完成最短视频剪辑后停止写入文件?
这很重要,因为我不想在剪辑播放完毕后看到空的视频框元素。
gstreamer是否提供了一些功能,可以在一段超时后停止处理?
GST_DEBUG=2 gst-launch-0.10 -e videomixer2 name=mix ! ffmpegcolorspace ! jpegenc ! avimux ! filesink location=test.avi \
uridecodebin uri="file:///home/me/1.wmv" ! videoscale ! videorate ! "video/x-raw-yuv,width=300,height=200, framerate=25/1" ! videobox border-alpha=0 top=0 left=0 ! mix. \
uridecodebin uri="file:///home/me/2.wmv" ! videoscale ! videorate ! "video/x-raw-yuv,width=300,height=200,framerate=25/1" ! videobox border-alpha=0 top=0 left=-300 ! mix. \
uridecodebin uri="file:///home/me/3.wmv" ! videoscale ! videorate ! "video/x-raw-yuv,width=300,height=200,framerate=25/1" ! videobox border-alpha=0 top=-200 left=0 ! mix. \
uridecodebin uri="file:///home/me/4.wmv" ! videoscale ! videorate ! "video/x-raw-yuv,width=300,height=200,framerate=25/1" ! videobox border-alpha=0 top=-200 left=-300 ! mix. \
答案 0 :(得分:0)
如果您知道最短的持续时间,您可以使用具有停止时间的搜索事件。整个管道完成后,EOS是按定义。您可以使用pad-probe来捕获视频混合器的接收器上的EOS,然后停止。