jellyfin-web icon indicating copy to clipboard operation
jellyfin-web copied to clipboard

Fix unexpected remuxing of direct playable media

Open dmitrylyzo opened this issue 3 years ago • 1 comments

Changes Force bitrate auto detection if transcoding is not allowed for the user.

Issues If the user has set a maximum bitrate and transcoding is blocked after that, direct playable video is never (if its bitrate exeeds the specified one) played direct because of this limit. Moreover, the user can't change the bitrate because the UI is hidden.

Steps To Reproduce

  1. With allowed transcoding, set the maximum bitrate in Settings/Playback to have the direct playable video transcoded.
  2. Block transcoding.
  3. Refresh page / relogin.
  4. Start video.
  5. Remuxing is used instead of DirectPlay. (No DirectPlay because bitrate is exceeded) And there is no way to change this.

dmitrylyzo avatar May 23 '22 18:05 dmitrylyzo

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

No Coverage information No Coverage information
No Duplication information No Duplication information

sonarqubecloud[bot] avatar Jun 14 '22 20:06 sonarqubecloud[bot]

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

No Coverage information No Coverage information
No Duplication information No Duplication information

sonarqubecloud[bot] avatar Oct 24 '22 20:10 sonarqubecloud[bot]

I tested passing null bitrate to playAfterBitrateDetect and it seems to work as expected - DirectPlay.

But now I'm leaning towards the idea of ignoring MaxBitrate on the server: if the user doesn't have permission to transcode, the server cannot make the bitrate lower. There is another option: if the bitrate of the media exceeds the maximum network bitrate (detection required), the media is treated as unsupported.

dmitrylyzo avatar Oct 27 '22 19:10 dmitrylyzo

Server-side alternative: https://github.com/jellyfin/jellyfin/pull/9082

dmitrylyzo avatar Jan 12 '23 21:01 dmitrylyzo

I'd prefer doing this for all clients server side. Nonetheless the drop-down menus should be hidden in web if the user doesn't have transcoding permissions.

Shadowghost avatar Jan 13 '23 07:01 Shadowghost