<html><head></head><body><div>On Wed, 2023-01-18 at 17:30 -0500, Matt Feury via gstreamer-devel wrote:</div><div><br></div><div>Hi Matt,</div><div><br></div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div dir="ltr"><div>I'm currently running a pipeline that can support either rtspsrc or HLS sources (via souphttpsrc). The pipeline generally looks something like this:</div><div><br></div><div>> rtspsrc/souphttpsrc (depending on url structure) ! parsebin ! decodebin ! videoconvert ! identity ! tee ! queue ! multiple sinks (e.g. appsink, webrtc, etc, all from tee).</div><div><br></div><div>Note this has been scrubbed of detailed pipeline info like specific sinks and extra queues/identities for simplicity's sake.</div><div><br></div><div>I am using the identity element to calculate the number of buffers per second passing through. When running the pipeline with an RTSPsrc, i am seeing a BPS value that corresponds heavily to the FPS (e.g. 5). However, when I run with an HLS source, i am seeing BPS values 10-100x as large as FPS (e.g. 250).</div><div><br></div><div>Weirdly, in my appsink, if i just do a simple cv2.imwrite to the local machine, I can confirm that each buffer coming through corresponds to a unique frame of the stream. </div><div><br></div><div>So I guess my question is: what could be causing these increased buffer counts for the same pipeline but only when HLS/TS data is flowing through it? While the stream sources are different, the FPS of each is roughly similar. I would presume that after the decodebin and videoconvert, I am left with raw video of the same general media type / caps regardless of the input source, so I am surprised to see such variation.</div></div></blockquote><div><br></div><div>Only thing I can think of is that rtspsrc is live and naturally receives an input stream at the playback rate, whereas with your hls setup maybe you're downloading fragments as fast as your bandwidth allows?</div><div><br></div><div>is your HLS stream a live stream or a VOD stream? Do you get the higher fps only at the beginning or continuously over a longer period?</div><div><br></div><div>For non-live inputs synchronisation only happens at the sink(s) typically, and it will depend on the sink in use whether it's live or not by default (sync=true on the sink).</div><div><br></div><div>For appsink you might alaso want to limit the internal queue which by default is unlimited.</div><div><br></div><div>You can play with identity sync=true (or replace with a clocksync element) to see if that makes a difference (I don't think that should be necessary though).</div><div><br></div><div>Cheers</div><div> Tim</div><div><br></div><div><span></span></div></body></html>