gstreamer - 使用 Gstreamer 编码/解码 VP8 或 VP9?

我正试图找到一种方法来使用 VP8 或 VP9 压缩视频,这是 Googles WebM project 的一部分使用 Gstreamer。

是否已经有可以处理 VP8 的模块?如果是这样,我能得到一些简单的例子来说明如何在通过 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 所说,RTP 的 pay/depayloader 目前还没有准备好(甚至在我检查过的 1.6.1 中也没有)

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

编辑

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

https://stackoverflow.com/questions/33306265/

相关文章:

maven - hudson:maven-sonar-plugin 执行无法从服务器下载库

isabelle - 使用集合理解的函数的终止证明

jboss - Keycloak 自定义验证输出消息

amazon-web-services - Ansible:为新创建的实例分配一个弹性IP

directx-12 - DirectX12 - ExecuteCommandLists 和 Pre

git - SourceTree 将 pull 的文件视为未提交的更改

c# - 如何使自定义标题栏上的无边框表单可拖动?

html - HTML LocalStorage 中的数据在其他窗口/选项卡中可用所需的时间

r - 使用平滑/抖动创建 "spaghetti"纵向图

html - 滚动超出顶部或底部时操纵浏览器窗​​口的颜色