<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">Hey Matt<div><br></div><div>The <a href="https://github.com/RidgeRun/gst-perf">perf element</a> will also send messages to the bus with the measured frame rate, in this case every second.</div><div><br></div><div>We also have submitted a PR to GStreamer with a new tracer named “buffer rate” which basically measures buffers per second in every pad. But that output is displayed on the debug log only:</div><div><br></div><div><br></div><div><div style="display: block;"><div style="-webkit-user-select: all; -webkit-user-drag: element; display: inline-block;" class="apple-rich-link" draggable="true" role="link" data-url="https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3207"><a style="border-radius:10px;font-family:-apple-system, Helvetica, Arial, sans-serif;display:block;-webkit-user-select:none;width:300px;user-select:none;-webkit-user-modify:read-only;user-modify:read-only;overflow:hidden;text-decoration:none;" class="lp-rich-link" rel="nofollow" href="https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3207" dir="ltr" role="button" draggable="false" width="300"><table style="table-layout:fixed;border-collapse:collapse;width:300px;background-color:#E5E6E9;font-family:-apple-system, Helvetica, Arial, sans-serif;" class="lp-rich-link-emailBaseTable" cellpadding="0" cellspacing="0" border="0" width="300"><tbody><tr><td vertical-align="center"><table bgcolor="#E5E6E9" cellpadding="0" cellspacing="0" width="300" style="font-family:-apple-system, Helvetica, Arial, sans-serif;table-layout:fixed;background-color:rgba(229, 230, 233, 1);" class="lp-rich-link-captionBar"><tbody><tr><td style="padding:8px 0px 8px 0px;" class="lp-rich-link-captionBar-textStackItem"><div style="max-width:100%;margin:0px 16px 0px 16px;overflow:hidden;" class="lp-rich-link-captionBar-textStack"><div style="word-wrap:break-word;font-weight:500;font-size:12px;overflow:hidden;text-overflow:ellipsis;text-align:left;" class="lp-rich-link-captionBar-textStack-topCaption-leading"><a rel="nofollow" href="https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3207" style="text-decoration: none" draggable="false"><font color="#272727" style="color: rgba(0, 0, 0, 0.847059);">gst-tracers: Add bufferrate tracer (!3207) · Merge requests · GStreamer / gstreamer · GitLab</font></a></div><div style="word-wrap:break-word;font-weight:400;font-size:11px;overflow:hidden;text-overflow:ellipsis;text-align:left;" class="lp-rich-link-captionBar-textStack-bottomCaption-leading"><a rel="nofollow" href="https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3207" style="text-decoration: none" draggable="false"><font color="#808080" style="color: rgba(0, 0, 0, 0.498039);">gitlab.freedesktop.org</font></a></div></div></td><td style="padding:6px 12px 6px 0px;" class="lp-rich-link-captionBar-rightIconItem" width="36"><a rel="nofollow" href="https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3207" draggable="false"><img style="pointer-events:none !important;display:inline-block;width:36px;height:36px;border-radius:3px;" width="36" height="36" draggable="false" class="lp-rich-link-captionBar-rightIcon" alt="gst-logo-small.png" src="cid:428066BA-FB3D-4614-B0CD-88287CCB195E"></a></td></tr></tbody></table></td></tr></tbody></table></a></div></div><div><br></div><div><br></div><div>Michael</div><div><br><blockquote type="cite"><div>On 17 Mar 2023, at 14:12, Matt Feury via gstreamer-devel <gstreamer-devel@lists.freedesktop.org> wrote:</div><br class="Apple-interchange-newline"><div><div dir="ltr">Thanks Nicolas for the response. I'm trying to avoid using fpsdisplaysink because i want to measure fps just after the source of the pipeline (and not the sink). Additionally, I want to be able to get the FPS via a property which fpsdisplaysink doesn't support.<div><br></div><div>Matt</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Mar 17, 2023 at 10:01 AM Nicolas Dufresne <<a href="mailto:nicolas@ndufresne.ca">nicolas@ndufresne.ca</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div>Le jeudi 16 mars 2023 à 17:43 -0400, Matt Feury via gstreamer-devel a écrit :</div><blockquote type="cite" style="margin:0px 0px 0px 0.8ex;border-left:2px solid rgb(114,159,207);padding-left:1ex"><div dir="ltr">hello all,<div><br></div><div>i am attempting to measure FPS of a source stream (e.g. rtsp or hls). I am currently using an identity element immediately after the source element (e.g. rtspsrc -> identity -> decodebin -> fakesink). Using the handoff signal on identity, I am able to get a good calculation of buffers per second.</div><div><br></div><div>However, it seems that this value is not always 1:1 with frames per second. It very frequently is on stable streams (e.g. I often see 29-31 buffers/sec on a 30fps stream). However, on streams with intermittent connectivity, it doesn't seem to tell the whole story.</div><div><br></div><div>I've seen fpsdisplaysink which actually works really well (I am able to see "real" fps values that are dynamically changing as the pipeline plays). However, a) I don't want to measure the fps at the sink (i have a tee'd pipeline with multiple sinks and more interesting in measuring source fps than that of my pipeline) and b) this element seems to just overlay it – ideally i would be able to get the average "recent" fps as a property.</div></div></blockquote><div><br></div><div>Just set sync=false on fps display sink, and it will include the source jitter. I strongly recommend using fakevideosink for that, as it will avoid software copies with HW decoders.</div><div><br></div><blockquote type="cite" style="margin:0px 0px 0px 0.8ex;border-left:2px solid rgb(114,159,207);padding-left:1ex"><div dir="ltr"><div><br></div><div>I've seen ridgerun's gst-perf element, but that only seems to log values.</div><div><br></div><div>Is there a recommended approach to monitoring "real" FPS of an incoming live stream? Ideally using identity, but open to other options.</div><div><br></div><div>Thanks,</div><div>Matt</div></div></blockquote><div><br></div><div><span></span></div></div>
</blockquote></div>
</div></blockquote></div><br></div></body></html>