Jellyfin Forum
avoid video transcoding when external audio - Printable Version

+- Jellyfin Forum (https://forum.jellyfin.org)
+-- Forum: Support (https://forum.jellyfin.org/f-support)
+--- Forum: General Questions (https://forum.jellyfin.org/f-general-questions)
+--- Thread: avoid video transcoding when external audio (/t-avoid-video-transcoding-when-external-audio)



avoid video transcoding when external audio - minidisco - 2024-10-28

In my experience, transcoding will kick in, when:
- the codec is not supported by the player
- the number of audio-channels is too high for the playback device
- the subtitle format is picture based

But what I don't understand, is the following:
- file.mkv: MPEG2-Video, AC3 2Ch Audio
- file.en.ac3: AC3 2Ch Audio

The file.mkv gets played directly.
When I select the external audio-file file.en.ac3 for playback, the video gets transcoded and the audio gets played directly. Under Playback Info it reads "Reason for transcoding The audio stream is external".
Muxing everything in one file avoids transcoding when switching to another audio-stream.

Is there a way to use compatible external audio-files without triggering a transcode?

Greetz.

p. s.:
server: 10.10.0
player: JF Media Player 1.11.1 (flatpak)
OS: Ubuntu 24.04.1


RE: avoid video transcoding when external audio - TheDreadPirate - 2024-10-28

I'll do some testing and get back to you. Does this only happen when JMP is the client?


RE: avoid video transcoding when external audio - theguymadmax - 2024-10-29

Jellyfin forces external audio files to always transcode/remux.


RE: avoid video transcoding when external audio - minidisco - 2024-10-29

I did some tests with these files:

file1.mkv - video: MPEG2, audio: 2Ch AC-3
file1.ita.aac - audio: 2Ch AAC LC
file1.fra.ac3 - audio: 2Ch AC-3

file2.mp4 - video: avc1, audio: 2Ch AAC LC
file2.ita.aac - audio: 2Ch AAC LC
file2.fra.ac3 - audio: 2Ch AC-3

on four clients:

Jellyfin Media Player 1.11.1
Jellyfin Web 10.10.0 (Firefox)
Jellyfin Android 2.6.2
Google Cast Chromecast 3.0.0

Again, what interested me, was how to use external audio-files without triggering a non-necessary transcode.

I fail to see the patterns, why remuxing / direct streaming sometimes does work, sometimes does not.

(!) are marking maybe some interesting outputs (see below). For example:

file1.mkv, file1.ita.aac, Jellyfin Media Player 1.11.1:
  • mpeg2 transcode to h264
  • but external aac direct play
  • mentioned reason: external audio

file1.mkv, file1.ita.aac, Jellyfin Web 10.10.0 (Firefox) / Jellyfin Android 2.6.2 / Google Cast Chromecast 3.0.0
  • transcoding of external aac to aac
  • mentioned reason: audio codec not supported

file1.mkv, file1.fra.ac3, Jellyfin Media Player 1.11.1
  • transcode mpeg2 to h264
  • but external ac3 direct play
  • mentioned reason: external audio

remuxing (no transcode) of separate compatible streams is possible, when not html client. see:
  • file2.mp4, file2.ita.aac, Jellyfin Media Player 1.11.1
  • file2.mp4, file2.ita.aac, Google Cast Chromecast 3.0.0
  • file2.mp4, file2.fra.ac3, Jellyfin Media Player 1.11.1

the html client, on the other hand, transcodes each separate compatible stream. no remuxing.
  • h264 to h264
  • aac to aac
  • mentioned reason: external audio
  • see: file2.mp4, file2.ita.aac, Jellyfin Web 10.10.0 (Firefox) / Jellyfin Android 2.6.2

smooth handling of compatible video and (incompatible) external audio
  • remuxing or direct streaming (transcode audio only)
  • see: file2.mp4, file2.fra.ac3, (all clients)



TESTS
##########

file1.mkv, Jellyfin Media Player 1.11.1
####################
Player MPV Video Player
Play method Direct playing

file1.mkv, Jellyfin Web 10.10.0 (Firefox)
##########
Player Html Video Player
Play method Transcoding
Transcoding Info
Video codec H264
Audio codec AAC
Reason for transcoding The container is not supported
The video codec is not supported
The audio codec is not supported

file1.mkv, Jellyfin Android 2.6.2
##########
Player Html Video Player
Play method Transcoding
Transcoding Info
Video codec H264
Audio codec AAC
Reason for transcoding The container is not supported
The video codec is not supported
The audio codec is not supported

file1.mkv, Google Cast Chromecast 3.0.0
##########
Transcoding
The media is being converted into a format that is compatible with the device that is playing the media.
TS H264 AAC
Reason for transcoding The container is not supported
The video codec is not supported
The audio codec is not supported

file1.mkv, file1.ita.aac, Jellyfin Media Player 1.11.1
####################
Player MPV Video Player
Play method Transcoding
Transcoding Info
Video codec H264 (!)
Audio codec AAC (direct)
Reason for transcoding The audio stream is external

file1.mkv, file1.ita.aac, Jellyfin Web 10.10.0 (Firefox)
##########
Player Html Video Player
Play method Transcoding
Transcoding Info
Video codec H264
Audio codec AAC (!)
Reason for transcoding The container is not supported
The video codec is not supported
The audio codec is not supported (!)

file1.mkv, file1.ita.aac, Jellyfin Android 2.6.2
##########
Player Html Video Player
Play method Transcoding
Transcoding Info
Video codec H264
Audio codec AAC
Reason for transcoding The container is not supported
The video codec is not supported
The audio codec is not supported (!)

file1.mkv, file1.ita.aac, Google Cast Chromecast 3.0.0
##########
The media is being converted into a format that is compatible with the device that is playing the media.
TS H264 AAC
Reason for transcoding The container is not supported
The video codec is not supported
The audio codec is not supported (!)

file1.mkv, file1.fra.ac3, Jellyfin Media Player 1.11.1
####################
Player MPV Video Player
Play method Transcoding
Transcoding Info
Video codec H264 (!)
Audio codec AC3 (direct) (!)
Reason for transcoding The audio stream is external

file1.mkv, file1.fra.ac3, Jellyfin Web 10.10.0 (Firefox)
##########
Player Html Video Player
Play method Transcoding
Transcoding Info
Video codec H264
Audio codec AAC
Reason for transcoding The container is not supported
The video codec is not supported
The audio codec is not supported

file1.mkv, file1.fra.ac3, Jellyfin Android 2.6.2
##########
Player Html Video Player
Play method Transcoding
Transcoding Info
Video codec H264
Audio codec AAC
Reason for transcoding The container is not supported
The video codec is not supported
The audio codec is not supported

file1.mkv, file1.fra.ac3, Google Cast Chromecast 3.0.0
##########
The media is being converted into a format that is compatible with the device that is playing the media.
TS H264 AAC
Reason for transcoding The container is not supported
The video codec is not supported
The audio codec is not supported

file2.mp4, Jellyfin Media Player 1.11.1
####################
Player MPV Video Player
Play method Direct playing

file2.mp4, Jellyfin Web 10.10.0 (Firefox)
##########
Player Html Video Player
Play method Direct playing

file2.mp4, Jellyfin Android 2.6.2
##########
Player Html Video Player
Play method Direct playing

file2.mp4, Google Cast Chromecast 3.0.0
##########
Direct playing
The source file is entirely compatible with this client and the session is receiving the file without modifications.

file2.mp4, file2.ita.aac, Jellyfin Media Player 1.11.1
####################
Player MPV Video Player
Play method Remuxing
Remuxing Info
Video codec H264 (direct)
Audio codec AAC (direct)

file2.mp4, file2.ita.aac, Jellyfin Web 10.10.0 (Firefox)
##########
Player Html Video Player
Play method Transcoding
Transcoding Info
Video codec H264 (!)
Audio codec AAC (!)
Reason for transcoding The audio stream is external

file2.mp4, file2.ita.aac, Jellyfin Android 2.6.2
##########
Player Html Video Player
Play method Transcoding
Transcoding Info
Video codec H264 (!)
Audio codec AAC (!)
Reason for transcoding The audio stream is external

file2.mp4, file2.ita.aac, Google Cast Chromecast 3.0.0
##########
Remuxing (!)
The media is in an incompatible file container (MKV, AVI, WMV, etc) but both the video stream and audio stream are compatible with the device. The media will be repackaged losslessly on the fly before being sent to the device.

file2.mp4, file2.fra.ac3, Jellyfin Media Player 1.11.1
####################
Player MPV Video Player
Play method Remuxing (!)
Remuxing Info
Video codec H264 (direct)
Audio codec AC3 (direct)

file2.mp4, file2.fra.ac3, Jellyfin Web 10.10.0 (Firefox)
##########
Player Html Video Player
Play method Direct streaming (!)
Direct Streaming Info
Video codec H264 (direct)
Audio codec AAC

file2.mp4, file2.fra.ac3, Jellyfin Android 2.6.2
##########
Player Html Video Player
Play method Direct streaming (!)
Direct Streaming Info
Video codec H264 (direct)
Audio codec AAC

file2.mp4, file2.fra.ac3, Google Cast Chromecast 3.0.0
##########
Direct streaming (!)
The video stream is compatible with the device, but has an incompatible audio format (DTS, Dolby TrueHD, etc.) or number of audio channels. The video stream will be repackaged losslessly on the fly before being sent to the device. Only the audio stream will be transcoded.