1

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

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

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

1 回答 1

0

如果您知道最短的持续时间,则可以使用带有停止时间的搜索事件。当整个管道完成时,EOS 是按照定义的。您也许可以使用垫探针在 videomixer 的水槽垫上捕捉 EOS,然后停止。

于 2012-04-05T07:01:28.833 回答