-
Notifications
You must be signed in to change notification settings - Fork 3k
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
[ASS Subtitle] Normalize timestamps like Aegisub #10783
Comments
mpv does rebase start times. Are you attempting to play back a file where the video stream doesn't start at timestamp 0 but the subtitle stream does? That's a corrupt file and it's the fault of whoever muxed it. |
I should have mentionned it, but yes, --rebase-start-time=yes seems to be the equivalent of what I am talking about, but when I tested it, the timestamps did not seems to have been rebased. Here is an sample to test what I said: Sample.zip
I said that Aegisub always normalize/rebase the timestamps, so the ass subtitle stream will always start at 0. That's not really corrupt, it is only like that the Aegisub works. |
You'll have to remux the input file as |
What do you mean?
I don't think this is an good idea. Any .ass works like that. I don't see why the user should be the one to apply an delay when mpv should do it automatically. |
If you're using aegisub you're authoring a file, so you are not an end user. And the reason it doesn't do it automatically is, as I explained, |
I just tested it and it doesn't work, but, anyways,
Ok, so in brief, you are saying that it is not mpv job to works has Aegisub. |
Expected behavior of the wanted feature
MPV should maybe normalize the timestamps of the video to display an .ass file.
It means the first frame will have a timestamps of 0 ms.
Example:
If the timestamps look like this:
Then, the normalize timestamps would look like that:
Here is how Aegisub implemented it
Aegisub, the most used program for editing .ass subtitle, normalize the timestamps.
This means that currently, if the first video timestamps does not start at 0, the subtitle will not be render at the exact same frame between MPV and Aegisub.
Currently, there is an issue opened about this problem on Aegisub repos.
See: TypesettingTools/Aegisub#21
But, since 2010, Aegisub has always normalize the timestamps, so if mpv does not normalize it, it can cause an different timing rendering.
I created this issue, because I wanted to let know the mpv developpers about this possible problem.
I am not 100% sure if it should normalize the timestamps like Aegisub or not.
The easiest solution is to use an mkv video and apply this command with mkvmerge:
mkvmerge --output OUTPUT.MKV --sync -1:ANY_NUMBER_ABOVE_0 INPUT.MKV
It will delay the timestamps. The important is that the first timestamps does not start at 0 and if the video fps is 24000/1001, you should at least wrote >42ms to see an difference between Aegisub rendering and mpv rendering.
Then, open Aegisub and create a few lines and save the subtitle.
Finally, open the video and the .ass subtitle with MPV and you will be able to see that the subtitles will not be rendered at the same frame.
The text was updated successfully, but these errors were encountered: