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