diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 6034ba2104..ca76b38eab 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -91,6 +91,7 @@ - [Chaitanya Shahare](https://github.com/Chaitanya-Shahare) - [Venkat Karasani](https://github.com/venkat-karasani) - [Connor Smith](https://github.com/ConnorS1110) +- [iFraan](https://github.com/iFraan) ## Emby Contributors diff --git a/src/components/playerstats/playerstats.js b/src/components/playerstats/playerstats.js index fc286c6560..79f5df5d49 100644 --- a/src/components/playerstats/playerstats.js +++ b/src/components/playerstats/playerstats.js @@ -163,7 +163,7 @@ function getTranscodingStats(session, player, displayPlayMethod) { if (session.TranscodingInfo.Framerate) { sessionStats.push({ label: globalize.translate('LabelTranscodingFramerate'), - value: session.TranscodingInfo.Framerate + ' fps' + value: getDisplayTranscodeFps(session, player) }); } if (session.TranscodingInfo.TranscodeReasons?.length) { @@ -191,6 +191,20 @@ function getDisplayBitrate(bitrate) { } } +function getDisplayTranscodeFps(session, player) { + const mediaSource = playbackManager.currentMediaSource(player) || {}; + const videoStream = (mediaSource.MediaStreams || []).find((s) => s.Type === 'Video') || {}; + + const originalFramerate = videoStream.AverageFrameRate; + const transcodeFramerate = session.TranscodingInfo.Framerate; + + if (!originalFramerate) { + return `${transcodeFramerate} fps`; + } + + return `${(transcodeFramerate / originalFramerate).toFixed(2)}x (${transcodeFramerate} fps)`; +} + function getReadableSize(size) { if (size >= 1073741824) { return parseFloat((size / 1073741824).toFixed(1)) + ' GiB';