2024-10-29, 04:34 PM
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:
file1.mkv, file1.ita.aac, Jellyfin Web 10.10.0 (Firefox) / Jellyfin Android 2.6.2 / Google Cast Chromecast 3.0.0
file1.mkv, file1.fra.ac3, Jellyfin Media Player 1.11.1
remuxing (no transcode) of separate compatible streams is possible, when not html client. see:
the html client, on the other hand, transcodes each separate compatible stream. no remuxing.
smooth handling of compatible video and (incompatible) external audio
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.
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.