Luke 42078 Posted February 11, 2021 Posted February 11, 2021 Ok well I don't have documentation on this, but if you build a plugin that contains a class that implements MediaBrowser.Model.IO.IMediaMounter, then you can dynamically change the media url at the point of playback. So in other words, the path to the .iso file will still be the main media path, but then it will play using some other url that you provide.
sjpotter 12 Posted February 11, 2021 Author Posted February 11, 2021 that works for movies (sort of), not for TV shows. Sort of for movies as doesn't help with seamless branching. It's still one file and hence "one movie". While seamless branching might mean you want to expose multiple movies. Similarly with multi feature ISOs or TV shows where you definitely want to expose multiple movies. so what I'd want to do is expose my "metadata file" as a filetype that a plugin tell emby it understands and then is able to tell emby you can query me about metadata about the file and you can query me about what format I'll output the file in and you can read() and seek() within me (for seek - obviously the nicest would be to seek based on time, but might be difficult to universally implement). i.e. the point wouldn't be to view the ISO as an ISO, emby wouldn't even see the ISO, it would just see the metadata files, it wouldn't care how the underyling data is stored. I've pondered it as a channel type mechanism combined with my server (the channel would expose the metadata), but that's also not as nice, as doesn't integrate with the rest of emby (i.e. TV shows tracking what you've watched)
Luke 42078 Posted February 11, 2021 Posted February 11, 2021 Yea I get it, but there's a very limited audience for this, so I'm trying to offer suggestions that will work with what we already have, because once we start getting into things that require new development from us, that's when we run into the problem of not really being able to give it any priority compared to other features. Another option that won't require any plugin would be to put strm files next to your iso files and take advantage of the server's existing multi-version features. you could do as many strm files per iso as you want, one for each version of a seamless branching movie. Or to avoid polluting your file system with strm files, you could do the plugin to handle as many titles as possible that don't need seamless branching, then combine that approach with my strm file suggestion on titles that do need it.
abaxed 0 Posted February 11, 2021 Posted February 11, 2021 (edited) Great discussion.. I have the strm file next to the ISO and can pick it using emby's multi-version feature. but for me I'm not sure why my OPPO player is not loading the strm playlist via this method. Player can direct browse any blu-ray ISO and play itself so not sure what the issue is with playlist strm. It start to load the playlist and quits during load indicating it has finished playing. I wish there's a way to debug this .. Edited February 11, 2021 by abaxed
sjpotter 12 Posted February 11, 2021 Author Posted February 11, 2021 right, I understand that. My only point would be for new development to write towards implementable interfaces that outsiders can implement as well and your code will be plugins, but others can write plugins to the same interfaces. So, for instance, if each file type that is supported was a plugin, it be "easy" (well with guidance from this POC) for anyone to write their own .bluray-playlist file type plugin. I actually wrote a fuse file system (see an earlier comment of mine from a long time ago) to try and get the best of both worlds i.e. the fuse file system only exports files that correspond to metadata files, i.e. one creates a .m2ts metadata file, that just is source=xyz (iso or dir) playlist=# fuse file system does the magic of making it appear as a regular m2ts file system to any reader (i.e. open/read/seek work as expected). I tried to do the same for DVDs, but either dvd's are more difficult to do that (due to interposition of actual operation blocks into the stream), libdvdnav has a weird API that makes it difficult or I just didn't know what I was doing and hence couldn't make it work reliably. (as opposed to libbluray where it's bd_open() bd_read() bd_seek() made total sense to me.
sjpotter 12 Posted February 11, 2021 Author Posted February 11, 2021 as a total unrelated aside, my goals of making my blurays to be playable on android in a nicer manner, has also led to help getting this off the ground https://forum.kodi.tv/showthread.php?tid=360250 1
abaxed 0 Posted February 11, 2021 Posted February 11, 2021 25 minutes ago, sjpotter said: as a total unrelated aside, my goals of making my blurays to be playable on android in a nicer manner, has also led to help getting this off the ground https://forum.kodi.tv/showthread.php?tid=360250 Looks great! I'm going to read that through ..
abaxed 0 Posted February 11, 2021 Posted February 11, 2021 On 4/18/2020 at 11:08 AM, sjpotter said: I've now written a fuse file system that avoids the need for the http server. Its effectively read only at this point in time (i.e. I have no idea what will happen if you try to modify it) the way it works is 1) build it a) checkout out git clone https://github.com/sjpotter/bluray-http-server.git cd bluray-http-server git checkout bazil-fuse build it go build ./cmd/bazil-fuse 2) setup "m2ts" files (really yaml configuration files) in directories that you want to m2ts files (i.e. real m2ts data, provided by the file system as defined by the yaml files) i.e. file Rogue One - A Star Wars Story (2016).m2ts will have contents --- file: Rogue One - A Star Wars Story (2016).iso playlist: 800 --- this will tell the file system that file Rogue One - A Star Wars Story (2016).m2ts will be using the content from Rogue One - A Star Wars Story (2016).iso (in same directory) and its playlist # 800. 3) mount the file syste ./bazil-fuse /some_iso_directory /<mount_point> one will then see /some_iso_directory "translated" into /<mount_point> (i.e. all files (besides ISOs) will still be visible and the m2ts files will have m2ts data. I've tested playing the m2ts files with vlc and it works. to get it to play nicer with emby, I'll need to end write support so that emby can write its metadata files to the directories. I have a handful of ideas to make this a little bit more useful 1) if no m2ts file exists and the iso has only 1 "reasonable" playlist (i.e. over some length), Automatically create the m2ts configuration file based on either the directory name or iso name 2) a utility that can enumerate all "reasonable" playlists and create the m2ts config files (that a user can then rename as appropriate. By the way I was going to try this and unable checkout the bazil-fuse.. what am I doing wrong? git clone https://github.com/sjpotter/bluray-http-server.git cd bluray-http-server git checkout bazil-fuse error: pathspec 'bazil-fuse' did not match any file(s) known to git
sjpotter 12 Posted February 11, 2021 Author Posted February 11, 2021 that branch no longer exists anymore, look at the readme on the github page.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now