time - gstreamer:如何改变从文件中提取的一个流的渲染时间

标签 time rendering gstreamer offset

我有两个媒体文件(比如“file0”和“file1”)和
我想将它们合并成一个具有“画中画”效果的单个 -
“file0”中的内容将显示在整个窗口中,
并且“file1”中的内容将显示在左上角
较小的盒子。

还有一点是应该呈现来自“file1”的内容
从基准时间开始的一段时间后,在标记为“X1”的点上
下图。

enter image description here

换句话说,如果我将“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-pad-set-offset用于 videomixer 和 audiomixer 元素的特定接收器垫。因此,在上面的示例中,您将获得视频和音频混合器的 sink_1 垫,并通过调用“gst-pad-set-offset”来指定偏移量。奇迹般有效。

特别感谢 Sebastian Dröge,他的回答非常好 similar question

关于time - gstreamer:如何改变从文件中提取的一个流的渲染时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37675659/

相关文章:

c++ - c++中两次时间的区别

c - 确保程序只运行 N 秒

VBA - 将日期和时间替换为星期几和 AM/PM

ASP.NET Web 表单渲染引擎输出控制树?寻找有关渲染逻辑的信息

c# - 将 Playbin 状态设置为 NULL 或 READY 后 GStreamer XOverlay 丢失

date - 带有阿拉伯数字的回历、格里高利日期和时间

reactjs - 如何根据设备大小渲染不同的组件?

internet-explorer - 什么是 IE 开发人员工具栏中的 <!> 元素

opencv - Yocto构建中OpenCV中的Gsteamer冲突声明

ios - 找不到 GStreamer Xcode 10.1 gst/gst.h