Time gstreamer:如何转换从文件中获取的一个流的渲染时间

Time gstreamer:如何转换从文件中获取的一个流的渲染时间,time,rendering,gstreamer,offset,Time,Rendering,Gstreamer,Offset,我有两个媒体文件(例如,“file0”和“file1”)和 我想把它们合并成一个“画中画”效果的 要在整个窗口上显示的“file0”中的内容, “file1”中的内容将显示在中的左上角 小盒子 还有一点是,应该呈现“file1”中的内容 在基准时间之后的一段时间,在上标记为“X1”的点 下图 换句话说,如果我将“videotestsrc”作为视频源输入, 我会得到下面的示例管道,它说明了我需要什么 要获得此任务的结果,请执行以下操作: gst-launch-1.0 -ev \ videote

我有两个媒体文件(例如,“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雪窗,出现绿色小框 启动后3秒(持续2秒)

因此,问题是-改变渲染时间的最佳方法是什么
文件1中的内容?(通过gstreamer插件,在管道中指定参数,或通过执行API调用)

最后,答案是:可以通过调用视频混音器和音频混音器元件的特定接收器板。因此,在上面的示例中,您将获得视频和音频混音器的接收器垫,并通过调用“gst pad set offset”指定偏移量。工作起来很有魅力


特别感谢Sebastian Dröge,他回答了非常

Hmm的问题,如果您愿意创建一个包装程序,您可以在五秒钟后添加第二个流。