VP8 video streaming over RTP using the rtpbin plugin of GStreamer


We have looked at streaming WebM video or VP8 using RTP/UDP before. This post uses the gstrtpbin plugin of GStreamer, which eliminates the need to exchange RTP parameters out-of-band, using RTCP for that instead.

Receiving end

gst-launch -v gstrtpbin name=rtpbin udpsrc caps="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)VP8-DRAFT-0-3-2" port=5002 ! rtpbin.recv_rtp_sink_0 rtpbin. ! rtpvp8depay ! vp8dec ! ffmpegcolorspace ! autovideosink udpsrc port=5003 ! rtpbin.recv_rtcp_sink_0 rtpbin.send_rtcp_src_0 ! udpsink port=5007 host=localhost sync=false async=false

Sending end

gst-launch -v gstrtpbin name=rtpbin videotestsrc ! video/x-raw-rgb,framerate=30/1 ! ffmpegcolorspace ! vp8enc speed=2 ! rtpvp8pay ! rtpbin.send_rtp_sink_0 rtpbin.send_rtp_src_0 ! udpsink port=5002 host=localhost rtpbin.send_rtcp_src_0 ! udpsink port=5003 host=localhost sync=false async=false udpsrc port=5007 ! rtpbin.recv_rtcp_sink_0

This works on the local LAN, or over the internet if you have a public IP address and are not behind a NAT.

2 thoughts on “VP8 video streaming over RTP using the rtpbin plugin of GStreamer

  1. Is this streaming over RTP is based on the RFC ? . If so based on what RFC(payload format) it is streaming . I have checked the streamed rtp data , it completely mismatches with respect to the format given in VP8 DRAFT -02 . Can any one help me .

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s