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:
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. |