Jellyfin Forum
Jellyfin DLNA reports m4a audio files as video/quicktime - Printable Version

+- Jellyfin Forum (https://forum.jellyfin.org)
+-- Forum: Support (https://forum.jellyfin.org/f-support)
+--- Forum: Troubleshooting (https://forum.jellyfin.org/f-troubleshooting)
+---- Forum: Media Scanning & Identification (https://forum.jellyfin.org/f-media-scanning-identification)
+---- Thread: Jellyfin DLNA reports m4a audio files as video/quicktime (/t-jellyfin-dlna-reports-m4a-audio-files-as-video-quicktime)



Jellyfin DLNA reports m4a audio files as video/quicktime - Mike S - 2024-10-17

I have installed Jellyfin 10.9.11 & the DLNA plugin 3.0.0.0 on a new Linux box running EndeavourOS/Arch Linux. My audio files are mainly MP3 or M4A CD rips, and they are in a Music library in Jellyfin. Jellyfin clients play them fine. But I also use a DLNA client on my phone (Hifi Cast) which plays to some wifi speakers. This will play the MP3 files only, and rejects the M4A files saying they have mime type "video/quicktime" which can't be played on the speakers. The strange thing is that the old version of Jellyfin server worked fine (I think it was 10.8, but I'm not sure). I think that if Jellyfin's DLNA plugin said they were audio/mp4 or audio/aac, I think they would probably work.

Any suggestions? Please don't tell me to transcode the M4A files to MP3 - that would take days!


RE: Jellyfin DLNA reports m4a audio files as video/quicktime - TheDreadPirate - 2024-10-17

You'd need to check in the Jellyfin logs which profile it is using and then modify that profile with this.

Code:
<DirectPlayProfile container="mp3,flac,m4a,wma" type="Audio" />

You can also try adding that to the default profile.

If this is a non-docker install of jellyfin, the DLNA profiles are located in /var/lib/jellyfin/plugins/DLNA_3.0.0.0/profiles.


RE: Jellyfin DLNA reports m4a audio files as video/quicktime - Mike S - 2024-10-18

(2024-10-17, 02:38 PM)TheDreadPirate Wrote: You'd need to check in the Jellyfin logs which profile it is using and then modify that profile with this.

I have looked through the logs, and I can't find the DLNA profile mentioned. I just get entries like:

Code:
[2024-10-18 16:18:59.121 +11:00] [INF] [65] Jellyfin.Api.Controllers.UniversalAudioController: GetPostedPlaybackInfo profile: DeviceProfile { Name: null, Id: null, MaxStreamingBitrate: 8000000, MaxStaticBitrate: 8000000, MusicStreamingTranscodingBitrate: 128000, MaxStaticMusicBitrate: 8000000, DirectPlayProfiles: [DirectPlayProfile { Container: "opus", AudioCodec: null, VideoCodec: null, Type: Audio }, DirectPlayProfile { Container: "webm", AudioCodec: "opus", VideoCodec: null, Type: Audio }, DirectPlayProfile { Container: "mp3", AudioCodec: null, VideoCodec: null, Type: Audio }, DirectPlayProfile { Container: "aac", AudioCodec: null, VideoCodec: null, Type: Audio }, DirectPlayProfile { Container: "m4a", AudioCodec: "aac", VideoCodec: null, Type: Audio }, DirectPlayProfile { Container: "m4b", AudioCodec: "aac", VideoCodec: null, Type: Audio }, DirectPlayProfile { Container: "flac", AudioCodec: null, VideoCodec: null, Type: Audio }, DirectPlayProfile { Container: "webma", AudioCodec: null, VideoCodec: null, Type: Audio }, DirectPlayProfile { Container: "webm", AudioCodec: "webma", VideoCodec: null, Type: Audio }, DirectPlayProfile { Container: "wav", AudioCodec: null, VideoCodec: null, Type: Audio }, DirectPlayProfile { Container: "ogg", AudioCodec: null, VideoCodec: null, Type: Audio }], TranscodingProfiles: [TranscodingProfile { Container: "mp4", Type: Audio, VideoCodec: "", AudioCodec: "aac", Protocol: hls, EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Streaming, EnableSubtitlesInManifest: False, MaxAudioChannels: null, MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False, Conditions: [] }], ContainerProfiles: [], CodecProfiles: [], SubtitleProfiles: [] }
[2024-10-18 16:18:59.122 +11:00] [INF] [65] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "mike". EnableAudioPlaybackTranscoding: True

Quote:
Code:
<DirectPlayProfile container="mp3,flac,m4a,wma" type="Audio" />

You can also try adding that to the default profile.

If this is a non-docker install of jellyfin, the DLNA profiles are located in /var/lib/jellyfin/plugins/DLNA_3.0.0.0/profiles.
I added the "mp3,flac,m4a,wma" into the existing "DirectPlayProfile" line in Default.xml, but it made no difference (I'm not using docker).

Is there any way of turning on some debugging to see what is being sent & received? I guess it is possible that the Android client app (HiFi Cast) is doing something wrong. That app has a simple debug mode which says that the mime-type of the m4a files is video/quicktime, rather than an audio type. Unfortunately both Jellyfin & that app were updated to a new version within a few days of each other, so I can't be certain where the fault lies. All I know is that it worked before those updates.


RE: Jellyfin DLNA reports m4a audio files as video/quicktime - gnattu - 2024-10-18

Jellyfin DLNA plugin is using the server code to get mimetype and that one is registered as audio/mp4 there. I think it might be your client not the server?


RE: Jellyfin DLNA reports m4a audio files as video/quicktime - Mike S - 2024-10-21

It's not the client. I copied some of the m4a files to a USB stick and plugged it into my router which has a facility to share the files by DLNA. The same client plays it fine to the same wifi speaker. The client reports the file from the router's DLNA as audio/mp4, but from Jellyfin's DLNA as video/quicktime.

I think it must be Jellyfin deciding that the file is video, not audio. What code is Jellyfin using to determine a file's mimetype, and can it be overridden somehow?