Req Set Subtitle Frame Rate
#16
IMHO, there is no need to mess with the player and the subtitle codecs...
You can:
1) calculate the speed factor (sub frame rate / video frame rate)
2) grab the sub file
3) modify the timestamps in the sub file according to the speed factor
4) reload the sub file into the player
Maybe a not so elegant solution but I think this can be done even in python, maybe integrated in the subtitles addon.

BTW, my most common scenario by far is with .srt (time-based format) ripped from a PAL DVD (25 fps) against a BR source video (23.976 fps), or viceversa.
Reply
#17
I have this problem too.
Reply
#18
Bumping this. Now that much of the subtitle action have been merged (and may I say better integrated), I reckon it might be a more streamlined task - converting from one framerate to the other. From my experience, I've not seen a way of knowing the "subtitle framerate" when using the native subtitle downloader, even though this could be sourced in the search if the devs want to implement that (as it is stated in the search results, just not utilized by the add-on).

Given that SRT is probably the the most common subtitle handled, and it doesn't contain framerate information - it would be either a matter of rewriting the .SRT or calculating new timestamping to buffer when the SRT is parsed. Instead of making it wildly complicated, one viable approach might be 4-5 selectable "traditional" framerates for the "original" framerate. The target framerate could either be arranged the same way, or retrieved from the internal player. This way, you only have a small handful of static algorytms to work with, instead of a fully custom one in "both ends".

I'm really not supporting the notion that this is a trivial task - but I think it would be a really nice touch to an aready amazing system.
If I have helped you or increased your knowledge - please click the plus to the left below to give thanks
Reply
#19
Wouldn't the root issue be that the movie itself is playing back at an incorrect speed?
Reply
#20
(2014-07-07, 06:03)Ned Scott Wrote: Wouldn't the root issue be that the movie itself is playing back at an incorrect speed?

Usually this problem occurs when:

1) original subtitles are frame based and synced for different frame rate video files. (for example common situation in Europe: DVD PAL 25fps vs Bluray 23,967 fps)

2) someone "blindly" converts frame based subtitles (sub) to time based subtitle (srt) assuming wrong frame rate. Timestamps will be wrong.

It would be really cool if we could have possibility to "slow down" or "speed up" subtitles.

Something like:

- Adjust subtitles from 23,967 -> {currently playing video fps}
- Adjust subtitles from 25.000 -> {currently playing video fps}
- Adjust subtitles from 29.970 -> {currently playing video fps}

Or using percentages.. ("slow down/speed up 15%" ) ..or something else.

I don't know how XBMC handles text based subtitles internally, so I don't know it this is even possible. This "speed-up" or "slow down" value should be then ideally stored in database too, so we don't have to apply this again. Just like "subtitle delay" values are stored now.
Kodi @ Windows Server 2012 R2 | Pulse-Eight USB-CEC Adapter
Reply
#21
aaah, I'm starting to understand, I think
Reply
#22
Considering the most common scenario (SRT and a 25/23.976 conflict) I think that a simple and efficient solution would be a single gui button: "Adjust Subs Speed".

Xbmc will check the video speed; if it's 25 fps and the user wants the subs speed adjusted then the subs is likely to be at 23.976 fps; xbmc then will multiply all timestamps by 0.95904 (23.976/25), thus speeding-up the subs, and will re-feed the subs in the player; if the video speed is 23.976 then the subs are probably at 25 fps and the multiplier will be 1.042709 (25/23.976).
This should cover most of the cases.
Reply
#23
Id love this feature. But I'd love it even more if we could then eliminate the guessing for successive plays.

When we assign the fps to try
Option 1. - file name is appended/changed with the fps
Option 2. - fps is added/changed to the file and filetype changed to something like moviename.xsrt

Then, xbmc recongizes it and uses this fps setting next time subtitles are used.

Or we could utilize the database somehow? But either way, lets make it stick and then the subtitles and movie can match automatically on all future plays
Reply
#24
I would LOVE this feature as well.
Just let me give you an example why such a feature is helpful.

I recorded a movie, let's say "The Expendables 2" in German Pay TV in 1080i 25fps on Sky Germany and watch it in Kodi. It's already cut (I can do that on my VU+ box) and stored on my NAS. But I don't have subtitles, as Sky doesn't broadcast subtitles - neither in German nor in English.

If I download a subtitle with Kodi, almost all subtitles for the movie are based on 23,976fps - therefore even when I sync the subtitles to the recording at the beginning, it runs out of sync due to the different frame rate. On Sky Germany, the movie runs faster (and is over a few minutes early) due to the higher frame rate. So I would need to adjust the subtitle time stamps to the new fps rate. This can be done at a computer, but doing that in Kodi would be amazing and improve the movie watching experience dramatically!

Greets
Zodac
Reply
#25
I would really appreciate this feature as well. Is there any way I could help implement it?
Reply
#26
The best way is still to open the subtitle tracks in a sub editor (SubtitleEdit for exemple), and changing its timing by speeding/slowing it in the timing adjustment menu.
http://forum.doom9.org/showthread.php?t=162721
https://github.com/SubtitleEdit/subtitleedit
It tooks only a few seconds.
Reply
#27
Yep. That's what I do right now. But you need a PC for that. Doing that directly in KODI would be amazing.

Greets
Zodac
Reply
#28
I must said that it never crossed my mind that "having a PC" could be an issue when using Kodi, but indeed, why not...

It may be less obvious than you think. If subtitles are handled by an external library, like libass, if the library doesn't have this feature, Kodi can't do it.

Maybe there is a trick, but i don't know if it's realistic.
You can in Kodi specify an offset for timing subtitles, but it's a static value. Speeding up/slowing down subtitles may result of having a dynamic value for the offset. Each frame you'll compute the new offset value (can be positive or negative according your speeding it up or slowing it down) to apply to subtitles.
It's an idea of how it may be done, after, it's the dev who will say if it's realistic/possible, and if they want to do it.
Reply
#29
Already old Thread but just dicovered it by having exactly the same issue.
At one place I have a FireTV with KODI running, I play the movies and download the subs actually by sub plugin automatically. I do not have a PC or Mac in this apartment and I can't explain to my wife how she can edit a SRT or SUB File Smile

Indeed I suffer the same problem, most subs are not fitting the FPS of the movie / TV show this leads to the strange problem that at the beginning the subs are correct but every minute they get some seconds more out of sync. I cam adjust that by the manuall delay / advance by kodi UI but maximum is 60s advance/delay. This is reached in aprox 20min of playing.

I tried to mess around with the refreshrate settings and force the movie / show to play at other speed but this only made the problem worse.

My Question: Is there currently any way to make this "Fit Sub to playback" actually automatically or at least semi automatically without the need of a external computer and messing around with Sub / SRT Files?
BlogTumblrTwitter
Reply
#30
Pretty mch anyone who uses subtitles has that issue, myself included. The only option available is increase or decease subtitle delay in Kodi, and if that is still not possible and extending the 60 seconds to a greater value using advancedsettings.xml you till not able to achieve a close enough sync, then you are stuck with external options, which I never really had much luck with either.

For me the external option of messing with subs is that is a time consuming option.

What would be nice to see is, since often the timing on a subtitle is spot on and the sub in the language you want is not and thats far more likely, would be nice to load the timing from one sync subs and using on the subs you actually looking to use.
Reply

Logout Mark Read Team Forum Stats Members Help
Set Subtitle Frame Rate1