无法保存gstream videosink

问题描述 投票:0回答:1

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

我这里缺少任何参数吗?

gst-launch -v videotestsrc ! ximagesink ! filesink location=~/cupcake.mp4
WARNING: erroneous pipeline: could not link ximagesink0 to filesink0

我只想录制视频。

gstreamer
1个回答
2
投票

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

gst-inspect-1.0 ximagesink

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

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

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

不幸的是,这仍然不是您想要的,因为 videotestsrc 将生成原始视频,并且不会编码或混合为 mp4。如果您想要 mp4,则需要将其放入 mp4mux 中,该 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)

© www.soinside.com 2019 - 2024. All rights reserved.