Hi,
I’m trying to understand how third-party applications are expected to determine the actual bandwidth of an HTTP stream from an HDHomeRun PRIME.
For example, while streaming one CableCARD channel, the PRIME’s Tuner Status reports:
Streaming Rate: 1.811 Mbps
A 20-second capture directly from /auto/v651 measures approximately 1.93 Mbps total MPEG-TS bitrate with ffprobe, so this agrees closely with the PRIME.
However:
* lineup.json provides H264/AAC, HD and the stream URL, but no bitrate.
* status.json provides tuner/signal information, but no Streaming Rate.
* ffprobe reports bit_rate=N/A for the H.264 video stream.
This became noticeable because Plex cannot determine the video bitrate and assigns 40 Mbps bandwidth to the Live TV session, despite the actual stream being approximately 2 Mbps.
My questions are:
1. Is the Streaming Rate shown on the PRIME’s Tuner Status page available through an API that third-party applications can query?
2. If not, are clients expected to determine the actual bandwidth by measuring the incoming MPEG-TS data rate themselves?
Thanks.
HDHomeRun PRIME – H.264 MPEG-TS stream does not report video bitrate to Plex/ffprobe
-
KeithAbbott
- Posts: 180
- Joined: Fri Mar 11, 2011 7:10 pm
- x 9
Re: HDHomeRun PRIME – H.264 MPEG-TS stream does not report video bitrate to Plex/ffprobe
Option 1 would obviously be the preferred option. But if that is not available, wouldn't screen-scraping the Tuner Status page be a better option than measuring the data rate yourself? Since the Prime is EOL, I doubt if the HTML response from the Prime is going to change in the future.carvacs wrote: Sun Sep 06, 2026 8:30 pm 1. Is the Streaming Rate shown on the PRIME’s Tuner Status page available through an API that third-party applications can query?
2. If not, are clients expected to determine the actual bandwidth by measuring the incoming MPEG-TS data rate themselves?
-
rikd
- Silicondust
- Posts: 86
- Joined: Thu Mar 02, 2023 10:48 am
- Device ID: 1260AFEF
- Location: Portugal
- x 2
Re: HDHomeRun PRIME – H.264 MPEG-TS stream does not report video bitrate to Plex/ffprobe
Streaming (html)/Network (status.json) rate reported by the HDHomeRun is a report of the number of bits sent of the TS stream for that channel to your device.
It is not a bandwidth needed or guaranteed number that a 3rd party device can necessarily depend on.
MPEG-TS is not like MP4/MKV and doesn't have a construct for specifying the bitrate of the stream - it is up to the individual streams within the TS to specify, and not all will support and/or provide - e.g. video providing SPS/PPS (sequence header for MPEG2) info can include bitrate, but not all encoders encode that info - codec/profile/level is likely the minimum provided.
Also, even if provided there is no guarantee that the relevant information is provided often enough within the stream to provide onward (would require partial decode of the stream to get the SPS/PPS data and decode out the bitrate).
But more importantly the important consideration is how the broadcaster/cable muxes and encodes the stream in the first place. Using statmuxes a broadcaster/cable company could potentially set all other channels to skip frames (closes to 0 bytes possible) and allow a single channel to suddenly consume the equivalent of 30Mbps or more. Hence Plex is actually right in assuming because is a Cable channel that there is a possibility the video could suddenly spike to ~40Mbps - it probably won't, but it could.
In such a scenario where the stream is about 2Mbps and then spikes to something higher you will see it on the status information as it happens - but there is no fore-warning other than hey, this is a cable channel and it could provide you with a whole QAM worth of data all of a sudden! And yep - there is very likely information in the video stream to allow a decode to adjust accordingly, but that may come too late for anything else to adjust.
It is not a bandwidth needed or guaranteed number that a 3rd party device can necessarily depend on.
MPEG-TS is not like MP4/MKV and doesn't have a construct for specifying the bitrate of the stream - it is up to the individual streams within the TS to specify, and not all will support and/or provide - e.g. video providing SPS/PPS (sequence header for MPEG2) info can include bitrate, but not all encoders encode that info - codec/profile/level is likely the minimum provided.
Also, even if provided there is no guarantee that the relevant information is provided often enough within the stream to provide onward (would require partial decode of the stream to get the SPS/PPS data and decode out the bitrate).
But more importantly the important consideration is how the broadcaster/cable muxes and encodes the stream in the first place. Using statmuxes a broadcaster/cable company could potentially set all other channels to skip frames (closes to 0 bytes possible) and allow a single channel to suddenly consume the equivalent of 30Mbps or more. Hence Plex is actually right in assuming because is a Cable channel that there is a possibility the video could suddenly spike to ~40Mbps - it probably won't, but it could.
In such a scenario where the stream is about 2Mbps and then spikes to something higher you will see it on the status information as it happens - but there is no fore-warning other than hey, this is a cable channel and it could provide you with a whole QAM worth of data all of a sudden! And yep - there is very likely information in the video stream to allow a decode to adjust accordingly, but that may come too late for anything else to adjust.