无法保存gstream videosink

时间:2015-05-11 12:56:24

标签: gstreamer

我只是想将虚拟视频保存到我的目录中。 在那种情况下,我最终会出现这个错误,所以我知道管道中出了问题。

我在这里缺少任何参数吗?

gst-launch -v videotestsrc! ximagesink! filesink location =〜/ cupcake.mp4 警告:错误的管道:无法将ximagesink0链接到filesink0

我只想录制视频。

1 个答案:

答案 0 :(得分:1)

ximagesink是一个接收器元素,因此没有输出(源接收器)。 此命令将告诉您元素的详细信息:

gst-inspect-1.0 ximagesink

请注意,ximagesink只有接收器垫而没有源垫,因此它不会产生任何输出。

您可以使用以下方法将视频直接转储到文件中:

gst-launch-1.0 videotestsrc ! filesink location=~/cupcake.raw

不幸的是,这仍然不是你想要的,因为videotestsrc将生成原始视频而不是编码或复用到mp4。如果你想要mp4,你需要将它放入mp4mux,它将收到的数据组织到mp4容器中。还建议对视频进行编码以减小其大小。假设您希望使用H.264作为编解码器。您可以使用元素x264enc编码为H.264

gst-launch-1.0 -e videotestsrc ! x264enc ! mp4mux ! filesink location=~/cupcake.mp4

请注意,我还添加了“-e”参数,该参数将使gst-launch-1.0发送EOS事件并等待EOS消息指示元素已完成工作。没有标志,管道就会被中断和中止。

无论如何,我建议您返回应用程序开发手册:http://gstreamer.freedesktop.org/documentation/ gst-launch-1.0的联机帮助页也很有用。

免责声明:您正在使用gstreamer 0.10,这是3年没有识别和过时,请升级到1.0(此答案针对1.0但是通过将命令更改为0.10可以轻松应用于0.10版本)