Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
ASS/SSA to BluRay SUP/PGS and BDN XML
---------------------------------
This program can be used to transform ass or ssa subtitles to BDN XML+PNG format.
This in turn can be transformed into a SUP file, which can be used to master a
BluRay disc with subtitles.
Usage instructions:
0. If you want to build it:
cmake -Bbuild -DCMAKE_BUILD_TYPE=Release .
cmake --build build
Timing and frame alignment:
ASS/SSA event times are measured in time, while BDN XML event times are video
frame numbers. XML and its PNG images therefore remain sampled only at video
frame starts.
SUP/PGS output is frame-aligned by default for compatibility with existing
output. Pass --sup-high-precision to add exact ASS event start and end times to
the normal video-frame render timeline and write those boundaries in the SUP
90 kHz clock. The video-frame samples needed by moves, transforms, fades,
karaoke, and overlapping events are retained in both modes.
When XML and SUP are requested together, libass renders their selected unified
timeline once. SUP consumes every sample, while XML keeps independent state and
consumes only video-frame samples. The -z/--stricter option only changes SUP
buffer/epoch checks and does not change timing.
1. Prepare subtitles. You can either produce subtitles in a normal format like
ASS/SSA.
2. Run the program:
ass2bdnxml -v 1080p -f 23.976 -o output.xml input.ass
3. For some programs, you have to convert the PNG files to 8bit RGBA palette.
This doesn't apply to BDSupEdit. You can do it with a tool like pngquant or
pngnq.
pngquant: http://www.libpng.org/pub/png/apps/pngquant.html
pngnq: http://pngnq.sourceforge.net/
4. You get a BDN XML file in the following format:
<?xml version="1.0" encoding="UTF-8"?>
<BDN Version="0.93" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="BD-03-006-0093b BDN File Format.xsd">
<Description>
<Name Title="Undefined" Content=""/>
<Language Code="und"/>
<Format VideoFormat="[ 480i / 480p / 576i / 720p / 1080i /1080p ]" FrameRate="[ 23.976 / 24 / 25 / 29.97 / 50 / 59.94 ]" DropFrame="false"/>
<Events LastEventOutTC="00:00:00:00" FirstEventInTC="00:00:00:00" ContentInTC="00:00:00:00"
ContentOutTC="00:00:00:00" NumberofEvents="[ number of encoded frames ]" Type="Graphic"/>
</Description>
<Events>
<Event Forced="[ False / True ]" InTC="00:00:00:00" OutTC="00:00:00:00">
<Graphic Width="0" Height="0" X="0" Y="0">000000.png</Graphic>
</Event>
</Events>
</BDN>
5. Use a program like BDSupEdit or BDSup2Sub to convert the BDN XML
to a BD-SUP file. The rest is left as an exercise for the reader.
BDSupEdit: http://forum.doom9.org/showthread.php?t=146157
BDSup2Sub: http://forum.doom9.org/showthread.php?t=145277
-- http://ps-auxw.de/avs2bdnxml/