如何使用最短剪辑编码视频矩阵?

时间:2012-04-04 21:31:21

标签: gstreamer video-encoding

我正在制作一个具有可变输入流长度的视频矩阵。 如何在完成最短视频剪辑后停止写入文件?

这很重要,因为我不想在剪辑播放完毕后看到空的视频框元素。

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. \

1 个答案:

答案 0 :(得分:0)

如果您知道最短的持续时间,您可以使用具有停止时间的搜索事件。整个管道完成后,EOS是按定义。您可以使用pad-probe来捕获视频混合器的接收器上的EOS,然后停止。