Receive RTP stream from VLC to Gstreamer

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Receive RTP stream from VLC to Gstreamer

jsg_21
This post was updated on .
Hi,
 I need to receive an RTP stream from VLC to Gstreamer.
 I am using the below command for VLC

vlc -vvv somefile.mp4 --sout '#transcode{vcodec=mp4v, vb=1024, scale=1, acodec=mpga, ab=192, channels=2}:duplicate{dst=std{access=rtp, mux=ts, dst=224.0.0.1:9000}}



I tried the following Gstreamer pipeline to receive & playback the above RTP stream:

 ./gst-launch -v gstrtpbin name=rtpbin latency=200 udpsrc caps="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)MP2T" port=9000 multicast-group=224.0.0.1 ! rtpbin.recv_rtp_sink_0 rtpbin. ! rtpmp2tdepay ! mpegtsdemux ! ffdec_mpeg4 ! ffmpegcolorspace ! fbdevsink



Below is the Gstreamer o/p:

Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
/GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSession:rtpsession0: ntp-ns-base = 2209003417007781000
New clock: GstSystemClock
/GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSession:rtpsession0.GstPad:recv_rtp_sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)9000
0, encoding-name=(string)MP2T
/GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad:recv_rtp_sink_0: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(s
tring)MP2T
/GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad:recv_rtp_sink_0: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(s
tring)MP2T
/GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad:recv_rtp_sink_0.GstProxyPad:proxypad0: caps = application/x-rtp, media=(string)video, clock-rate=(int)9
0000, encoding-name=(string)MP2T
/GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSession:rtpsession0.GstPad:recv_rtp_src: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000
, encoding-name=(string)MP2T
/GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSsrcDemux:rtpssrcdemux0.GstPad:sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, en
coding-name=(string)MP2T
/GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpJitterBuffer:rtpjitterbuffer0.GstPad:src: caps = application/x-rtp, media=(string)video, clock-rate=(int)9000
0, encoding-name=(string)MP2T
/GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpJitterBuffer:rtpjitterbuffer0.GstPad:sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)900
00, encoding-name=(string)MP2T
/GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpPtDemux:rtpptdemux0.GstPad:sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encodi
ng-name=(string)MP2T
/GstPipeline:pipeline0/GstRtpMP2TDepay:rtpmp2tdepay0.GstPad:src: caps = video/mpegts, packetsize=(int)188, systemstream=(boolean)true
/GstPipeline:pipeline0/GstRtpMP2TDepay:rtpmp2tdepay0.GstPad:sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(stri
ng)MP2T, payload=(int)33
/GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad:recv_rtp_src_0_1103768931_33: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, enc
oding-name=(string)MP2T, payload=(int)33
/GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad:recv_rtp_src_0_1103768931_33.GstProxyPad:proxypad1: caps = application/x-rtp, media=(string)video, cloc
k-rate=(int)90000, encoding-name=(string)MP2T, payload=(int)33
/GstPipeline:pipeline0/GstMpegTSDemux:mpegtsdemux0.GstPad:sink: caps = video/mpegts, packetsize=(int)188, systemstream=(boolean)true
/GstPipeline:pipeline0/GstMpegTSDemux:mpegtsdemux0: pat-info = ((GValueArray*) 0x221560)
/GstPipeline:pipeline0/GstMpegTSDemux:mpegtsdemux0: pmt-info = ((FluTsPmtInfo*) 0x22ba00)
/GstPipeline:pipeline0/ffdec_mpeg4:ffdec_mpeg40.GstPad:sink: caps = video/mpeg, mpegversion=(int)4, systemstream=(boolean)false
/GstPipeline:pipeline0/ffdec_mpeg4:ffdec_mpeg40.GstPad:src: caps = video/x-raw-yuv, width=(int)240, height=(int)210, framerate=(fraction)12/1, format=(four
cc)I420
/GstPipeline:pipeline0/GstFFMpegCsp:ffmpegcsp0.GstPad:src: caps = video/x-raw-rgb, bpp=(int)16, depth=(int)16, endianness=(int)1234, red_mask=(int)63488, g
reen_mask=(int)2016, blue_mask=(int)31, width=(int)240, height=(int)210, framerate=(fraction)12/1
/GstPipeline:pipeline0/GstFFMpegCsp:ffmpegcsp0.GstPad:sink: caps = video/x-raw-yuv, width=(int)240, height=(int)210, framerate=(fraction)12/1, format=(four
cc)I420
/GstPipeline:pipeline0/GstFBDEVSink:fbdevsink0.GstPad:sink: caps = video/x-raw-rgb, bpp=(int)16, depth=(int)16, endianness=(int)1234, red_mask=(int)63488,
green_mask=(int)2016, blue_mask=(int)31, width=(int)240, height=(int)210, framerate=(fraction)12/1



The Gstreamer initialises the screen but is not able to display any video on it.

I dont see any posts online for receiving RTP streams from VLC for Gstreamer.

I am stuck up at this point & any help would be highly appreciated.

Thanks & Regards,
 Jigar