feat: Render live encoder output stats on Stream Monitor#1095
Merged
sparkison merged 7 commits intoMay 11, 2026
Conversation
Pairs with the proxy-side change that exposes output_media_info — the codec, resolution, container, fps and bitrate that ffmpeg is actually producing on the outbound side of a transcoded stream. The existing Stream Info row continues to describe the source ffmpeg is reading. A new Output row sits below it, gated on the proxy publishing the new field, with a distinct amber palette + arrow-up-tray icon so the input vs output distinction is immediately visible. Plain HTTP-proxy streams have no encoder, so the row stays hidden for them.
…range clash The amber/orange palette on the Output Info row was visually too close to the existing failover indicators (Failover Active badge + Primary → Failover title text), making it ambiguous whether the row signified a failover state or just encoder output. Switch the row container to a violet palette and align the per-field badges (resolution → info, codec → primary, audio → success) with the input "Stream Info" row so input vs output is comparable field-by-field while the surrounding violet block still marks it as the encoder side.
5 tasks
Contributor
Author
|
Can't decide on the colour for the output data bg... I'll let you decide 😊 |
…ests with proxy outputs
Member
|
Reviewing and merging shortly! |
Keeping the two rows aligned for easier ready and more consistent output 😉
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Pairs with the proxy-side change that exposes
output_media_info— m3ue/m3u-proxy#56. The existing Stream Info row reflects the source ffmpeg is reading; this PR adds an Output row beneath it showing what ffmpeg is producing (encoder codec, target resolution, muxer container, fps, bitrate, audio).Closes the question raised on #1089 about layering output-side stats too.
What changed
Model mapping (
app/Filament/Pages/M3uProxyStreamMonitor.php)After the existing live
media_infomerge, we read$stream['output_media_info']from the proxy payload and attach a filtered copy as$model['output_media_info']when non-empty. Mirrors the existingmedia_infomapping shape — no probe-data fallback because output stats only exist when ffmpeg is actively transcoding (no encoder = no row).Blade row (
resources/views/filament/pages/m3u-proxy-stream-monitor.blade.php)Adds a new Output Info row directly below the Stream Info row, gated on
$stream['model']['output_media_info']. Container palette is violet (bg-violet-50/dark:bg-violet-950/30) to make it visually distinct from the failover orange used elsewhere on the card. Per-field badge colours match the Stream Info row (infofor resolution,primaryfor codec,successfor audio,grayfor fps/bitrate/container) so input ↔ output is comparable field-by-field. Includes the same green pulse dot used on the input row to indicate live data.Behaviour
output_media_info)Test plan