I have been trying to get subs in movies using Handbrake for years now. I encode movies with the intention of playing them on my XBOX 360. Over these years, Handbrake has improved leaps and bounds, especially now that they have profile specification suppourt.
But subtitles are still a nightmare. Between limited format suppourt, and the limitations imposed on the formats that are suppourted, it really is a sad state of affairs.
At first I used to try embedding .srt files in the file (btw, I always use .m4v, never .mkv), and the XBOX just can't seem to find them. I thought about hardcoding, but that just can't be done with .srt can it? Of course not, that would be enormously convenient.
After a dabble of research, I came to understand that .ssa files can be burned in (only if in the source container, of course! No convenience allowed!).
So I quickly downloaded SubtitleEdit, opened up an .srt, saved as .ssa, and remuxed it into the .mkv I wanted to convert.
It worked beautifully. Who would have thought?
So I tried with some other movies, and wouldn't you know it, abysmal failure. This begins the bug report.
When encoding videos with .ssa subtitles set to "burned in", the encode completes, and plays fine.
The subs are, however, broken.
All that appears is the first line, then the rest never shows up.
For example, let's say the first subtitle, as it should appear in-film is:
I love You
What actually appears is:
!Effect,I Love You□
And yes, that square at the end is included as a square. The subtitle shows up at the right time, disappears at the right time, and then that's the end of all subtitles, for the rest of the movie.
The following is the encode log for a broken encode:
http://pastebin.com/aZ95jY3C
The following is the .srt file:
http://pastebin.com/BRrZGU3K
The following is the .ssa file:
http://pastebin.com/rW44Y213
(yes, I removed the first line)
I should like to note the following lines from the encode log:
[14:37:12] [ass] [0000000004F2D2B0]: Warning: no style named '0:00:50.84' found, using 'Default'
[14:37:12] [ass] Neither PlayResX nor PlayResY defined. Assuming 384x288
The second error there is clearly stupid; I do not know what god-forsaken SubStation Alpha parser is used in handbrake, but god damn that's gotta been some of the [Censored] guesswork I've ever seen. Why not just put the information there anyway, you ask? Because it makes the text about the size of an ant, for whatever reason, in the pre-encode .mkv. So f*ck that.
The first line clearly shows another parsing error. The parser clearly can't identify the fact that it is looking at the end time, not the style section. This fact would explain the error in its entirety. The question is: why?
Looking at a line from the .ssa, we see it is formatted correctly:
Code: Select all
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: Marked=0,0:00:48.30,0:00:50.84,Default,NTP,0000,0000,0000,!Effect,Did you feel it too, Supreme Kai?
So basically, Handbrake sucks.
Oh, and if you're wondering about the first encode I did, I have neither the .srt, the .ssa, nor the encode log. F*ck me, right?