• Login
  • Register
  • Login Register
    Login
    Username/Email:
    Password:
    Or login with a social network below
  • Forum
  • Website
  • GitHub
  • Status
  • Translation
  • Features
  • Team
  • Rules
  • Help
  • Feeds
User Links
  • Login
  • Register
  • Login Register
    Login
    Username/Email:
    Password:
    Or login with a social network below

    Useful Links Forum Website GitHub Status Translation Features Team Rules Help Feeds
    Jellyfin Forum Off Topic General Discussion DLNA Giving Incorrect Container

     
    • 0 Vote(s) - 0 Average

    DLNA Giving Incorrect Container

    The DLNA seems to pass the wrong container information for a MP4 container.
    mgreen
    Offline

    Junior Member

    Posts: 2
    Threads: 1
    Joined: 2024 Nov
    Reputation: 0
    Country:United States
    #1
    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:
    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>&lt;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/\"&gt;&lt;item restricted=\"1\" id=\"84d9ae6607985e80b153cae9e67c5ebe\" parentID=\"c41c0b5de81a5c0141f70c7e119ce602\"&gt;&lt;dc:title&gt;bbb_sunflower_1080p_60fps_ou_3dff_fr&lt;/dc:title&gt;&lt;upnp:class&gt;object.item.videoItem&lt;/upnp:class&gt;&lt;dc:date&gt;2013-12-16&lt;/dc:date&gt;&lt;upnp:genre&gt;Animation&lt;/upnp:genre&gt;&lt;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\"&gt;http://192.168.0.221:8096/dlna/videos/84d9ae66-0798-5e80-b153-cae9e67c5ebe/stream.mov?DeviceProfileId=5f99dff38fc840949cb61918330facf2&amp;amp;DeviceId=test&amp;amp;MediaSourceId=84d9ae6607985e80b153cae9e67c5ebe&amp;amp;Static=true&amp;amp;VideoCodec=h264&amp;amp;AudioCodec=mp3&amp;amp;AudioStreamIndex=1&amp;amp;Tag=7446e7c7949a532d14a9df152968121a&amp;amp;dlnaheaders=true&lt;/res&gt;&lt;upnp:albumArtURI dlna:profileID=\"JPEG_SM\"&gt;http://192.168.0.221:8096/Items/84d9ae6607985e80b153cae9e67c5ebe/Images/Primary/0/9715f7711a183103891af3654ae3249f/jpg/480/480/0/0&lt;/upnp:albumArtURI&gt;&lt;upnp:icon&gt;http://192.168.0.221:8096/Items/84d9ae6607985e80b153cae9e67c5ebe/Images/Primary/0/9715f7711a183103891af3654ae3249f/jpg/48/48/0/0&lt;/upnp:icon&gt;&lt;/item&gt;&lt;item restricted=\"1\" id=\"068e3062e255157d81012974a5b9dd94\" parentID=\"c41c0b5de81a5c0141f70c7e119ce602\"&gt;&lt;dc:title&gt;CoralAndFish_ou_3dff&lt;/dc:title&gt;&lt;upnp:class&gt;object.item.videoItem&lt;/upnp:class&gt;&lt;dc:date&gt;2016-08-28&lt;/dc:date&gt;&lt;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\"&gt;http://192.168.0.221:8096/dlna/videos/068e3062-e255-157d-8101-2974a5b9dd94/stream.mov?DeviceProfileId=5f99dff38fc840949cb61918330facf2&amp;amp;DeviceId=test&amp;amp;MediaSourceId=068e3062e255157d81012974a5b9dd94&amp;amp;Static=true&amp;amp;VideoCodec=h264&amp;amp;AudioCodec=aac&amp;amp;AudioStreamIndex=1&amp;amp;Tag=9eaf15c684fed8dea4b5e8d05f31d348&amp;amp;dlnaheaders=true&lt;/res&gt;&lt;upnp:albumArtURI dlna:profileID=\"JPEG_SM\"&gt;http://192.168.0.221:8096/Items/068e3062e255157d81012974a5b9dd94/Images/Primary/0/981428e17b8ed7075f3d6179cfd8431d/jpg/480/480/0/0&lt;/upnp:albumArtURI&gt;&lt;upnp:icon&gt;http://192.168.0.221:8096/Items/068e3062e255157d81012974a5b9dd94/Images/Primary/0/981428e17b8ed7075f3d6179cfd8431d/jpg/48/48/0/0&lt;/upnp:icon&gt;&lt;/item&gt;&lt;/DIDL-Lite&gt;</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
    mgreen
    Offline

    Junior Member

    Posts: 2
    Threads: 1
    Joined: 2024 Nov
    Reputation: 0
    Country:United States
    #2
    2024-11-20, 01:11 AM
    A custom DLNA profile seems to be the fix for this. Not sure why the default forces MP4 containers as MOV but a custom profile fixed this. Looking at the source code for the DLNA plugin certainly helped as well.
    « Next Oldest | Next Newest »

    Users browsing this thread: 1 Guest(s)


    • View a Printable Version
    • Subscribe to this thread
    Forum Jump:

    Home · Team · Help · Contact
    © Designed by D&D - Powered by MyBB
    L


    Jellyfin

    The Free Software Media System

    Linear Mode
    Threaded Mode