Gstreamer在PLAYING状态下更改源

时间:2014-09-09 11:03:36

标签: python c gstreamer

大家好我想知道如何在不改变状态的情况下在管道中的不同来源之间切换,例如,如果我有:

来源1

 filesrc location=file1 ! decodebin ! autovideosink

来源2

 filesrc location=file2 ! decodebin ! autovideosink

来源3

 filesrc location=file3 ! decodebin ! autovideosink

我想完成像电视频道切换这样的事情。是否可以动态更改位置属性?我一遍又一遍地搜索并没有发现任何具体内容。如果你能指出一些代码示例Cpython,我将不胜感激。

2 个答案:

答案 0 :(得分:1)

你不能动态更改filesrc位置,或者你可以改变你的逻辑,而不是filesrc使用fdsrc并编写一个单独的应用程序,从file1读取数据并泵到fdsrc的fd。所以当你想从file1切换到file2 / file3时,你只需要告诉你的应用程序开始从file2 / file3中抽取数据。

希望有所帮助!

答案 1 :(得分:1)

IMO你最好的选择就是杀死旧流程并启动一个新流程。

在多种文件集的长期运行场景中,您可以依靠各种各样的GStreamer元素来可靠地清理自己。