SubtitleEdit / subtitleedit

the subtitle editor :)
http://www.nikse.dk/SubtitleEdit/Help
GNU General Public License v3.0
8.51k stars 895 forks source link

Snapping subtitle's end line to shot change marker goes to next shot #8244

Open EloyFarina opened 5 months ago

EloyFarina commented 5 months ago

After set the end time of a subtitle, and snap it to the shot change marker, it ends on the first frame the next scene. subtitle ends in next shot

If I unsnap it moving the end of the subtitle a couple of frames earlier, it goes so far and when I move it forward it snaps to shot change marker again. unsnapping subtitle's end it goes so far of shot marker

Something logic is that if I'm snapping an end line to shot change marker, it should not pass to the next scene, but in case that this is not possible, then how can I modify the snaps/unsaps settings?

niksedk commented 5 months ago

How to you snap to scene changes? A shortcut or mouse or ?

EloyFarina commented 5 months ago

How to you snap to scene changes? A shortcut or mouse or ? with mouse

niksedk commented 5 months ago

You can hold down the Shift key while moving the start/end without snapping.

EloyFarina commented 5 months ago

Cool, I tested and it works! I was not aware of it. But I still thinking that snapping the end of subtitle to shot marker, should not overpass next scene. It's like an extra step for each individual line that I snap. If you don't think the same, you can close the issue, at least now I have a workaround ;) Thanks Nikolaj.

uckthis commented 5 months ago

I generally use Netflix guides and there you snap end time 2 frames before a shot change. If you go to Beautify Time Codes and select Netflix present, in future whenever you try to snap to shot change, it'll always snap 2 frames before the shot change. Make your test preset in Beautify and apply it to a random file, then see if it works better for single snaps.

EloyFarina commented 5 months ago

I generally use Netflix guides and there you snap end time 2 frames before a shot change. If you go to Beautify Time Codes and select Netflix present, in future whenever you try to snap to shot change, it'll always snap 2 frames before the shot change. Make your test preset in Beautify and apply it to a random file, then see if it works better for single snaps.

I know that exists Beutify Time Codes, but I prefer to set the shot changes manually, because i have more control of them, but what I think is wrong is that when I set the end of the subtitle, it overpass a couple of frames of next shot change. Right now I'm using the workaround that provided niksedk, but I prefer to snap the end the subtitle to the shot change and avoid to correct that error each time.

dal-or commented 4 months ago

I'm having the same snapping issue. It would be great if this could be fixed :)

OhItsStefan commented 3 months ago

I am having the exact same issue. Right now I just set my playhead adjuster to 0,042 seconds (if I am working in a 23,976 fps file). Then, if the scene change marker ends when the new scene starts, I just flash it back a frame and let the subtitle end on that frame, instead of the one that is automatically generated.

It would be really nice if there's some kind of setting that would allow you to choose if the marker is set at the start of the new scene, or the end of the old scene.

EloyFarina commented 3 months ago

I was thinking that if is there a way to export the shot changes as Frames instead Seconds. Then using Excel I can use a formula to reduce 1 each, and then load the shot changes as Frames. Then I can snap the end of the subtitle to the shot changes without overpass to the next scene. Unfortunatelly this workaround is not possible either because when it generate the shot changes as Seconds :(

OhItsStefan commented 3 months ago

I've noticed that if you set it to generate the scene changes based on the FPS of the video, it sometimes snaps to the start of the new scene, and sometimes it does snap to the end of the old scene. image Now, I just check, if it's one frame ahead, I'll reduce the duration by one frame and if the subtitle is snapped and not visible in the new scene, I just leave it as is.

EloyFarina commented 3 months ago

I understand you, but anyway this is a bug

EloyFarina commented 3 months ago

Instead to snap the out-cue to shot change and sliding back a little it with Shift, if I go to Settings - Waveform/spectogram Snap to shot changes (hold Shift to override) and in Out cues section, I set Gap: 1, then it will not snap to the shot change. imagen as you can see here: imagen

TarantinoMariachi commented 1 month ago

This problem exists because SE doesn't generate the proper shot changes, by proper I mean the exact frame of the scene change and therefore the problems by snapping manually or automatically. If we could import keyframes from other great keyframe generators, then this problem would not exist. Or if SE implement a keyframe generator that works properly.

uckthis commented 1 month ago

@TarantinoMariachi You can. InkedUntitled_LI

EloyFarina commented 1 month ago

@TarantinoMariachi You can. InkedUntitled_LI

I always use 0,10. Issue happens, even using this lower value.

uckthis commented 1 month ago

@TarantinoMariachi Use even lower values. 0.5, perhaps. My reply was more about that you can import shot changes from other tools.

OhItsStefan commented 1 month ago

@uckthis Are there any specific tools you recommend that would yield a more accurate result? I have tried a quick google search but couldn't find much.

uckthis commented 1 month ago

@OhItsStefan I use Ooona, bro, and their shot change generator, but it's a paid tool. However, I get almost as gooda results with 0.10 sensitivity on SE.

TarantinoMariachi commented 1 month ago

No, you can't import most of the keyframes generated by the best (free) tools. But the dev already knows and will add support soon.

TarantinoMariachi commented 1 month ago

e there any specific tools you recommend that would yield a more accurate result? I have tried a quick google search but couldn't find much.

The best out there is this one: https://github.com/anonymlol/Encoding_automation_scripts/blob/master/scripts/Create_Keyframes.bat


Then you've another great as well, that is making use of VirtualDub or VirtualDub2 with XviD, and generate a one pass, here are the steps:

Open VirtualDub.exeFile -> Open video file… Select your workraw.avs or the video itself (E:workraw.avs). If you have done this correctly, your workraw should be loaded into Vdub.

Then go to Video -> Compression… -> Select the XviD codec (Last item on the list) -> Configure Note: If you don’t see the XviD option, you will once you install K-Lite Codec Pack or install only XviD

Then Encoding type: Twopass – 1st pass -> More

Check Full quality first pass -> OK -> OK -> OK

File -> Run video analysis pass

A progress box will appear. When it is complete, you should have E:video.pass, which is the pass file with all the correct keyframes in it.


And there is another new method with vapoursynth and python: https://subarashii-no-fansub.github.io/Subbing-Tutorial/Generate-Keyframes-Vapoursynth/ (but this one only detects 95% of the scene changes, while the above one detects always 100% for my experience)

In any case, any of those 3 surpass the one from SE

OhItsStefan commented 1 month ago

Thank you so much for the detailed options. I've tried a few, but me and my atechnical brain can't quite get them to work.

EloyFarina commented 1 month ago

e there any specific tools you recommend that would yield a more accurate result? I have tried a quick google search but couldn't find much.

The best out there is this one: https://github.com/anonymlol/Encoding_automation_scripts/blob/master/scripts/Create_Keyframes.bat

Then you've another great as well, that is making use of VirtualDub or VirtualDub2 with XviD, and generate a one pass, here are the steps:

Open VirtualDub.exeFile -> Open video file… Select your workraw.avs or the video itself (E:workraw.avs). If you have done this correctly, your workraw should be loaded into Vdub.

Then go to Video -> Compression… -> Select the XviD codec (Last item on the list) -> Configure Note: If you don’t see the XviD option, you will once you install K-Lite Codec Pack or install only XviD

Then Encoding type: Twopass – 1st pass -> More

Check Full quality first pass -> OK -> OK -> OK

File -> Run video analysis pass

A progress box will appear. When it is complete, you should have E:video.pass, which is the pass file with all the correct keyframes in it.

And there is another new method with vapoursynth and python: https://subarashii-no-fansub.github.io/Subbing-Tutorial/Generate-Keyframes-Vapoursynth/ (but this one only detects 95% of the scene changes, while the above one detects always 100% for my experience)

In any case, any of those 3 surpass the one from SE

Thanks for these 3 options, but so far I prefer still using this "workaround" because I will have to fix any shotchange manually anyway.

TarantinoMariachi commented 4 weeks ago

For now, yeah sure. But when SE accepts the 3 keyframes I told, any of those will solve any issue regarding bad shot changes. And then SE needs a fix too, because it is not appliying the rules to the correct frames, its not frame accurate, it goes 1 frame off.

My workaround is to apply the beutify time code, then go to aegisub (that accepts the 3 keyframes above), fix the 1 frame offset automatically with TPP and then go back again on SE and manually fix only the keyframes that have less time then 83ms, and that takes me 5min to manually solve.