Support BDMV file playback from Emby/Jellyfin

For BDMV folders on Jellyfin 10.8.5, it plays fine on Jellyfin web, but on Infuse it will show a file not found error.

I have done some research on this problem and here’s what I found, hopefully this can help fix the problem from Infuse’s side.

My BDMV movie folder structure

- source
  - blurays
    - MyBlurayMovie
        - BDMV
          - STREAM
            - 0000.m2ts
            - .....m2ts
          - ...
          - ...
          - index.bdmv
       - disc.inf

(1) When playing on jellyfin web, the logs are the following:

[20:59:57] [INF] [54] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for XX. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[20:59:57] [INF] [54] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile=Anonymous Profile, Path=/source/blurays/MyBlurayMovie, AudioStreamIndex=1, SubtitleStreamIndex=-1 ) => ( PlayMethod=Transcode, TranscodeReason=AudioCodecNotSupported ) media:/videos/313527e1-413d-03e4-6499-5baa56c528c1/master.m3u8?MediaSourceId=313527e1413d03e464995baa56c528c1&VideoCodec=h264,h264&AudioCodec=aac,mp3&AudioStreamIndex=1&VideoBitrate=139616000&AudioBitrate=384000&MaxFramerate=23.976025&api_key=<token>&SubtitleMethod=Encode&TranscodingMaxAudioChannels=2&RequireAvc=false&Tag=543b6ca4c9f21c87d81daf7a932499c0&SegmentContainer=ts&MinSegments=2&BreakOnNonKeyFrames=True&h264-level=41&h264-videobitdepth=8&h264-profile=high&h264-rangetype=SDR&h264-deinterlace=true&TranscodeReasons=AudioCodecNotSupported
[20:59:57] [INF] [3] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[20:59:57] [INF] [3] Jellyfin.Api.Helpers.TranscodingJobHelper: /usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -fflags +genpts  -i bluray:"/source/blurays/MyBlurayMovie" -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 copy -start_at_zero -codec:a:0 libfdk_aac -ac 2 -ab 384000 -af "volume=2" -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 6 -hls_segment_type mpegts -start_number 0 -hls_segment_filename "/transcode/ec3ba1be9622f5b5b8823fc1184941d2%d.ts" -hls_playlist_type vod -hls_list_size 0 -y "/transcode/ec3ba1be9622f5b5b8823fc1184941d2.m3u8"

As expected, it is being transcoded. ffmpeg supports a bluray protocol, so jellyfin is giving ffmpeg the root folder path -i bluray:"/source/blurays/MyBlurayMovie".

(2) When playing the same movie on infuse (via the Jellyfin source):

[21:07:42] [ERR] [59] Jellyfin.Server.Middleware.ExceptionMiddleware: Error processing request: Could not find file '/source/blurays/MyBlurayMovie'. URL GET /Videos/313527e1413d03e464995baa56c528c1/stream.

Although it seems like a jellyfin problem, I’m wondering if it could in fact be an Infuse problem, since from jellyfin API documentation, there is a enableMpegtsM2TsMode flag specially designed for m2ts mode. Not sure if Infuse is correctly setting this mode to true for bluray movies when doing the API call.

Let me know what I can do to further help debug this, or if you think this is indeed a problem on Jellyfin. :smiley:

5 Likes

我也遇到这个问题

Mod Edit Translation:

I also have this problem

As far as I know, Infuse does not support anything transcoding related atm.

Ah, sorry for the confusion. I used Jellyfin Web simply as an example to show how Jellyfin Web handles the bluray folder. I don’t think it using transcoding affects the problem.

Infuse can handle (1) normal videos (e.g., mkv files, or even bluray iso files) from Jellyfin, and (2) bluray folder from samba mount, both without transcoding. It’s just the bluray folder from Jellyfin that’s causing issues for Infuse, and I suspect it’s because Infuse is not making the right API calls to Jellyfin.

1 Like

Thought I would try a movie using BDMV (I’m connected through Emby server). When added, it shows up correctly in the Infuse library but when I try to play the movie, it starts to load, then get the message “An error occurred. An error occurred loading this content.”

Any idea why? Thanks again!

BDMV file support from Emby/Jellyfin requires special handling.

Moving to suggestions for the moment.

metadata from jellyfin, when play mkv or mp4, it’s normal, but play dbmv folder, i got message: An error occurred. An error occurred loading this content.
tip: media data sync from jellyfin, movie path is BDMV folder from jellyfin, like: /movies/Kill.Bill.Vol1-2.2003-2004.Blu-ray.1080p.AVC.LPCM5.1-CMCT/VOL_1

├── Kill.Bill.Vol1-2.2003-2004.Blu-ray.1080p.AVC.LPCM5.1-CMCT
    ├── VOL_1
    │   ├── BDMV
    │   │   ├── BACKUP
    │   │   │   ├── BDJO
    │   │   │   │   └── 00001.bdjo
    │   │   │   ├── CLIPINF
    │   │   │   │   ├── 00001.clpi
    │   │   │   ├── index.bdmv
    │   │   │   ├── JAR
    │   │   │   │   ├── 00001.jar
    │   │   │   │   └── 10000
    │   │   │   │       └── PLsInfo.txt
    │   │   │   ├── MovieObject.bdmv
    │   │   │   └── PLAYLIST
    │   │   │       ├── 00001.mpls
    │   │   ├── BDJO
    │   │   │   └── 00001.bdjo
    │   │   ├── CLIPINF
    │   │   │   ├── 00001.clpi
    │   │   ├── index.bdmv
    │   │   ├── JAR
    │   │   │   ├── 00001.jar
    │   │   │   └── 10000
    │   │   │       └── PLsInfo.txt
    │   │   ├── MovieObject.bdmv
    │   │   ├── PLAYLIST
    │   │   │   ├── 00001.mpls
    │   │   └── STREAM
    │   │       ├── 00001.m2ts
    │   └── CERTIFICATE
    │       ├── app.discroot.crt
    │       ├── BACKUP
    │       │   ├── app.discroot.crt
    │       │   └── id.bdmv
    │       └── id.bdmv
    └── VOL_2
        ├── BDMV
        │   ├── BACKUP
        │   │   ├── BDJO
        │   │   │   └── 00001.bdjo
        │   │   ├── CLIPINF
        │   │   │   ├── 00001.clpi
        │   │   ├── index.bdmv
        │   │   ├── JAR
        │   │   │   ├── 00001.jar
        │   │   │   └── 10000
        │   │   │       └── PLsInfo.txt
        │   │   ├── MovieObject.bdmv
        │   │   └── PLAYLIST
        │   │       ├── 00001.mpls
        │   ├── BDJO
        │   │   └── 00001.bdjo
        │   ├── CLIPINF
        │   │   ├── 00001.clpi
        │   ├── index.bdmv
        │   ├── JAR
        │   │   ├── 00001.jar
        │   │   ├── 00002.jar
        │   │   └── 10000
        │   │       └── PLsInfo.txt
        │   ├── MovieObject.bdmv
        │   ├── PLAYLIST
        │   │   ├── 00001.mpls
        │   └── STREAM
        │       ├── 00001.m2ts
        └── CERTIFICATE
            ├── app.discroot.crt
            ├── BACKUP
            │   ├── app.discroot.crt
            │   └── id.bdmv
            └── id.bdmv

Forgive the off-topic intrusion, but just noting that from a metadata perspective, TMDB has both Kill Bill movies listed together as
https://www.themoviedb.org/movie/414419-kill-bill-the-whole-bloody-affair
with a release date of 2011.

I am referring to these two:
Kill Bill: Vol. 1 (2003) — The Movie Database (TMDB)
Kill Bill: Vol. 2 (2004) — The Movie Database (TMDB)
So I don’t know if it’s okay to follow your advice and change it to the metadata you sent?

Since you’re using an external server to gather metadata it might not be essential to match TMDB if that’s not the resource your servers are using (TMDB is the only metadata provider used by Infuse).

Metadata also isn’t likely at the root of your issue with BDMV playback. But if the disc includes both movies, and you want it reflected that way, you should use the combined entry. If they are two separate discs, you’d might want to keep them in two different folders, each named for their individual movies per the links you posted. The combined entry with two different release-years listed is a non-standard format that would likely confuse the scrapers and might provide the wrong results. Just an FYI. Sorry I can’t help with your posted issue.

anyway, thanks :smiley: :smiley:

1 Like

Is there an update on this?

If not, I will REMUX everything before adding to my main library. This would be a bit of work.

I wish to second the OP. Have Jellyfin server at home and Infuse installed on an ATVP.

The add-on suggestion (or request) I have is to support menus as VLC does, from a BDMV. VLC can open a DVD ISO or BDMV which has no encryption and often (with Java support) can display and allow navigation of the disc menus. Many discs have extra features, such as those from Criterion Collection. The only other means would be to extract them, label the titles, etc. but you lose the chapter names, the additional information text within the menus describing the supplementals.

I have read online that supporting menus is non-trivial, however, but I do not have any first-hand experience to comment on that.

BDMV file support from Emby/Jellyfin requires special handling.

Is this a feature worth pursuing?

If you remux, you can get all the extra credits, which I just skim through and delete.

If you remux, you can get all the extra credits, which I just skim through and delete.

Correct. However just having a backup of a disc allows one to use the menus to navigate to the extras and avoid extraction + remux, as this takes time. Being able to drop the disc backup into a folder and play menus is nice. Anyway, this is slightly off-topic from the original post, apologies.

I discovered you can specify an SMB share with BDMV and Infuse will play the longest title from that (albeit without playing the disc menus as if you inserted the disc into a bona fide Bluray player).

That feature has been added a long time ago, but it doesn’t work if Infuse is not the metadata provider.

Just wanted to add a “me too!” To this. Ive got a decent collection of bdmv that i really dont want to have to go through again

Could you please mention which feature specifically? Playing BDMV via Jellyfin, or BDMV with menus, or something else? There have been a few mentioned in this thread.

Firstly, forgive my poor English and hope you can understand what I am saying.

I used INFUSE pro to connect to EMBY Server in Apple TV 4K (2022) and played most of the videos without any issues. Its interface was done too well. But there are several movies that use Blu ray original BDMV files, which cannot be easily recognized by EMBY, resulting in playback failure. But if you use the NFS protocol to directly access this folder in INFUSE, it can play smoothly. I found that in EMBY, you can set up a media library like this

I have tested connecting EMBY in KODI, and BDMV cannot play. However, if the NFS path is added to the media library settings above, KODI can play successfully. However, this cannot be achieved under INFUSE. How can I solve this problem?

Really hope this feature can be implemented.Tons of BDMVs I have and really dont want to spend time to convert them.

PS:infuse can play .iso files through jellyfin and works great