Difficulties with qtdemux

Stuart Marshall stuart at seelye.net
Wed Feb 6 21:49:58 UTC 2019


I’m trying to demux an MP4 file, packetize the data into RTP packets, and then hand those packets off to appsink elements.
The command I’m using is 

String command = "rtpbin latency=0 name=rtpbin" +
        " filesrc location=" + filename +
        " ! qtdemux name=demux" +
        " demux.video_0 ! queue ! h264parse ! video/x-h264,stream-format=avc ! rtph264pay config-interval=1" +
        " ! rtpbin.send_rtp_sink_0 rtpbin.send_rtp_src_0 ! appsink name=" + videoDataSink + " sync=true async=false" +
        " rtpbin.send_rtcp_src_0 ! appsink name=" + videoControlSink + " sync=true async=false" +
        " demux.audio_0 ! queue ! aacparse ! audio/mpeg,stream-format=raw ! rtpmp4apay pt=97" +
        " ! rtpbin.send_rtp_sink_1 rtpbin.send_rtp_src_1 ! appsink name=" + audioDataSink  + " sync=true async=false" +
        " rtpbin.send_rtcp_src_1 ! appsink name=" + audioControlSink + " sync=true async=false”;

Later code launches the pipeline and connects the appsink elements.

This command results in packets delivered to the video app sinks (both rtp and rtcp), but not the audio app sinks.
If I switch the order, handling audio before video, then the audio app sinks get packets but the video app sinks do not.

Any advice on what I’m doing wrong and how to get it to work?

Thanks,

Stuart



More information about the gstreamer-devel mailing list