1

我正在尝试按照这个简单的示例通过 RTP 流式传输 WebM VP8 视频。

我正在运行 Arch linux 64 位,我已经编译并安装了他们谈论的 gstreamer 版本(即 git 版本),我按照这些说明进行操作。

据我了解,从 git repo bilds gstreamer-1.0 构建,所以这就是我所拥有的。

我有GST_PLUGIN_PATHGST_PLUGIN_SYSTEM_PATH指向 /home/nschoe/usr/lib/gstreamer-1.0 (我已将这个 gstreamer-1.0 完全安装在我的主目录中)。

当我尝试该命令时,gst-launch-1.0 -v videotestsrc ! vp8enc ! rtpvp8pay ! udpsink host=127.0.0.1 port=9001我得到了错误:

GST_PIPELINE ./grammar.y:687:priv_gst_parse_yyparse: no element "vp8enc"

经过一番研究,我发现 vp8enc 应该在我已经安装的 gst-plugins-good 中。

但是当我跑步时,gst-inspect-1.0 -a | grep -i gst-plugins-good | grep -i vp8我得到了:

rtpvp8depay: Source module gst-plugins-good rtpvp8pay: Source module gst-plugins-good

所以我不明白为什么我没有 vp8enc 和 vp8dec。此外,当我运行时,locate vpx.so我得到以下结果(截断为相关结果):

/home/nschoe/usr/lib/gstreamer-1.0/libgstvpx.so /usr/lib/libvpx.so

前者最可能来自我从 git 克隆并安装在我的主目录中的 gst-plugins-good,后者是我从 Arch linux pacman 安装的,因为我认为它可以解决我的问题。

你能告诉我为什么我不能使用那个 vp8enc 插件吗?

提前感谢您的宝贵时间。

4

2 回答 2

2

gstreamer 1.0 也可以正确处理 webm,这可能是您的设置有问题。实际上建议停止使用 0.10,因为它已经过时且社区未维护。

是否 gst-inspect-1.0 /path/to/your/gst/libgstvpx.so

实际上列出了 vpx 的元素?

于 2014-06-17T12:52:29.613 回答
0

好吧,我仍然不知道发生了什么,但实际上 vp8 似乎是由 gstreamer-0.10 处理的:我从archlinux的包管理器中删除了所有内容并安装了 gstreamer-0.10 以及好的、坏的和基本的插件,我可以播放 .webm 文件。

有人可能想知道 gstreamer-0.10 可以正确处理 webm。

于 2014-06-17T08:48:12.060 回答