Pipeline blocking when part of an mp4mux is not receiving data

Nicolas Dufresne nicolas at ndufresne.ca
Sun Aug 25 14:57:00 UTC 2019


Le jeudi 15 août 2019 à 13:15 -0700, Wayne Piekarski a écrit :
> Hi everyone,
> 
> I have a use case where I'm recording a V4L H264 camera along with a UDP 
> audio stream into an mp4mux file, and also displaying the video to the 
> screen.
> 
> gst-launch-1.0 -v \
> mp4mux name=combo fragment-duration=1000 ! fakesink async=false \
> \
> v4l2src 
> device=/dev/v4l/by-path/pci-0000:00:14.0-usb-0:2:1.0-video-index1 
> do-timestamp=false ! video/x-h264, width=320, height=240, framerate=15/1 
> ! h264parse ! tee name=tv0 ! queue ! h264parse ! avdec_h264 ! 
> videoconvert ! autovideosink    tv0. ! queue ! combo.video_0 \
> \
> udpsrc port=5701 do-timestamp=false ! application/x-rtp, 
> clock-rate=44100, config=40002410adca00 ! rtpmp4adepay ! aacparse ! 
> queue ! combo.audio_1
> 
> This works fine if there are UDP packets coming in. However, if the UDP 
> source has not sent any packets, then the video stops displaying on the 
> screen after about 50 frames of working fine.
> 
> However, if you send just one valid RTP packet to the port, then 
> everything starts working, and stays working, even though no new UDP 
> packets are arriving.
> 
> Is there anyway to tell the pipeline to not block like this? I tried 
> putting async=false everywhere as recommended to me in 
> https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/628 but 
> that is not working in this new scenario. I've tested this on the latest 
> gstreamer 1.16.0.

Muxers using GstCollectPad facility have this issue. This could be
resolved by porting the respective muxer to GstAggregator base class.
>From my knowlege, flvmux has been ported.

> 
> thanks!
> 
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel



More information about the gstreamer-devel mailing list