BakaSub for Linux

BakaSub, a Linux subtitling program by Dan Potter

Main | Docs | Download | Links | News

Latest news update 04 Sep, 1999

NOTE: In case the above line didn't particularly clue you in on the fact =) this site hasn't been updated for many years now and there is very little chance of BakaSub being resurrected at this point as a project, at least by me. If you have the inclination and you'd like to continue it yourself, it'd be happy to have a new home that loves it, I'm sure =). I've got too many other projects in line in front of it anymore (and Linux's video support is still just as pitiful as it ever has been, really).

This page is probably out of date and probably always will be to some extent; see the news page for the latest accurate details.

Irasshaimase!

Welcome to the web page for BakaSub, subtitling software for Linux. All ye anime fans who are also die-hard Linux users, rejoice! BakaSub will save you from having to boot into Windows just to do subtitling work like I do ^_^

BakaSub is currently being written using the

GTK+ toolkit, along with the GTK-- bindings. BakaSub is written entirely in ANSI C++ (using the -pedantic flag of EGCS) so it should be portable too. I aim for full Gnome compliance in BakaSub, as well as some Gnomey features (like graphics drag'n'drop, concurrent events, etc). Currently there are no Gnome specific features or support other than using GTK+, but it is basically a matter of turning on a flag in the Makefile. More will be done on that later.

BakaSub was being designed directly from Kotus' popular and god-like Sub Station Alpha program for Windows. Although the two programs share no actual code (they are written in very different languages, in very different environments!) I aim to have full Sub Station Alpha compatability. What does this mean for you, the user? It means that any script you create with BakaSub, you can trade with your friends who have SSA. It also means that any SSA script you receive will work perfectly out of the box (minus a few font differences) and any SSA script you edit will retain 100% of its previous data (no loss of data after going through BakaSub).

In modern versions of BakaSub (about the last two) I have made a decision to break away from SSA's user interface, however, because I think that it limits the user in some ways that are understandable for SSA's implementation, but which I have the opportunity to do away with because of the speed of C++. For example, SSA (at least as of version 3.x) displays a single subtitle for you to look at in the preview window, while BakaSub actually shows a scale-model preview with all concurrent subtitles and graphics.

What's planned?

Note: some of this has been completed.

  • Complete plug-in system for extensible features.
  • Full SSA script compliance.
  • All basic SSA 3.x functionality -- easy editing of scripts, on-screen preview, cut/copy/paste, etc; timing from wav files; timer adjustment capabilities; "edit mode" (playback of subtitles with adjustment controls)
  • Font rendering based on the FreeType font library; this will allow anti-aliased fonts (which look nice), better outlining support, and support for embedded fonts; TrueType fonts are also basically a must for doing any real subtitling work and TT font servers are not so common for X.
  • Key SSA 4.x functionality like embedded script fonts and images
  • Wav recording facilities; weird wav features for translating gaijin (play wavs/subtitles in slow motion).
  • I18N support (depends on GTK+ support!) for Japanese text entry.
  • Timing collision utils -- to help you figure out where you have collision problems, and make it very obvious on the main edit display.
  • Smart line balancing to avoid the "hanging words" problem.
  • Support for graphics overlays and stippled backgrounds/pictures. Graphics overlays are like the TV station "bugs" that stay in the corner during the show. Stippling is like dithering, except the two colors are some color you pick and the genlock key color.
  • Video for Linux controls
  • Stream-from-movie-file support. Meaning, you could take your favorite MPEG or QuickTime movie and subtitle over it with a script. Drink a coffee while it's going and forget about timing problems forever. See freeze frames of the movie in the preview window. You know, that kind of thing ^_-
  • A completely extensible class heirchy allowing for arbitrary innovations that I didn't foresee when I wrote it, like easy support for completely external titling devices and a stream-from-movie mode.

What do you need help with?

  • Any feature you really dig in SSA, let me know. Or better yet, implement it for me and send me the patch/plug-in. I'll probably include it in the next "release" of the program.
  • Any feature you can think of that would be really great for subtitling, the same goes as above.
  • I am still up for info on the ATI All-in-Wonder cards. I have created a Righteous Hack to use the ATI card under Linux for subtitling but it is not good.
  • If someone gets adventurous, a Windows(tm) port is possible.

Source code?!

Yep, there's GPL'd code up here right now, ready for download! Please check the downloads section.

You can download a binary package or a source package, depending on your needs/resources. For the binary package, if you are not running Debian Linux/Potato then you probably need to download the extra libs package too. If you port BakaSub, I'd love to hear about it, and maybe get some patches! ^_^

BakaSub is currently designed to use GTK-- 0.99.5 and GTK+ 1.2.x. It will not work with GTK+ 1.0.x, nor with earlier versions of GTK-- probably. It should work with GTK-- 1.x and I will try to post a new binary that uses that in the near future.

BakaSub is my first real foray into GTK+ programming, and the first time I've used GTK--. They both seem like really great packages but you may find some idiosyncracies in my code. Bear with me; and of course, suggestions are always welcome.

You may modify it under the terms of the GNU Public License. If you wish to submit your changes to me so I may review them for inclusion in the main distribution, please create a unified diff (diff -u) and email it to me, along with a description of what your patch does. Remove the (nospam) to get a valid email address. Please also include some comments in your code, and feel free to use the DBG() macros.

Just can't stand the suspense, eh?

Ok, here is a little screen shot for you to get a look at the current devel version. Note that the distortion/dithering on the preview area is thanks to the 24bit->gif conversion, rather than there actually being dithering there to screw up the genlock winking smiley. This shot also shows off GTK+ 1.2 with Tigert's excellent brushed metal theme.

bakasub0110.gif

Site subsections