First of all, I am a complete gstreamer beginner so begging your patience
here: *Environment*: Ubuntu 18.04, gstreamer version 1.14.5 from gst-launch-1.0 --version *Issue* 1) I'm trying to send an audio + video H264 encoded video and OPUS encoded audio in a Matroska container over RTP on localhost using rtpbin. The behavior is that I get no errors on stdout or stderr but get no video or audio. 2) Sender launch command: gst-launch-1.0 -ve rtpbin name=rtpbin \ filesrc location=../h264-video/gravity_audio_opus_video_h264.mkv ! matroskademux name=demux \ demux.video_0 ! rtph264pay ! rtpbin.send_rtp_sink_0 \ rtpbin.send_rtp_src_0 ! udpsink port=5000 \ rtpbin.send_rtcp_src_0 ! udpsink port=5001 sync=false async=false \ udpsrc port=5005 ! rtpbin.recv_rtcp_sink_0 \ demux.audio_0 ! rtpopuspay ! rtpbin.send_rtp_sink_1 \ rtpbin.send_rtp_src_1 ! udpsink port=5002 \ rtpbin.send_rtcp_src_1 ! udpsink port=5003 sync=false async=false \ udpsrc port=5007 ! rtpbin.recv_rtcp_sink_1 3) Receiver launch command: gst-launch-1.0 -ve rtpbin name=rtpbin \ udpsrc name=v_0 caps="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)H264" \ port=5000 ! rtpbin.recv_rtp_sink_0 \ rtpbin. ! rtph264depay ! avdec_h264 ! autovideosink \ udpsrc port=5001 ! rtpbin.recv_rtcp_sink_0 \ rtpbin.send_rtcp_src_0 ! udpsink port=5005 sync=false async=false \ udpsrc caps="application/x-rtp,media=(string)audio,clock-rate=(int)48000,encoding-name=(string)OPUS,encoding-params=(string)2" \ port=5002 ! rtpbin.recv_rtp_sink_1 \ rtpbin. ! rtpopusdepay ! opusdec ! autoaudiosink \ udpsrc port=5003 ! rtpbin.recv_rtcp_sink_1 \ rtpbin.send_rtcp_src_1 ! udpsink port=5007 sync=false async=false 4) Results of ffprobe on the original audi/video file: ffprobe version N-95660-gfc7b6d5574 Copyright (c) 2007-2019 the FFmpeg developers built with gcc 7 (Ubuntu 7.4.0-1ubuntu1~18.04.1) configuration: --enable-cuda-nvcc --enable-cuvid --enable-nvenc --enable-nonfree --enable-libnpp --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64 --enable-shared libavutil 56. 35.101 / 56. 35.101 libavcodec 58. 60.100 / 58. 60.100 libavformat 58. 34.101 / 58. 34.101 libavdevice 58. 9.100 / 58. 9.100 libavfilter 7. 66.100 / 7. 66.100 libswscale 5. 6.100 / 5. 6.100 libswresample 3. 6.100 / 3. 6.100 Input #0, matroska,webm, from '../h264-video/gravity_audio_opus_video_h264.mkv': Metadata: title : Gravity - 2K Trailer ARTIST : Warner Bros. MAJOR_BRAND : mp42 MINOR_VERSION : 0 COMPATIBLE_BRANDS: mp42isomavc1 DATE : 2013 GENRE : Trailer ENCODER : Lavf58.34.101 Duration: 00:02:27.07, start: 0.000000, bitrate: 2127 kb/s Stream #0:0: Video: h264 (Main), yuv420p(progressive), 2048x858 [SAR 1:1 DAR 1024:429], 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default) Metadata: ENCODER : Lavc58.60.100 h264_nvenc DURATION : 00:02:26.980000000 Stream #0:1(eng): Audio: opus, 48000 Hz, stereo, fltp (default) Metadata: ENCODER : Lavc58.60.100 opus DURATION : 00:02:27.072000000 What am I screwing up on? thanks a lot for the help. regards vk -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
I was able to solve this problem and the solution is posted here in the hope
that it can be of help to someone else. Server ------------- gst-launch-1.0 -v rtpbin name=rtpbin filesrc location=./gravity_audio_opus_video_h264.mkv ! matroskademux name=demux demux.video_0 ! decodebin ! x264enc ! rtph264pay ! rtpbin.send_rtp_sink_0 \ demux.audio_0 ! decodebin ! opusenc ! rtpopuspay ! rtpbin.send_rtp_sink_1 \ rtpbin.send_rtp_src_0 ! udpsink port=5000 sync=true async=false \ rtpbin.send_rtp_src_1 ! udpsink port=5002 sync=true async=false \ rtpbin.send_rtcp_src_0 ! udpsink port=5001 sync=false async=false udpsrc port=5005 ! rtpbin.recv_rtcp_sink_0 \ rtpbin.send_rtcp_src_1 ! udpsink port=5003 sync=false async=false udpsrc port=5007 ! rtpbin.recv_rtcp_sink_1 Client ---------- gst-launch-1.0 -v rtpbin name=rtpbin \ udpsrc caps="application/x-rtp, media=video, clock-rate=90000, encoding-name=H264" port=5000 ! rtpbin.recv_rtp_sink_0 rtpbin. ! rtph264depay ! decodebin ! videoconvert ! autovideosink sync=false \ udpsrc port=5001 ! rtpbin.recv_rtcp_sink_0 rtpbin.send_rtcp_src_0 ! udpsink port=5005 host=127.0.0.1 sync=false async=false \ udpsrc caps="application/x-rtp,media=(string)audio,clock-rate=(int)48000,encoding-name=(string)OPUS" port=5002 ! rtpbin.recv_rtp_sink_1 rtpbin. ! rtpopusdepay ! decodebin ! audioconvert ! queue ! autoaudiosink sync=true \ udpsrc port=5003 ! rtpbin.recv_rtcp_sink_1 \ rtpbin.send_rtcp_src_1 ! udpsink port=5007 sync=false async=false -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hi Veela
Thanks for coming back with the solutions. On the same note, I was just wondering why aren’t you using RTSP instead? It will handle all these nuances underneath. Michael > On Dec 15, 2019, at 08:55, veek <[hidden email]> wrote: > > I was able to solve this problem and the solution is posted here in the hope > that it can be of help to someone else. > > Server > ------------- > gst-launch-1.0 -v rtpbin name=rtpbin filesrc > location=./gravity_audio_opus_video_h264.mkv ! matroskademux name=demux > demux.video_0 ! decodebin ! x264enc ! rtph264pay ! rtpbin.send_rtp_sink_0 \ > demux.audio_0 ! decodebin ! opusenc ! rtpopuspay ! > rtpbin.send_rtp_sink_1 \ > rtpbin.send_rtp_src_0 ! udpsink port=5000 sync=true async=false \ > rtpbin.send_rtp_src_1 ! udpsink port=5002 sync=true async=false \ > rtpbin.send_rtcp_src_0 ! udpsink port=5001 sync=false async=false > udpsrc port=5005 ! rtpbin.recv_rtcp_sink_0 \ > rtpbin.send_rtcp_src_1 ! udpsink port=5003 sync=false async=false udpsrc > port=5007 ! rtpbin.recv_rtcp_sink_1 > > Client > ---------- > gst-launch-1.0 -v rtpbin name=rtpbin \ > udpsrc caps="application/x-rtp, media=video, clock-rate=90000, > encoding-name=H264" port=5000 ! rtpbin.recv_rtp_sink_0 rtpbin. ! > rtph264depay ! decodebin ! videoconvert ! autovideosink sync=false \ > udpsrc port=5001 ! rtpbin.recv_rtcp_sink_0 rtpbin.send_rtcp_src_0 ! udpsink > port=5005 host=127.0.0.1 sync=false async=false \ > udpsrc > caps="application/x-rtp,media=(string)audio,clock-rate=(int)48000,encoding-name=(string)OPUS" > port=5002 ! rtpbin.recv_rtp_sink_1 rtpbin. ! rtpopusdepay ! decodebin ! > audioconvert ! queue ! autoaudiosink sync=true \ > udpsrc port=5003 ! rtpbin.recv_rtcp_sink_1 \ > rtpbin.send_rtcp_src_1 ! udpsink port=5007 sync=false async=false > > > > > -- > Sent from: http://gstreamer-devel.966125.n4.nabble.com/ > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hi Michael,
An excellent question. Does ignorance work as a reason? I'll check it out -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |