Progressive transcode bitrate #1247

Closed
opened 2026-02-06 20:41:23 +03:00 by OVERLORD · 3 comments
Owner

Originally created by @brianjmurrell on GitHub (Jan 30, 2020).

Surely this is a duplicate but I couldn't find the ticket.

It would be great if jellyfin could determine the optimal nitrate for transcoding automatically thorough progressively increasing the bitrate until finding the maximum butyrate that the connection can tolerate.

This seems to be how Netflix works for example rather than jellyfin's existing static setting for all remote connections. Such a capability could be used for both remote and local connections reckoning the distinction between the two and further simplifying jellyfin.

Originally created by @brianjmurrell on GitHub (Jan 30, 2020). Surely this is a duplicate but I couldn't find the ticket. It would be great if jellyfin could determine the optimal nitrate for transcoding automatically thorough progressively increasing the bitrate until finding the maximum butyrate that the connection can tolerate. This seems to be how Netflix works for example rather than jellyfin's existing static setting for all remote connections. Such a capability could be used for both remote and local connections reckoning the distinction between the two and further simplifying jellyfin.
Author
Owner

@cvium commented on GitHub (Jan 30, 2020):

There is already some rudimentary bitrate testing in place. To do what you're asking though, you need some relatively beefy hardware to be able to stop and start a bunch of transcodes. And no matter what, there will always be unpredictable bitrate spikes.

And fyi, Netflix does not transcode on the fly. Everything they have is pre-transcoded, so it's super easy for them to switch between bitrates.

@cvium commented on GitHub (Jan 30, 2020): There is already some rudimentary bitrate testing in place. To do what you're asking though, you need some relatively beefy hardware to be able to stop and start a bunch of transcodes. And no matter what, there will always be unpredictable bitrate spikes. And fyi, Netflix does not transcode on the fly. Everything they have is pre-transcoded, so it's super easy for them to switch between bitrates.
Author
Owner

@brianjmurrell commented on GitHub (Jan 30, 2020):

I would suggest rather than starting a bunch of transcodes you start one relatively low bitrate (maybe .5Mbs} and start sending that and measure the actual bandwidth of the connection and then set the bitrate of future segments. You would continue to measure the average bandwidth of the connection and adjust future segments accordingly.

How does the existing rudimentary bitrate testing work?

@brianjmurrell commented on GitHub (Jan 30, 2020): I would suggest rather than starting a bunch of transcodes you start one relatively low bitrate (maybe .5Mbs} and start sending that and measure the actual bandwidth of the connection and then set the bitrate of future segments. You would continue to measure the average bandwidth of the connection and adjust future segments accordingly. How does the existing rudimentary bitrate testing work?
Author
Owner

@cvium commented on GitHub (Jan 30, 2020):

How does the existing rudimentary bitrate testing work?

It sends junk data and measures the speed.

You would continue to measure the average bandwidth of the connection and adjust future segments accordingly.

This is a very complex thing you're asking and it potentially involves stopping and starting ffmpeg a bunch. You also have to discard already made segment, stitch them into the master playlist etc. It's not a simple thing to make.

And fyi, feature requests must be made here: https://features.jellyfin.org

@cvium commented on GitHub (Jan 30, 2020): > How does the existing rudimentary bitrate testing work? It sends junk data and measures the speed. > You would continue to measure the average bandwidth of the connection and adjust future segments accordingly. This is a very complex thing you're asking and it potentially involves stopping and starting ffmpeg a bunch. You also have to discard already made segment, stitch them into the master playlist etc. It's not a simple thing to make. And fyi, feature requests must be made here: https://features.jellyfin.org
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/jellyfin#1247