I’m trying a simple loop-back test with GNU Radio and GStreamer using the nvv4l2encoder and decoder for h264/mpegts stream. The video piped using a fifo file into GNU Radio, and then a UDP Sink block sends it back to localhost(127.0.0.1:12345) where the decoder pipeline tries to pick it up.
If I launch the playback pipeline first, it plays the video great. But if I start the capture pipeline first, the playback never plays the video stream. Is there a sync byte or header info it’s missing if it connects after the stream has started? I’m pretty new to GStreamer and the video streaming arena, any help is greatly appreciated!
When you start the receiver before the sender, you get the config in the first received bytes.
When you start the receiver after the sender, you’ve missed the config.
You may try to add option config-interval to h264 parse before mpegtsmux, so that it sends the config each second.
Awesome, thanks all! Honey’s suggestion to add the config-interval option worked. I am going to try the insert-sps-pps option as well. Is there any kind of benefit of one over the other?