Subtitle Options
The subtitle options mostly control how the .kbp to .ass conversion works.

Aspect Ratio
This sets the aspect ratio and margins configured in the resulting .ass file. It also currently sets the aspect ratio used by ffmpeg to render the subtitle onto video (a future version may pull that info from the .ass file itself).
If you want a quick recommendation, I’d suggest leaving the default “CDG, borders (25:18, True)” in place if you do a lot with horizontal positioning in KBS (e.g. you have text with different alignments and use the “across” option). It’s “safest” for that. For any other use case, I’d recommend the “Wide, borders (16:9, True)” option. The vast majority of people should use one of these two.
Ok, now for the technical details…
This is really two options smashed into one: the aspect ratio, and whether to add CDG-style margins. The field is actually editable so you don’t have to choose one of the options provided. The only part that gets processed is in the parentheses.
If the aspect ratio is not equivalent to the CDG aspect ratio, it will stretch out positions to match. So for example if you chose a wide aspect ratio, and in KBS you align something to the left, it will be moved over further left relative to center than KBS would do, because there’s more screen to work with. This is also the case if you use the “across” feature. It will move further than it would in KBS to distribute the positions over the wider screen. Similarly, if you set a narrower aspect ratio than CDG, it will space out lines more vertically to use the extra room.
The way this works together with Output Resolution in the video options is that the PlayResX and PlayResY get set based on a letterboxed resolution of the subtitle aspect ratio inside the video size. Some examples:
Aspect Ratio |
Output Resolution |
Letterboxed Resolution |
---|---|---|
CDG (25:18) |
1500x1080 |
1500x1080 |
Wide (16:9) |
1920x1080 |
1920x1080 |
CDG (25:18) |
1920x1080 |
1500x1080 |
Wide (16:9) |
1500x1080 |
1500x844 |
The borders component of the setting adds a CDG-style border to the margin, meaning that if for example you have the default Project Settings in KBS, your effective left and right margins increases from 2 to 8 and your top margin from 7 to 19 (which are then scaled from CDG pixels to your output size). It’s recommended to keep borders enabled, but since some CDG players will strip out the borders, I offered the option to do the same in kbp2video output. Just keep in mind, text will get pretty close to the ends of the screen if you make use of it.
Fade In/Out
This sets the amount of time lines fade in after the display time, and fade out before the remove time. Keep in mind, kbp2video uses line-based fade in/out instead of left to right load-in like KBS (and also doesn’t currently support the other transition types). If you want to emulate a page fade instead fading line by line, just set the display and remove times for all the lines on the page to be the same. There’s no queue for them like in KBS, they happen at exactly the timestamp you specify.
Timestamp Offset
In KBS, there is a setting,
, which impacts how timestamps are interpreted in every .kbp file you open. In the KBS preview and export, that offset is applied to them. By default, kbp2video will retrieve this setting from your KBS ini file KBS is installed, and apply it to the timestamps when converting (or 0 if it can’t find it). If you don’t have KBS installed on the computer you are using for kbp2video or you otherwise want to, you can override the offset to whatever value you want. Negative values mean the line wipes before the audio. The default value KBS uses is -0.2, but I recommend setting KBS to use 0, so your files can be more portable.Draw BG color transparent
This sets whether the first color in your palette is treated specially. In CDG, palette index 0 is special due to some of the technical details of the format and it’s also the index KBS always uses for the background color. If you write over something with color 0, it’s invisible, because KBS XORs the existing color with 0 since it expects you always to be writing over the background color. So, e.g. you can write invisible words overlapping something, and then wipe it in a different color (though that gets complicated because it will XOR that other index). This option, enabled by default, keeps palette index 0 special by telling .ass to draw it with 0 opacity. It does not in any way try to emulate the XORing of colors if you make overlapping text otherwise though.
Use \kt to allow overlapping wipes
The KBS UI allows you to overlap wipes on the same line, so multiple words on the same line could wipe at the same time, like you can do with separate lines. But KBS itself does not support that functionality, neither in the preview window, nor in CDG/video export. This enables it to work as you might expect, by using the \kt
tag in .ass. Note that this tag is not supported everywhere, so if you are distributing the subtitle, you may not want to use it, but if you’re only distributing the video it will work fine.
Word Wrapping
This sets what to do if the text is wider than the screen. The default behavior of “no wrap” simply cuts it off like KBS would do. The other 3 options do word wrapping. “even split” tries to make the lines roughly even when wrapping. “top split” makes the first line as long as it can without going offscreen. “bottom split” works like “top split” but actually maximizes the size of the second line. These map exactly to the WrapStyle options from the .ass format.