Alka Translations Monthly Status Report: July 2021

Greetings, one and all! Saitou here with another monthly update!

To be completely honest: June was a pretty darn slow month over here. Or rather, June was a ridiculously fast month that hit me and Log like a truck. Things have been crazy for us on the real life end of the spectrum, so frankly we just haven’t had the time we wanted to polish off the rest of RB.

Which is not to say that we didn’t get anything done! It’s not on the progress table, but I actually did get a very solid start on subbing the OP/EDs. Figure I might as well talk a little about that, since it’s incredibly silly and yet another good example of how nothing is ever as easy as it should be.

The big problem with them is that while the OPs are both in .wmv format, which is the easiest thing in the world to work with, the EDs are all packed up as .omvs. Gotta be honest: on a purely technical level I have only the barest understanding of what a .omv actually is. I think it’s something to the tune of ‘a .ogg with a special header that does… something,’ but I can’t say that with any degree of authority.

What I do know is that the unpack into viewable/subable .ogg files, and that you can sub those files, convert them to .ogv and throw a magical packing program at them until they’re .omvs again and the game deigns to acknowledge their existence!

So, the problems! First off, on a very basic level, going into this process I didn’t actually know how to hardsub videos. You’d think there’d be plenty of documentation on the matter, but the overwhelming majority of tutorials that I turned up involved using VLC’s video conversion feature, and in my book whenever public opinion directs you to VLC as the best option for anything at all, you can conclude with fair certainty that public opinion is definitely wrong. Surprise surprise, that method was buggy and bad at the best of times and outright didn’t work at all at the worst of times.

So I scrapped it, flailed around for a while and eventually settled on using ffmpeg’s command line interface to burn the subtitles in. If you ever have to work with video conversion/hardsubbing for something like this, trust me on this: skip the freeware, can VLC, and just use that instead. The command line stuff isn’t hard to get the hang of, and it’s like a thousand times less temperamental than any other method out there (or at least any other method I’ve found, anyway).

The next problem: the .omv files for the EDs don’t actually contain music. The ED tracks and videos are totally separate in terms of game logic. Even worse, the ED’s videos and music tracks start at slightly different times, so if you load the audio file into aegisub along with the extracted .ogg, they’ll be out of sync relative to how they play in-game. This isn’t a huge problem with a clever solution or anything, it’s just an enormous pain in the rear that took a boatload of time to get sorted out.

The last, biggest problem: the first ED that I did randomly crashed for no apparent reason about 2/3 of the way through. I’d love to explain the process I went through to figure this one out, but truth be told I flailed at it for a couple hours, then asked former Alka tech wizard Janson about it, who immediately knew exactly what was going wrong.

Turns out, some strange aspect of .omv conversion/packing that I can’t even begin to understand really doesn’t like it when there’s absolutely nothing happening on screen, and breaks the video on extended fade-to-white sequences. Don’t ask me how that makes sense, I really don’t know, but what I do know is that if the problem’s that the screen’s totally blank, the easiest solution is to make the screen technically not totally blank.

So I put a tiny, barely visible black dot in the subtitle track and hid it in a part of the screen that’s mostly obscured by the credits anyway! And just like that, the video played perfectly in-engine and I didn’t have to compress videos with slightly different commands for hours on end, looking for juuust the right settings to make it work properly. It’s an incredibly silly solution, but it works, and that’s what really matters in my book.

Anyway, we’re currently sitting at 1/2 OPs done and 1.5/3 EDs! Now that all the technical groundwork’s done, polishing the rest of those off in July should be a piece of cake, and then my work on RB will be 100% complete. And that means it’ll be finally time… for wafu.

Oh, and on the people-other-than-me front, the testers are still doing great! They’ve gone through the vast majority of the game (excepting Kamome and Tsumugi’s routes), so once TL smoothing’s all done the final polish stage shouldn’t be too incredibly long, by my mark. Can’t make any projections about when the patch will be done, as always, but we’re doing our best to make the release as good as it can be and we appreciate everyone’s patience!

That’s about it for this month—see you in August!

4 thoughts on “Alka Translations Monthly Status Report: July 2021

  1. Hanavi says:

    OMV is realy a fxxking terrible video format.
    It weast me over a week on encoding SPRB’s ED.

    Also, the OMV in Siglus is VFR.(Lower to 3fps on still frame)
    If you wanna make an animation subtitle, you’d better convent it to CFR.

  2. -_- says:

    The omv format is indeed an ogv/theora file with a custom index added on top for Siglus. That index contain some handy details for the video such as each frame’s timing information, ogg page sizes/offsets, keyframe info, and other little things. Presumably, this was meant to help the game engine quickly seek through the video because the Ogg container doesn’t provide all this info up front in one place..

    Now those crashes on fade-to-white sequences were caused by a bug in the packer tool. In its current version, it loads in 1 kilobyte of video data at a time with the assumption that it contains data for no more than 1 frame. This assumption doesn’t hold true for frames that are a solid color (such as fade-to-white); 1 kilobyte could potentially encode several frames of that type, so the packer tool will inadvertently not index those extra frames. The resulting omv index would be out of sync after that point in the video, which will confuse the game engine and leave it hanging, so to speak.

    With that said, the solution you presented is an amusing but effective workaround. I’m really sorry you had to spend all that time re-encoding the videos just to make it work, and I’ll admit that the packer tool was rough around the edges. Hopefully this bug can be squashed in the future if it ever comes to that.

  3. Spmario233 says:

    It’s really a nightmare for me to sub the Matsushita ED on AB!1st Chinese TL.
    I didn’t find the reason, and just changed the command line many times…

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.