-
-
Notifications
You must be signed in to change notification settings - Fork 3.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enhance Trickplay #11883
Enhance Trickplay #11883
Conversation
Changes in OpenAPI specification found. Expand to see details.What's Changed
|
|
This pull request has merge conflicts. Please resolve the conflicts so the PR can be successfully reviewed and merged. |
c566106 to
54e7c64
Compare
How is this implemented? Are the trickplay images stored along side each episode/movie like this: or can you specify a folder that is located on the media drive where every trickplay image will be saved? |
Current implementation uses a suffixed folder with the same name as the original video file. For you example: will have its own trickplay folder: And inside that folder there will be all the trickplay images for that video: |
|
I have two questions on this implementation. For some background, my Jellyfin instance runs in an LXD container with read-only access to the media folders. If I leave the setting for trickplay files untouched, i.e. all files are created in
I'll definitely be using this feature, but the answers to these questions will advise how I implement the solution. |
|
That's up for question right now. I'd say we should check both locations and only respect the setting when it comes to generating and saving/replacing trickplay images. |
|
I will be very happy to see this completed. |
|
Was just searching for this functionality within Jellyfin 10.9.6, and came across this PR. Super cool! |
|
When can we expect a merge on this? I'm also very excited to use this feature. |
54e7c64 to
ad26b22
Compare
It doesn't have the backport label, so I don't think it will end up in the next 10.9.x release. |
|
This is a quite invasive API change, so won't be in 10.9.x (also the reason this is targeting master). |
|
Thank you for implementing this feature🎉 As someone who has multiple servers that access the same media library storage, I've been waited a long time for this. One little question here: It seems currently Jellyfin determines tile size and interval from the server options, does that mean users have to keep trickplay configs of multiple servers the same when using the same trickplay copy? Or can we just save |
|
I was thinking about this too and for at least the first implementation the prerequisite will be having the same config. This is because the config is global and if we have multiple different resolutions inconsistently over different movies/series it is impossible to auto-import them. |
If stored with media, could the size and "interval" be part of the path or name of the trickplay files, so that if a different size is "expected" from the config if would create (without overwriting) if not pre-existing? From my perspective, the advantage of having them stored with media far outweighs what I would consider to be a minor inconvenience of having to have the trickplay config the same on all hosts that access the media. |
|
We do not remove existing trickplay files, if the resolution does not exists, the files should be created on next scan/run of the scheduled task. |
ad26b22 to
a7ec808
Compare
|
I built this PR and the web PR |
|
This pull request has merge conflicts. Please resolve the conflicts so the PR can be successfully reviewed and merged. |
a7ec808 to
ac874fd
Compare
|
@soultaco83 should be fixed now. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We might also want to have a scheduled task to handle #11476 which will be more common after this change
|
So this feature is complete now? It’s ready and will be available to use in Jellyfin 10.10? It won’t be available in any 10.9.x releases? Does anyone have a timeline for when we can expect 10.10? |
|
No, this PR will not be available in 10.9.x. |
Damn. I'm really excited to use this feature on my server. I just can't use it until I have this update because of my limited storage on the drive Jellyfin is installed on. Thanks for the update though! I guess its another thing I'll look forward to when 10.10 does get released one day. :) |
|
Just got done building this and the Webui(left a note there about a change). This is a perfect addon. Thank you. |
|
The way I understand this enhancement is that, once finished, it will be possible to store the Trickplay images in
I neither want the "metadata" directory to blow up in size on my SSD, nor do I want Jellyfin cluttering up the media directories with Trickplay images. It does not have write permissions there anyway, principle of least privilege and all. Having Trickplay files sprayed into the media directories would at the very least give me the ick, not to mention that it would also complicate directory listings for my FTP users. What I would like is to have a designated Trickplay images directory at a custom path "somewhere off to the side" on the large media file system. Would that be possible? If there is no dedicated option for a custom Trickplay images path, do you think a symbolic link from within the "metadata" directory would work? At any rate, I do not care for an admin user web interface input for such a custom path; if I could set it with an environment variable that would be sufficient. I mean, how often am I going to change it. |
|
Symlinks should always work. No reason why they aren't as long as your permissions are set correctly. |
Within "metadata/library" there is what looks like a file-hash-based directory tree though. Assuming Jellyfin puts the Trickplay images into that tree and not into a dedicated subdirectory, symlinking the Trickplay images away will not be possible. |
|
So, is it working on 10.10.0? I'm only waiting for it to update from 10.8.13. |
|
This release is great. Definitely prefer the trickplay files stored within the media folders. One issue I am having though is that the trickplay files in the media folders aren't portable between servers. The new server on the trickplay scan is capable of detecting the trickplay files but doesn't get the metadata stored in the trickplayinfos table correct. In my experience it doesn't change the Height value by the number of rows of tiles in the output JPG files. Would it be possible to have the correct metadata added to the trickplayinfos folder easily? |
As my opinion, you should create an issue which point here instead of comment under a merged commit, to make sure more people can see it. |
|
I do have #12887 up |
|
@Shadowghost thank you SO MUCH for doing this!! Especially the ability to move trickplay images next to media! I had one quick question. How difficult would it be to have trickplay images be segregated under a So the structure would be more like: Why would I want this? For something like a movie, where there is only one media file in a directory, it doesn't really matter, but some "shows" can contain dozens of "episodes". Having all of those folders in the same directory kind of clutters everything up. At the end of the day, the thing that I care about is that the trickplay images are in the same directory as the media file, but I don't really need to see them 99% of the time. |
|
You'd need to modify the code in regards of the devised path for trickplay images. Currently you can't set something custom there |
|
I would also prefer to be able to save trickplay images at an arbitrary location. |
|
Would anyone be opposed to making this the default? |
|
Yes. A lot of people mount their media read only for consumption, so saving anything next to it is impossible. |
|
@Simsala91 if your Jellyfin instance is running on Linux, you can already achieve what you're looking for using Disclaimer: I haven't done this yet, but intend to. It works in theory. As Shadowghost pointed out, I'm one of those people whose media collection is mounted read-only, so I'll be using |
Requiring overlayfs for a Jellyfin feature that could conceivably be implemented within Jellyfin seems excessive though. |
|
@eomanis I agree, in the universe where Jellyfin has infinite funding and infinite developers. On Planet Earth, highly custom requests should be approached with pragmatism. |
Also true. Please do not read the following as greedy; who writes the code gets to decide. I am mentally hung up about the fact that someone would prefer a solution that
to a solution that just re-uses the Library directory's logic of path calculation below a user-customizable root directory. I. e. an "extra Library directory for Trickplay files" kind of thing. Of those two ways to solve the request "have the Trickplay images in a custom location" I subjectively view the first one as "highly custom" and the latter as "pragmatic". |
|
What you proposed is a new logic, what we currently have is not. We are doing the exactly same with subtitles, posters and lyrics. All of those are saved alongside the media files and "pollutes" the directory because the user asked us to do so. Trickplay just does what all other metadata handlers do and most users are satisfied with such implementation. Please don't get mentally hung up with the fact that not everyone thinks the same way as you. |
That's not what I meant. What I meant was that for people who choose to place trickplay images next to their media, could we not make it the default so that all trickplay images are within a single And yes, I agree with others that if the trickplay images were a single file, placing it next to the media wouldn't be that bad, but that's not what's happening. Having them be within a directory means that, for almost everyone using it, your Doing this for trickplay images is similar to Jellyfin looking for trailers in |
Companion to jellyfin/jellyfin-web#5635
Changes
replace all images{Width} - {TileWidth}x{TileHeight}to be portableToDo / Questions:
Issues
Fixes #11747