我正在尝试找到一种使用VP8或VP9压缩视频的方法,这是谷歌WebM项目的一部分,可以通过Gstreamer实现。
是否已经有模块能够处理VP8?如果有,请问有没有简单的示例说明如何在RTP广播/接收中使用它?
到目前为止,在Gstreamer官方文档上还没有相关内容。他们支持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
但延迟比我预期的要高。
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
。它可以正常工作,但是摄像头的延迟令人惊讶地高。 - Einar Sundgren