AVS to BluRay SUP/PGS and BDN XML
=================================
This program can be used to transform AviSynth scripts, which produce RGBA
output, 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:
On Ubuntu:
```
sudo apt-get install mingw32 mingw32-binutils
make
```
1. Prepare subtitles. You can either produce subtitles in a normal format like
SRT or ASS/SSA, or produce an RGBA video beforehand.
2. Create an AviSynth script. If you made a regular subtitle file, you can use
something like this:
```
video=AviSource("video.avi")
# This requires at least VSFilter 2.39
MaskSub("subtitles.ext",video.width,video.height, video.framerate,video.framecount)
```
If you created an RGBA video, do something like this instead:
```
AviSource("subtitles_RGBA.avi")
FlipVertical()
```
3. Run the program:
```
avs2bdnxml -t Undefined -l und -v 1080p -f 23.976 -a1 -p1 -b0 -m3 -u0 -e0 -n0 -z0 -o output.xml input.avs
```
4. You get a BDN XML file in the following format:
```
000000.png
```
5. To convert output directly to BD .sup format, simply change extension for output file in programm call to .sup.
**Don't use BDSupEdit or BDSup2Sub if you enabled -b for splitting images in multiple parts!**
Commandline Parameters
----------------------
```
Usage: avs2bdnxml [options] -o output input
Input has to be an AviSynth script with RGBA as output colorspace
-o, --output Output file in BDN XML format
For SUP/PGS output, use a .sup extension
-j, --seek Start processing at this frame, first is 0
-c, --count Number of input frames to process
-t, --trackname Name of track, like: Undefined
-l, --language Language code, like: und
-v, --video-format Either of: 480i, 480p, 576i,
720p, 1080i, 1080p
-f, --fps Either of: 23.976, 24, 25, 29.97, 50, 59.94
-x, --x-offset X offset, for use with partial frames.
-y, --y-offset Y offset, for use with partial frames.
-d, --t-offset Offset timecodes by this many frames or
given non-drop timecode (HH:MM:SS:FF).
-s, --split-at Split events longer than this, in frames.
Disabled when 0, which is the default.
-m, --min-split Minimum length of line segment after split.
-e, --even-y Enforce even Y coordinates. [on=1, off=0]
-a, --autocrop Automatically crop output. [on=1, off=0]
-p, --palette Output 8bit palette PNG. [on=1, off=0]
-n, --null-xml Allow output of empty XML files. [on=1, off=0]
-z, --stricter Stricter checks in the SUP writer. May lead to
less optimized buffer use, but might raise
compatibility. [on=1, off=0]
-u, --ugly Allow splitting images in ugly ways.
Might improve buffer problems, but is ugly.
[on=1, off=0]
-b, --buffer-opt Optimize PG buffer size by image
splitting. [on=1, off=0]
```
Detail informations on [doom9](http://forum.doom9.org/showthread.php?t=146493)
> http://ps-auxw.de/avs2bdnxml/