2024-11-19, 11:37 PM
Hi,
I am new to Jellyfin, I use Plex personally, but for work I was implemented DLNA/UPnP for our app and I am having some real trouble with Jellyfin.
Jellyfin is reporting ALL .mp4 files as .mov. They are actually MP4 containers and Jellyfin even says that on the web app. However, the DLNA plugin is saying it is a MOV/Quicktime container when it is not.
Here is proof of the web app saying its an MP4 container:
Then here is proof of MediaInfo saying its an MP4 container:
Then I enabled DLNA Debug logging and you can see for yourself it is taking a .mp4 and returning a .mov:
I am using the default profile file: "C:\Users\XXXXX\AppData\Local\jellyfin\plugins\DLNA_5.0.0.0\profiles\Default.xml". Funny thing is that there is no mime-type "video/quicktime" on the default profile. This profile is what is being used as you can see from the logs saying its using "Generic Device" profile as that is what is inside the Default.xml <Name> tag.
The main reason this is a problem is the app I work on does not support MOV/Quicktime so it erroneously thinks every MP4 container video is not compatible with the player. My Plex server using the exact same same files says they're MP4 containers and plays just fine.
Any help would be greatly appreciated as I am not really sure what to do.
Cheers,
Matthew
I am new to Jellyfin, I use Plex personally, but for work I was implemented DLNA/UPnP for our app and I am having some real trouble with Jellyfin.
Jellyfin is reporting ALL .mp4 files as .mov. They are actually MP4 containers and Jellyfin even says that on the web app. However, the DLNA plugin is saying it is a MOV/Quicktime container when it is not.
Here is proof of the web app saying its an MP4 container:
Then here is proof of MediaInfo saying its an MP4 container:
Code:
General
Complete name : D:\Dev\Work\test-videos\rect\tb\bbb_sunflower_1080p_60fps_ou_3dff_fr.mp4
Format : MPEG-4
Format profile : Base Media
Codec ID : isom (isom/avc1)
File size : 491 MiB
Duration : 10 min 34 s
Overall bit rate : 6 491 kb/s
Frame rate : 60.000 FPS
Movie name : Big Buck Bunny, Sunflower version
Performer : Blender Foundation 2008, Janus Bager Kristensen 2013
Composer : Sacha Goedegebure
Genre : Animation
Encoded date : 2013-12-16 18:03:30 UTC
Tagged date : 2013-12-16 18:03:30 UTC
Comment : Creative Commons Attribution 3.0 - http://bbb3d.renderfarming.net
com : Jan Morgenstern
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L5.1
Format settings : CABAC / 8 Ref Frames
Format settings, CABAC : Yes
Format settings, Reference frames : 8 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 10 min 34 s
Bit rate : 6 000 kb/s
Maximum bit rate : 29.1 Mb/s
Width : 1 920 pixels
Height : 2 160 pixels
Display aspect ratio : 0.889
Frame rate mode : Constant
Frame rate : 60.000 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.024
Stream size : 454 MiB (93%)
Writing library : x264 core 115
Encoding settings : cabac=1 / ref=8 / deblock=1:1:1 / analyse=0x3:0x133 / me=tesa / subme=10 / psy=1 / psy_rd=0.40:0.00 / mixed_ref=1 / me_range=24 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=0 / chroma_qp_offset=-2 / threads=12 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=16 / b_pyramid=2 / b_adapt=2 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=60 / rc=2pass / mbtree=1 / bitrate=6000 / ratetol=1.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / ip_ratio=1.40 / aq=1:0.60
Encoded date : 2013-12-16 18:03:30 UTC
Tagged date : 2013-12-16 18:03:37 UTC
Codec configuration box : avcC
Then I enabled DLNA Debug logging and you can see for yourself it is taking a .mp4 and returning a .mov:
Code:
[2024-11-19 17:00:44.901 -06:00] [DBG] [19] Jellyfin.Plugin.Dlna.DlnaManager: No matching device profile found. [KeyValuePair`2 { Key: "Host", Value: ["192.168.0.221:8096"] }, KeyValuePair`2 { Key: "User-Agent", Value: ["Unix/0.0.0.0 UPnp/1.1 Mono.Upnp/1.0"] }, KeyValuePair`2 { Key: "Content-Type", Value: ["text/xml; charset=\"utf-8\""] }, KeyValuePair`2 { Key: "Expect", Value: ["100-continue"] }, KeyValuePair`2 { Key: "Content-Length", Value: ["431"] }, KeyValuePair`2 { Key: "SOAPACTION", Value: ["\"urn:schemas-upnp-org:service:ContentDirectory:1#Browse\""] }]
[2024-11-19 17:00:44.911 -06:00] [DBG] [19] Jellyfin.Plugin.Dlna.ContentDirectory.ContentDirectoryService: Control request. Headers: [KeyValuePair`2 { Key: "Host", Value: ["192.168.0.221:8096"] }, KeyValuePair`2 { Key: "User-Agent", Value: ["Unix/0.0.0.0 UPnp/1.1 Mono.Upnp/1.0"] }, KeyValuePair`2 { Key: "Content-Type", Value: ["text/xml; charset=\"utf-8\""] }, KeyValuePair`2 { Key: "Expect", Value: ["100-continue"] }, KeyValuePair`2 { Key: "Content-Length", Value: ["431"] }, KeyValuePair`2 { Key: "SOAPACTION", Value: ["\"urn:schemas-upnp-org:service:ContentDirectory:1#Browse\""] }]
[2024-11-19 17:00:44.920 -06:00] [DBG] [19] Jellyfin.Plugin.Dlna.ContentDirectory.ContentDirectoryService: Received control request "Browse", params: [("ObjectID": "c41c0b5de81a5c0141f70c7e119ce602"), ("BrowseFlag": "BrowseDirectChildren"), ("Filter": "*"), ("StartingIndex": "0"), ("RequestedCount": "0"), ("SortCriteria": "")]
[2024-11-19 17:00:44.925 -06:00] [DBG] [19] Jellyfin.Plugin.Dlna.ContentDirectory.ContentDirectoryService: Profile: "Generic Device", Path: "D:\Dev\Work\test-videos\rect\tb\bbb_sunflower_1080p_60fps_ou_3dff_fr.mp4", isEligibleForDirectPlay: True, isEligibleForDirectStream: True
[2024-11-19 17:00:44.926 -06:00] [DBG] [19] Jellyfin.Plugin.Dlna.ContentDirectory.ContentDirectoryService: DirectPlay Result for Profile: "Generic Device", Path: "D:\Dev\Work\test-videos\rect\tb\bbb_sunflower_1080p_60fps_ou_3dff_fr.mp4", PlayMethod: DirectPlay, AudioStreamIndex: 1, SubtitleStreamIndex: null, Reasons: 0
[2024-11-19 17:00:44.929 -06:00] [DBG] [19] Jellyfin.Plugin.Dlna.ContentDirectory.ContentDirectoryService: StreamBuilder.BuildVideoItem( Profile="Generic Device", Path="D:\Dev\Work\test-videos\rect\tb\bbb_sunflower_1080p_60fps_ou_3dff_fr.mp4", AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=DirectPlay, TranscodeReason=0 ) "media:/videos/84d9ae66-0798-5e80-b153-cae9e67c5ebe/stream.mov?MediaSourceId=84d9ae6607985e80b153cae9e67c5ebe&Static=true&VideoCodec=h264&AudioCodec=mp3&AudioStreamIndex=1&api_key=<token>&Tag=7446e7c7949a532d14a9df152968121a"
[2024-11-19 17:00:44.932 -06:00] [DBG] [19] Jellyfin.Plugin.Dlna.ContentDirectory.ContentDirectoryService: Profile: "Generic Device", Path: "D:\Dev\Work\test-videos\rect\tb\CoralAndFish_ou_3dff.mp4", isEligibleForDirectPlay: True, isEligibleForDirectStream: True
[2024-11-19 17:00:44.933 -06:00] [DBG] [19] Jellyfin.Plugin.Dlna.ContentDirectory.ContentDirectoryService: DirectPlay Result for Profile: "Generic Device", Path: "D:\Dev\Work\test-videos\rect\tb\CoralAndFish_ou_3dff.mp4", PlayMethod: DirectPlay, AudioStreamIndex: 1, SubtitleStreamIndex: null, Reasons: 0
[2024-11-19 17:00:44.935 -06:00] [DBG] [19] Jellyfin.Plugin.Dlna.ContentDirectory.ContentDirectoryService: StreamBuilder.BuildVideoItem( Profile="Generic Device", Path="D:\Dev\Work\test-videos\rect\tb\CoralAndFish_ou_3dff.mp4", AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=DirectPlay, TranscodeReason=0 ) "media:/videos/068e3062-e255-157d-8101-2974a5b9dd94/stream.mov?MediaSourceId=068e3062e255157d81012974a5b9dd94&Static=true&VideoCodec=h264&AudioCodec=aac&AudioStreamIndex=1&api_key=<token>&Tag=9eaf15c684fed8dea4b5e8d05f31d348"
[2024-11-19 17:00:44.937 -06:00] [DBG] [19] Jellyfin.Plugin.Dlna.ContentDirectory.ContentDirectoryService: Control response. Headers: [("EXT": "")]
"<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><SOAP-ENV:Envelope SOAP-ENV:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\"><SOAP-ENV:Body><u:BrowseResponse xmlns:u=\"urn:schemas-upnp-org:service:ContentDirectory:1\"><Result><DIDL-Lite xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:dlna=\"urn:schemas-dlna-org:metadata-1-0/\" xmlns:upnp=\"urn:schemas-upnp-org:metadata-1-0/upnp/\" xmlns=\"urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/\"><item restricted=\"1\" id=\"84d9ae6607985e80b153cae9e67c5ebe\" parentID=\"c41c0b5de81a5c0141f70c7e119ce602\"><dc:title>bbb_sunflower_1080p_60fps_ou_3dff_fr</dc:title><upnp:class>object.item.videoItem</upnp:class><dc:date>2013-12-16</dc:date><upnp:genre>Animation</upnp:genre><res duration=\"00:10:34.5666660\" size=\"514832018\" nrAudioChannels=\"2\" resolution=\"1920x2160\" sampleFrequency=\"48000\" bitrate=\"6165765\" protocolInfo=\"http-get:*:video/quicktime:DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=21D00000000000000000000000000000\">http://192.168.0.221:8096/dlna/videos/84d9ae66-0798-5e80-b153-cae9e67c5ebe/stream.mov?DeviceProfileId=5f99dff38fc840949cb61918330facf2&amp;DeviceId=test&amp;MediaSourceId=84d9ae6607985e80b153cae9e67c5ebe&amp;Static=true&amp;VideoCodec=h264&amp;AudioCodec=mp3&amp;AudioStreamIndex=1&amp;Tag=7446e7c7949a532d14a9df152968121a&amp;dlnaheaders=true</res><upnp:albumArtURI dlna:profileID=\"JPEG_SM\">http://192.168.0.221:8096/Items/84d9ae6607985e80b153cae9e67c5ebe/Images/Primary/0/9715f7711a183103891af3654ae3249f/jpg/480/480/0/0</upnp:albumArtURI><upnp:icon>http://192.168.0.221:8096/Items/84d9ae6607985e80b153cae9e67c5ebe/Images/Primary/0/9715f7711a183103891af3654ae3249f/jpg/48/48/0/0</upnp:icon></item><item restricted=\"1\" id=\"068e3062e255157d81012974a5b9dd94\" parentID=\"c41c0b5de81a5c0141f70c7e119ce602\"><dc:title>CoralAndFish_ou_3dff</dc:title><upnp:class>object.item.videoItem</upnp:class><dc:date>2016-08-28</dc:date><res duration=\"00:00:40.6813610\" size=\"11906932\" nrAudioChannels=\"2\" resolution=\"1264x720\" sampleFrequency=\"44100\" bitrate=\"2337994\" protocolInfo=\"http-get:*:video/quicktime:DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=21D00000000000000000000000000000\">http://192.168.0.221:8096/dlna/videos/068e3062-e255-157d-8101-2974a5b9dd94/stream.mov?DeviceProfileId=5f99dff38fc840949cb61918330facf2&amp;DeviceId=test&amp;MediaSourceId=068e3062e255157d81012974a5b9dd94&amp;Static=true&amp;VideoCodec=h264&amp;AudioCodec=aac&amp;AudioStreamIndex=1&amp;Tag=9eaf15c684fed8dea4b5e8d05f31d348&amp;dlnaheaders=true</res><upnp:albumArtURI dlna:profileID=\"JPEG_SM\">http://192.168.0.221:8096/Items/068e3062e255157d81012974a5b9dd94/Images/Primary/0/981428e17b8ed7075f3d6179cfd8431d/jpg/480/480/0/0</upnp:albumArtURI><upnp:icon>http://192.168.0.221:8096/Items/068e3062e255157d81012974a5b9dd94/Images/Primary/0/981428e17b8ed7075f3d6179cfd8431d/jpg/48/48/0/0</upnp:icon></item></DIDL-Lite></Result><NumberReturned>2</NumberReturned><TotalMatches>2</TotalMatches><UpdateID>2371</UpdateID></u:BrowseResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>"
I am using the default profile file: "C:\Users\XXXXX\AppData\Local\jellyfin\plugins\DLNA_5.0.0.0\profiles\Default.xml". Funny thing is that there is no mime-type "video/quicktime" on the default profile. This profile is what is being used as you can see from the logs saying its using "Generic Device" profile as that is what is inside the Default.xml <Name> tag.
The main reason this is a problem is the app I work on does not support MOV/Quicktime so it erroneously thinks every MP4 container video is not compatible with the player. My Plex server using the exact same same files says they're MP4 containers and plays just fine.
Any help would be greatly appreciated as I am not really sure what to do.
Cheers,
Matthew