Encode/decode 带有 Gstreamer 的 VP8 或 VP9?

Encode/decode VP8 or VP9 with Gstreamer?

我正在尝试找到一种使用 VP8 或 VP9 压缩视频的方法,Googles WebM project 的一部分与 Gstreamer。

是否已经有可以处理VP8 的模块?如果是这样,我能得到一些简单的例子来说明如何在 broadcast/receive over RTP 中使用它吗?

到目前为止 Gstreamer official documentation 上没有任何内容。他们有 Matroska 支持,但这似乎只是为了分离容器。

编辑 显然有办法

服务器:

gst-launch-0.10 -v v4l2src ! video/x-raw-yuv,width=640,height=480 ! vp8enc ! rtpvp8pay ! udpsink host=127.0.0.1 port=9001

客户:

gst-launch-0.10 udpsrc port=9001 caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)VP8-DRAFT-IETF-01, payload=(int)96, ssrc=(uint)2990747501, clock-base=(uint)275641083, seqnum-base=(uint)34810" ! rtpvp8depay ! vp8dec ! ffmpegcolorspace ! Autovideosink

但是延迟比我预期的要高。

是的,已经支持 VP8.. VP9 缺少 de/payloader 下面的内容(不是真的 - gst 1.8 添加了支持 - 底部有详细信息)

它们包含在 vpx 模块中。 http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-plugins/html/gst-plugins-good-plugins-plugin-vpx.html

VP8: http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-plugins/html/gst-plugins-good-plugins-vp8enc.html

http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-plugins/html/gst-plugins-good-plugins-vp8dec.html

检查gst-inspect-1.0 vp8enc是否有

对于 RTP,您可以使用 webmmux、rtpvp8depay、rtpvp8pay、vp8enc/dec 等。

但是,正如 Burak Arslan 所说,pay/depayloader 目前 RTP 还没有准备好(甚至在我检查过的 1.6.1 中也没有)

对于示例 - post 一些管道,当它不工作时我们可以检查它:)

编辑

GStreamer 1.8 已发布,支持 VP9 - 添加了新元素 rtpvp9pay/rtpvp9depay