GStreamer allows Playbin to play RTP over UDP streaming data

Source: Internet
Author: User
Tags gstreamer

Some of the things that have been related to the low-latency transmission of the screen in recent time. Originally wanted to use GStreamer to verify that the RTP over UDP transfer h264 NAL data related

, the results found that can not use Playbin to play RTP data! Admittedly, this also has its cause because RTP needs some out-of-band data, which is not simply passed through the stream

To check, however, there is no means to simply pass in the SDP to Playbin, let it work normally. No way, in Gstreamer-devel and https://bugzilla.gnome.org

Bug Management platform Search a lap, someone encountered a similar problem, but there is no complete solution, so perfect the rtpsrc plug-in, can support similar to the following playback:

gst-launch-1.0 playbin uri= "rtp://10.9.44.117:5000?media=video&clock-rate=90000&encoding-name=h264& payload=96&do-retransmission=true&latency-ms=50&rtp-profile=1&rtx-host=192.168.31.141& rtx-port=5006 "

This kind of feeling is convenient, can directly pass the configuration information to udpsrc through the URI query parameter, constructs the caps parameter, yes, yes, the new plug-in RTPSRC function

The

is a bridge function, the essence or the use of UDPSRC and rtpbin together to work collaboratively, the structure of the approximate pipeline similar to the following:

RTP Receiver (example)//receives H264 encoded RTP video on port, RTCP are received on port 5001.            The receiver RTCP reports is sent to Port 5005//-----------------------rtpsrc-------------//|      .-------. .----------.   |   .---------.   .-------. .-----------.//|      RTP |UDPSRC | |   Rtpbin | |   |h264depay|   |h264dec| |xvimagesink|//|      port=5000 |            SRC->RECV_RTP recv_rtp->sink Src->sink Src->sink |//|          '-------' |   | |                           '---------'-------'-----------'//|          |                           | |-------------------------    //|          |     |            .-------.    |                           //|          |     |  |udpsink| RTCP |                           //|    | Send_rtcp->sink |            port=5005 |//|      .-------.          |     | '-------' Sync=false |//|      RTCP |UDPSRC |          |               | async=false|//| port=5001 |    src->recv_rtcp |            |//| '-------'----------' | //------------------------------------------------------------------|

The code has been submitted to the Bugzilla in the form of patches, can not be merged, or when it is merged into the main branch, I am not sure, but it is at least working properly,

Colleagues with this need, can move here: https://bugzilla.gnome.org/show_bug.cgi?id=703111, to merge into their own GStreamer SDK,

Should be able to make your life a little easier.

GStreamer allows Playbin to play RTP over UDP streaming data

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.