stashapp / stash

An organizer for your porn, written in Go. Documentation: https://docs.stashapp.cc
https://stashapp.cc/
GNU Affero General Public License v3.0
8.79k stars 778 forks source link

[Feature] VideoJS Frame-by-frame plugin #3255

Open JanJastrow opened 1 year ago

JanJastrow commented 1 year ago

Describe the solution you'd like Since the last update we have already different time-skipping amounts. I would love to also have an option to go forward/backward frame by frame. Useful when defining your own thumbnail for a video.

Describe alternatives you've considered Right now I'm pressing play/pause multiple times to have a frame which does not have motion-blur, which is not ideal.

Additional context I found an NPM package this with feature: https://www.npmjs.com/package/@douglassllc/videojs-framebyframe

Since stash already checks the frame rate of each file, the described Framerate Issues should (hopefully) not apply in Stash.

YurikaL commented 1 year ago

Advanced video player features working right in browser is a bit insane (in a good way), but native video players like mpv usually already know how to do such advanced features out of the box. Including this frame-by-frame scrolling feature, of course. So offloading video playback to such a native player may be the best solution for this issue. So vote for external remote player support at #2747!

DogmaDragon commented 1 year ago

Advanced video player features working right in browser is a bit insane (in a good way), but native video players like mpv usually already know how to do such advanced features out of the box. Including this frame-by-frame scrolling feature, of course. So offloading video playback to such a native player may be the best solution for this issue. So vote for external remote player support at #2747!

An external player would literally be the worst solution for "defining your own thumbnail for a video".

YurikaL commented 1 year ago

An external player would literally be the worst solution for "defining your own thumbnail for a video".

Well, that's just one specific application of frame-by-frame scrolling. But you're right anyway, some kind of native UI that utilizes mpv internally would be even better than just a remote player. So join the discussion of native external UI at #3299!

jersprin commented 1 year ago

+1 on this feature. as OP said there is little control over getting to a frame for markers or cover shots. Also being able to use the mouse wheel to scrub through would be great. A package that has excellent scrubbing control is lossless-cut (excellent utility BTW), and this gives some great control but keep the interface clean and simple.

feederbox826 commented 1 month ago

Implemented with a plugin https://github.com/feederbox826/plugins/tree/main/plugins/vjs-shortcut.

One advantage this has over a frame-stepping plugin is that we can interpret the actual framerate from stash instead of trying to assume with