Possible bug with embedded soft muxed srt subtitles (mp4/mkv)

Hi,

I have noticed a very strange problem whereby Infuse does not seem to respect the ending timestamp of SRT subtitle lines that are soft embedded in mp4 or mkv files. Whenever I play such a file the subtitles show fine, but the ending time for lines are not respected. What I mean by that is that the line of text will stay on the screen until either the next subtitle is displayed or until approximately 10 seconds pass (so for example a line that should appear say at 00:23:12:112 and finish around 00:23:13:112 will appear on time, but stay on screen until around 00:23:23 if no other subtitle follows).

I have checked the timings of the SRT files in question in Aegisub and by playing the exact same vidoe files on VLC, Mplayer and Quicktime on my Mac; and there is definitely nothing wrong with the SRT or movie file as all of these treat the SRT timing correctly as it should.

If I add an mp4 to the iPhone’s native video location and play it through the native video player there is no problem either. Adding these files to infuse locally (so not to the native video location) or streaming them from an external location however results in Infuse not respecting the ending times of lines as explained above.

(Incidentally I noticed that Infuse apparently uses the native iOS movie player core for local mp4’s, as playing a file that is added to the native video location through iTunes shows the same style of subtitles as the native player and as said this does respect line ending times!)

Finally, and strangely enough it seems that streaming the same video file but using an external SRT (movie.mp4/movie.mkv + movie.srt), which I did by extracting and then deleting the soft embedded SRT in the movie container (and whereby thus the SRT and movie file are the same as in the muxed container), does in fact make Infuse respect the SRT line ending times…

So it seems there is definitely an issue with infuse and embedded SRTs (the issue doesn’t happen with vobsubs btw). I’m running the latest iOS version (9.3.4) and the latest Infuse version (4.3.1), and I’ve tried deleting and reinstalling the latter, but this issue always pops up.

I’ve already submitted a mail to support for this but I’ve never heard back from them, so I’m posting this in the forum to try to bring this to the attention of one of the devs. :slight_smile:

Cheers~

I’ve just tried replicating this issue here, but both ways seem to perform correctly.

I’m going to try and locate your support ticket so we can gather a bit more info about the file(s) that is causing problems.

Hi James,

Thanks for replying. Unfortunately I have to say that i didn’t include a file with the ticket, as most, if not all, of my files are a) copyrighted movies that I ripped to watch on my iphone/ipad and media player and b) I don’t have a file that’s under 1 GB of size.

If you would like to examine some of my movies. I could try to rip just the first 10 minutes of a movie or so and add an edited srt in the container, but in that case it’ll have to wait until I find some free time to do that I’m afraid.

Hi James :slight_smile:

I have exactly the same Problem with the subtitle ending times on the latest AppleTV App…

James,

Seems I’ll have some free time on my hands this weekend so I’ll try to whip up a short excerpt from a movie, and make an MKV with the SRT embedded and one with the SRT as an external file so you can try for yourself. I’ll also see if I can somehow get some screen recordings of the issue in order to properly show what happens, but no promises there.

If I put a file Movie-Name.srt in the folder and use this Subtitle instead of the embedded subtitle, then the endings are correctly!

Yeah, indeed, as I said in my original post, line ending times of external subtitle files are indeed respected, which makes it all the more confusing why this is an issue with embedded SRTs. (And external SRTs are ok as long as you only need one subtitle, but not an option if you need multiple SRTs (ex. multiple languages) for one movie.)

Infuse will actually support multiple external subs…if that helps you while we work to track down what’s going on here.

Just use something like this.

Inception-2010.mkv
Inception-2010-en.srt
Inception-2010-es.srt
Inception-2010-fr.srt
Etc…

Hey James,

That’s pretty neat! I had no idea that was possible.

As promised I made some samples and I captured the issue happening. You can find a zip file containing said captures as well as the used sample MKVs at the following link:

Here is also the text of the included read me file:

In the folder ‘Comparisons’ you can find three files which show the issue in practice. The difference in ‘correct’ and ‘incorrect’ subtitle ending times are most visible when comparing the ending timings of the lines ‘Hurry, get the umbrellas’ and ‘You can count on me’. For easy reference the approximate begin times of said lines are given as ‘(mm:ss;mm:ss)’ in the file description below:

<strong>* 'MKV with embedded subtitles on VLC Mac.mp4' (00:14;00:28) = A capture of the MKV sample with embedded srt playing on VLC on a Mac. The subtitle endings are respected.</strong>

<strong>* 'MKV with embedded subtitles in Infuse.mp4' (00:13;00:26) = A capture of the MKV sample with embedded srt plating in Infuse on an iPhone. The subtitle endings are not respected.</strong>

<strong>* 'MKV with external subtitles in Infuse.mp4' (00:12;00:26) = A capture of the MKV sample with external srt plating in Infuse on an iPhone. The subtitle endings are respected.</strong>

Finally, the folders ‘Whisper of the Heart fragment (sub embedded)’ and ‘Whisper of the Heart fragment (sub external)’ contain the used sample fragment MKVs themselves, respectively with embedded and external srt, for your perusal in order to try to replicate the issue.

P.S.: The captures do not contain sound in order to keep the file sizes down.

Awesome! Thanks for taking the time to put this together.

We’ll take a look, and do our best to track down what’s causing this issue. :wink:

Hey James,

Just a little bump to see where you guys are on this issue? Did you manage you replicate the issue? Just asking because a new Infuse update was released a few days ago, but the sub ending-time issue still persists in that build I noticed.

Actually yes, we have it fixed up for the next major version.

Drop me a PM if you want to try the beta early. :wink:

Awesome news! And thanks for the beta invite, but I’ll wait it out. For now I can keep rollin’ thanks to the external sub-file tip you gave earlier, though I’ll be glad when I can mux them back into the files in order to keep things tidy. :wink:

James and everybody over there at Firecore, thank you, thank you, thank you!!! Just downloaded the latest update of Infuse and indeed the issue has been resolved! So happy right now! So now on to remuxing all my stuff and discard all those loose srt files that were cluttering my file system. :smiley:

Seriously y’all, super big thanks for taking care of that bug!

Oops, never mind… Seems the ‘bug’ still exists. :frowning: I used the wrong file for checking. Then again, a x.x.x update was probably not the major one you were alluding to I guess. :slight_smile:

Sorry, the fix was not part of 4.3.4… but is coming very soon. :wink:

Looks like it’s finally fixed now? Judging by the “Fixed timing for embedded SRT subtitles” in the changelog.

But there’s one catch - looks like you have to purchase it again just to get it fixed. Oh well :-\

It seems that if the bug was fixed it has resurrected itself. I stumbled on this while searching for a solution to the fact that this was happening to me with infuse 5.6.3 on my new 4K AppleTV.

Just checked on our AppleTV (not the 4K one though), my iPad and my iPhone, respectively running TVOS 11, iOS 11.2, iOS 10.3.3 and all using the latest versions of Infuse. I can’t replicate the issue unfortunately. Embedded SRT subs still play correctly either streamed or played locally, respecting the ending time tags.

Are you sure that the actual sub files are correctly timed for the media you’re playing? And what type of subs are they (SRT, SSA/ASS, SUB/IDX, PGS,…)? Secondly are you playing your media locally or are you streaming from another device? Lastly, do you have an iPhone or iPad? If so does the same problem occur if you play your media in Infuse on either of those devices?

Edit: I think the link to the comparison files (which I prepared to help diagnose this issue originally) is still valid. Could you try to download the zip from post #9 on the first page, and then try to play the file with the embedded subs and compare it to the movie that shows the same file playing in VLC on a Mac? The latter one shows the correct timing length of the subs, so you can then compare to what happens on your ATV in order to confirm this is indeed the same issue that you’re having now and not something else.

Try it with an embedded srt where there is 2 hrs left in the movie after the last subtitle. Ie the first ten minutes isn’t English but the remainder is. Such as valerian. The final time stamp Isn’t respected and the last subtitle stays up for the remaining 2 hrs. Srt was embedded with Subler, syntax was validated, QuickTime, vlc, and mplayer all handle it fine.

Well, I don’t think I have such a file available, and I’m out of the country for the coming month so I have no access to my computer to quickly whip up a test file… But if I’m reading your issue correctly, it would mean that Infuse does not respect the end tag of the very last subtitle in an SRT file. Using the samples I prepared that would mean that when the two characters split up the line ‘you can count on me’ should stay onscreen until the end of the sample (whereas correctly it should disappear just when they round the corners). In my case all my devices with the latest infuse do this correctly.

Have you actually checked the sub file contents in a text editor and did you make sure it isn’t using a weird text encoding? Because it may be possible that the actual numbers in the timing tags are screwed up, and this does not always trigger syntax warnings. Is there a way you could upload the actual sub file somewhere for others to check?

Edit: What is the filetype of the media you’re trying to use? MP4, MKV, something else? Because I only really use MKVs so that’s the only format I have tested it with right now.