I want to streaming RTMP signal to RTP(multicast, mpegts container) via GStreamer. As I understand, I need to perform the following actions (please correct me if I wrong):
- Demuxing RTMP stream
- Muxing tracks to MPEGTS
- Streaming data into RTP
I can perform it via FFmpeg:
ffmpeg -i rtmp://220.127.116.11/vod/mp4:bigbuckbunny_750.mp4 \ -c copy -f rtp_mpegts rtp://127.0.0.1:10001
I need to achive the same results via GStreamer and I've tried the next command:
gst-launch-1.0 -v rtmpsrc \ location=rtmp://18.104.22.168/vod/mp4:bigbuckbunny_750.mp4 \ ! flvdemux ! h264parse ! rtph264pay \ ! udpsink host=127.0.0.1 port=10001 Setting pipeline to PAUSED ... Pipeline is PREROLLING ... ERROR: from element /GstPipeline:pipeline0/GstRTMPSrc:rtmpsrc0: Internal data flow error. Additional debug info: gstbasesrc.c(2948): gst_base_src_loop (): /GstPipeline:pipeline0/GstRTMPSrc:rtmpsrc0: streaming task paused, reason not-linked (-1) ERROR: pipeline doesn't want to preroll. Setting pipeline to NULL ... /GstPipeline:pipeline0/GstFlvDemux:flvdemux0.GstPad:audio: caps = "NULL" Freeing pipeline ...
Please help figure out with. What is the correct command to streaming RTMP to RTP without transcoding via GStreamer?