nicknsy / jellyscrub

Smooth mouse-over video scrubbing previews for Jellyfin.
MIT License
670 stars 27 forks source link

Proposition for Official Integration #44

Closed LePips closed 3 months ago

LePips commented 2 years ago

Hi, I'm from the Swiftfin project and part of the Jellyfin Client team. I think that this plugin is great and fulfills a basic enhancement with basic video playback. I have briefly brought it up with the team to have the features of the plugin officially integrated into Jellyfin and we show interest in that happening.

The reason for official integration is that for official JF clients we are opting to stay within the official API, which has caused removal of third party plugins in projects and has stopped me from integrating plugins in Swiftfin.

I'm not on the server team or work on the server so a lot more integration details/reviews will be done on the PRs, but outright this can't be done in .bif and instead replaced with other image formats.

From a Swiftfin perspective, this would greatly enhance the player and other clients would be able to integrate this as well!

nicknsy commented 2 years ago

I would be interested in submitting this as an official feature but I'm not sure exactly where I would start. As you said, the Jellyfin team isn't interested in a format like .bif, likely wanting an HLS standard format like .vtt. However, besides the many breaking changes that would be necessary to make this happen on my end, I would still need to work much more closely with others working on the official Jellyfin repos. For instance, is anyone else already working on an HLS version, would the format of the vtt file need to be different for separate clients like Roku, web, etc., and most importantly how would this be implemented on the current non-HLS video player?

As I understand it, the reason this hasn't been implemented yet is due to the current video player not supporting the HLS track files, which would mean a client script akin to the current .bif decoding "trickplay.js" would still be required to have it function for the majority of people using the web/desktop/phone clients. Without knowing when/if a full switch for the video player is going to take place it could mean a lot of wasted time working on such a script.

It may very well do doable, but without more insight into the future plans of the Jellyfin player, and honestly, without any prior experience in open-source development at such a scale, I'm not confident that I would be able to submit code that would get accepted and be viable long term.

Is there some platform where you guys are able to discuss between people working on different parts of the Jellyfin project?

LePips commented 2 years ago

Purely from my perspective with Swiftfin, the information from the server does not need to be HLS.

Some brainstorm for the server: 1 - Similar to ChapterInfo, media has an array of these scrubbing elements with the start ticks and image paths. Clients handle grabbing the images themselves based on the ticks during scrubbing. However this heavily bloats the item for elements every 10 seconds. 2 - JSON manifest with the same information from an HLS manifest, this would be customizable based upon the file format passed to the endpoint.

reason this hasn't been implemented yet

I have no information regarding the web client so you can talk with the web devs about that. I'm sure whatever happens they would work with you to accommodate this feature.

We talk on Matrix or Discord and you can reach out there!

Edit: I should add that by "official integration", this might not mean a direct port of the work done here. The thing to integrate is the main feature: images for scrubbing. This can result in a completely different implementation.

parinapatel commented 1 year ago

Hey, after spending bit of time on why does jellyscrub generated bif images weren't showing up, I stumbled upon this issue. I don't see any development or chatter on this front. Do we have any significant plans for the feature ?