我有两个媒体文件(例如“file0”和“file1”)
我想将它们合并成一个具有“画中画”效果的单个 -
“file0”中的内容要显示在整个窗口上,
并且“file1”中的内容将显示在左上角
较小的盒子。
还有一点是“file1”中的内容应该被渲染
从基准时间晚一些时间,在标记为“X1”的点
如下图。
换句话说,如果我将“videotestsrc”作为视频源输入,
我会得到以下示例管道,它说明了我需要什么
作为此任务的结果:
gst-launch-1.0 -ev \
videotestsrc pattern="snow" num_buffers=100 ! queue ! videoscale ! capsfilter caps="video/x-raw,width=320,height=240,framerate=15/1" ! videoconvert ! videomixer.sink_0 \
videotestsrc pattern=5 timestamp-offset=3000000000 num_buffers=30 ! queue ! videoscale ! capsfilter caps="video/x-raw,width=120,height=80,framerate=15/1" ! videoconvert ! videomixer.sink_1 \
videomixer name="videomixer" ! autovideosink
(您将看到雪白的 320x240 窗口,并出现小绿色框
从开始三秒后两秒)
所以,问题是 - 改变渲染时间的最佳方法是什么
file1 的内容? (通过 gstreamer 插件,在管道中指定参数,或者通过执行 API 调用)
最后答案:可以通过调用GST 垫设置偏移 https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#gst-pad-set-offset适用于视频混音器和音频混音器元件的特定水槽垫。因此,在上面的示例中,您将获得视频和音频混合器的接收器_1 pad,并通过调用“gst-pad-set-offset”指定偏移量。奇迹般有效。
特别感谢 Sebastian Dröge 的回答非常好类似的问题 http://gstreamer-devel.966125.n4.nabble.com/gst-launcher-1-0-setting-pad-offset-tp4672162p4672168.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)