我正试图找到一种方法来使用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
但是延迟比我预期的要高。
答案 0 :(得分:2)
是支持VP8 .. VP9缺少de / payloader以下更多(不是真的 - gst 1.8增加了支持 - 底部的详细信息)
检查gst-inspect-1.0 vp8enc
是否有
对于RTP,您可以使用webmmux,rtpvp8depay,rtpvp8pay,vp8enc / dec等。
然而,正如Burak Arslan所说,现在还没有准备好RTP的付费/延期付款(即使是在我检查过的1.6.1中)
对于示例 - 使用它发布一些管道,我们可以在它不工作时检查它:)
修改强>
GStreamer 1.8发布,支持VP9 - 添加新元素rtpvp9pay / rtpvp9depay