This document provides technical guidance for the most common procedures.
Some of the procedures have Windows-specific instructions and are marked as such,
but there is most likely a way to modify these instructions to get them to work on other platforms (for example, using Wine or alternate software).
Many users prefer to use the raw SRT files to generate subtitles on-the-fly using HTPC software. Although this should work, this
document does not provide any instructions for how to accomplish or troubleshoot this. Please note that using SRT files for playback
is potentially much more complicated and prone to problems than using SUP files--and even if everything goes perfectly with the SRT files,
they still won't look as nice as the SUP files. Unless you know that they simply will not work for your particular needs, save yourself
the headache and just use the SUP files.
Project Threepio's subtitles work best with audio and video that have the following characteristics:
All films synced to the 2006 "Bonus Disc" (GOUT) release of the trilogy
For all films, English opening crawl text, English audio, and burnt-in theatrical English subtitles for alien dialogue
For Star Wars, the original 1977 English crawl, with the original 1977 English stereo or six-channel audio mix
For The Empire Strikes Back, the 35mm version of the video, with any English audio mix other than the 70mm or mono versions
Video format: 1080p@23.976fps, 720p@23.976fps, or NTSC DVD
Aspect ratio: approximately 2.37:1, letterboxed in a 1.78:1 frame
Examples: Harmy's Despecialized Editions, Team Blu/dark_jedi's Trilogy Blu-ray & DVD Preservations.
The document includes detailed instructions for modifying the subtitles to work better with audio and video sources
that have different characteristics, such as scans of film reels, international versions, Laserdisc preservations, etc.
Project Threepio subtitle files use the following naming convention:
ROTJ
-
spa-419
-
full
.
sup
Ⓐ
Ⓑ
Ⓒ
Ⓓ
Ⓐ Film prefix: can be one of the following:
SW: Star Wars
ESB: The Empire Strikes Back
ROTJ: Return of the Jedi
Ⓑ Language code: the ISO 639-3 language code, sometimes with a modifier to indicate dialect, writing system, and/or SDH subtitles
Ⓒ Type of subtitle: can be one of the following:
full: everything is subtitled
titles: only onscreen text is subtitled, to accompany a dub that does not voice over the onscreen text (and/or alien languages)
native: onscreen text is not subtitled, designed for video with burnt-in alien subtitles
nocrawl: onscreen text is not subtitled, designed for video without burnt-in alien subtitles
match: same as native, but designed to mimic the appearance of theatrical alien subtitles
alien: subtitles for alien dialogue only, designed to look almost exactly like the theatrical
alien subtitles
template: used only for creating new subtitles
rtl: for RTL scripts, indicates that the file is optimized for editing (i.e. for software that fully conforms to the Unicode Bidirectional Algorithm, characters are in logical order, minimal control characters are used)
compat: for RTL scripts, indicates that the file is optimized for media playback (i.e. for software that does not fully conform to the Unicode Bidirectional Algorithm, characters are not in logical order)
Navajo Titles (nav; Diné Bizaad; only with SW dub)
Subtitles in bold are the ones I prioritize for formats limited to 32 subtitle tracks (Blu-ray/AVCHD/DVD);
more languages could be added by excluding "titles" subtitles and their associated dubs
Under general track options, select the language per track as needed
Specify an output filename and select Start Muxing
If necessary, create BD-SUP files in the appropriate resolution using these instructions (1080p and 720p files are included)
Run tsMuxerGUI
Add the video, audio, and BD-SUP files (not SRT files!) to the Input Files (the Blu-ray/AVCHD format is limited to 32 PGS subtitle streams--do not add more, even though tsMuxerGUI allows this!)
If necessary, create DVD SUP/IFO files using these instructions (NTSC DVD SUP/IFO files are included)
Run the modified MuxMan executable found in the resources folder (if you are not running Windows, you will need to run this using Wine)
Under File, choose Load Project
Select the dvd-palette.mxp file in the resources folder
NOTE: If you don't include the palette, the subtitles may end up a mottled pink color. Palette files in other formats are also available for other muxing software.
Select the video and audio streams
Under SubPictures, choose the DVD SUP files (the DVD format is limited to 32 subtitle streams, and some authoring and playback software is limited to even fewer)
NOTE: Under most circumstances, you will not need to do this! You should only do this if you want to alter the appearance
or text of the subtitles to be different from the included ones! If you are not doing this, just mux the included BD-SUP files.
NOTE: The shift_subs.pl script uses the Project Threepio file naming conventions to determine file characteristics. Files not using these naming conventions may be handled incorrectly.
FONT NOTES: EasySUP does not support OTF fonts, so fonts in OTF format must be converted to TTF. Some systems may have multiple Microsoft JhengHei fonts installed, and easySUP doesn't show the full font names.
To choose the correct Microsoft JhengHei font, the correct one is listed first.
Copy the DLL files from the vsfilter folder into easySUP's tools folder, overwriting existing files
Run whichever of the following commands are appropriate (change paths to match your system):
Matching and Reconstructed Alien:perl perlprep_subs-match.pl SRT*-eng-native.srt SRT*-alien-*.srt
These scripts will create new SRT files. NOTE: The resulting SRT files contain formatting data specifically for easySUP with the modified vsfilter.dll file.
Do not use these modified SRT files for any other purpose!
Run easySUP (this software has not been verified to work on non-Windows platforms using Wine)
Load the appropriate modified SRT file (NOTE: if creating matching or reconstructed alien subtitles, choose the native SRT file that has been modified by the "match" script)
Confirm the following settings for most subtitles (NOTE: some settings reset when you load a new SRT file):
* Matching and reconstructed alien subtitles are generated without a border or drop shadow, because the shift_subs.pl script is used to add effects for better fidelity to the theatrical appearance
Matching Chart: To be used only with matching and reconstructed alien subtitles
Star Wars/The Empire Strikes Back
Return of the Jedi
Font/Size/Style
Font Color
Margin
Font/Size/Style
Font Color
Margin
English 35mm
P3PO SW Matching, 89, Normal
Custom RGB R: 229 G: 233 B: 221
157
P3PO ROTJ Matching, 89, Normal
Custom RGB R: 229 G: 233 B: 221
162
German 35mm
Unknown
Unknown
Unknown
P3PO ROTJ Intl Matching, 85, Normal
Custom RGB R: 229 G: 233 B: 221
175
Italian 35mm
P3PO SW Intl Matching, 85, Normal
Custom RGB R: 253 G: 253 B: 246
192
P3PO ROTJ Intl Matching, 89, Normal
Custom RGB R: 229 G: 233 B: 221
180
Click Start to generate a BD-SUP file, and save it to the SUP-1080p folder
Create a folder named tmp_XML and then run the following command (change paths to match your system):
Windows: for %f in ("SUP-1080p\*.sup") do java -jar resources\BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o tmp_XML\%~nf.xml SUP-1080p\%~nf.sup
Other platforms: for f in SUP-1080p/*.sup; do FN1=$f; FN2=${FN1##*/}; java -jar resources/BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o "tmp_XML/${FN2%%.*}.xml" "$f"; done
Run the following command (change paths to match your system): perl perlshift_subs.pl tmp_XML
Delete the unmodified 1080p BD-SUP files from the SUP-1080p folder
Run the following command (change paths to match your system):
Windows: for %f in ("tmp_XML\*.xml") do java -jar resources\BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o SUP-1080p\%~nf.sup tmp_XML\%~nf.xml
Other platforms: for f in tmp_XML/*.xml; do FN1=$f; FN2=${FN1##*/}; java -jar resources/BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o "SUP-1080p/${FN2%%.*}.sup" "$f"; done
The ideal size for a subtitle is very dependent on display size and seating distance (and, in an ideal world, would be adjustable by the player). Subtitles included with Project Threepio, like those included on commercial discs, are designed with typical home display sizes and seating distances in mind. For displays outside that size range, these subtitles may not be the best size, and you may want to adjust their sizes to better fit your needs. Project Threepio includes scripts that allow you to scale the subtitles between 33% and 110% of their original size. In the commands below, replace the text PERCENTAGE with the percentage you want to use.
Subtitle Scaling Factor Guidelines For Various Display Sizes and Seating Distances*
Metric
Imperial/US
<1.5 m
1.5-4.5 m
>4.5 m
<79 cm
100%
110%
110%
79-152 cm
83%
100%
110%
153-229 cm
67%
83%
100%
230-305 cm
50%
67%
83%
306-381 cm
33%
50%
67%
>381 cm
33%
33%
50%
<5 ft
5-15 ft
>15 ft
<31 in
100%
110%
110%
31-60 in
83%
100%
110%
61-90 in
67%
83%
100%
91-120 in
50%
67%
83%
121-150 in
33%
50%
67%
>150 in
33%
33%
50%
* The ideal subtitle size also varies depending on several factors that are harder to quantify,
so these guidelines may serve only as a reasonable starting point
Create two folders, named tmp_XML and SUP-1080p-scaled
Run the following command (change paths to match your system):
Windows: for %f in ("SUP-1080p\*.sup") do java -jar resources\BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o tmp_XML\%~nf.xml SUP-1080p\%~nf.sup
Other platforms: for f in SUP-1080p/*.sup; do FN1=$f; FN2=${FN1##*/}; java -jar resources/BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o "tmp_XML/${FN2%%.*}.xml" "$f"; done
Run the following command (change paths to match your system): perl perlscale_subs.pl PERCENTAGE tmp_XML
Run the following command (change paths to match your system):
Windows: for %f in ("tmp_XML\*.xml") do java -jar resources\BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o SUP-1080p-scaled\%~nf.sup tmp_XML\%~nf.xml
Other platforms: for f in tmp_XML/*.xml; do FN1=$f; FN2=${FN1##*/}; java -jar resources/BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o "SUP-1080p-scaled/${FN2%%.*}.sup" "$f"; done
None of the subtitles included with Project Threepio are marked as forced*. If you wish to mark the "title" subtitles (those used
to translate onscreen text) as forced, follow the instructions below to convert the 1080p subtitles. If you do this, it is recommended that you
ignore the pre-made titles subtitles and instead convert the full subtitles--this process will mark only the title subtitles within the full
subtitles as forced. Any subtitles converted from these 1080p subtitles will inherit the forced properties.
NOTE: The force_titles.pl script uses the Project Threepio file naming conventions to determine file characteristics. Files not using these naming conventions may be handled incorrectly.
Create two folders, named tmp_XML and SUP-1080p-forced
Run the following command (change paths to match your system):
Windows: for %f in ("SUP-1080p\*-full.sup") do java -jar resources\BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o tmp_XML\%~nf.xml SUP-1080p\%~nf.sup
Other platforms: for f in SUP-1080p/*-full.sup; do FN1=$f; FN2=${FN1##*/}; java -jar resources/BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o "tmp_XML/${FN2%%.*}.xml" "$f"; done
Run the following command (change paths to match your system): perl perlforce_titles.pl tmp_XML
Run the following command (change paths to match your system):
Windows: for %f in ("tmp_XML\*.xml") do java -jar resources\BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o SUP-1080p-forced\%~nf.sup tmp_XML\%~nf.xml
Other platforms: for f in tmp_XML/*.xml; do FN1=$f; FN2=${FN1##*/}; java -jar resources/BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o "SUP-1080p-forced/${FN2%%.*}.sup" "$f"; done
Remove the tmp_XML folder
* Marking specific subtitles as forced will auto-enable them and not allow the viewer to turn them off when they match the player's native language. This is typically done when the film is shown dubbed, to translate the parts of
the film that are not translated by the dub. Due to the ambiguity of how a player should react to multiple forced subtitles
using the same language code (e.g. multiple Spanish dialects), the possibility of unneccessarily forced subtitles for alternate dubbing options (e.g. Russian voiceovers don't need subtitles, but other Russian dubs do),
and the likelihood that the viewer will watch the films with English audio,
Project Threepio, by default, relies on the viewer or disc author to select the appropriate subtitle stream.
Project Threepio, by default, assumes that the video its subtitles accompany has burnt-in alien subtitles in English,
and excludes those lines from its English subtitles, and shifts its non-English subtitles for that alien dialogue and neighboring dialogue to the top of the frame to avoid overlap. If the video does not have burnt-in alien subtitles, then Project Threepio's
default subtitles for these scenes are completely inadequate in English and poorly-positioned in other languages. You can use the submerge.pl and unshift_subs.pl
scripts to fill in the missing English subtitles and return these subtitles to their normal positions at the bottom of the frame, respectively.
NOTE: This process merges "native" and "alien" subtitles into a single merged subtitle. The "alien" subtitles may need to be manually adjusted for specific preservations. If you want to use SRT files, the "nocrawl"
SRT file is appropriate for subtitle-free preservations.
NOTE: The submerge.pl script uses the Project Threepio file naming
conventions to determine file characteristics. Files not using these naming conventions may be handled incorrectly.
Create a folder named tmp_XML and then run the following command (change paths to match your system):
Windows: for %f in ("SUP-1080p\*-native.sup") do java -jar resources\BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o tmp_XML\%~nf.xml SUP-1080p\%~nf.sup
Other platforms: for f in SUP-1080p/*-native.sup; do FN1=$f; FN2=${FN1##*/}; java -jar resources/BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o "tmp_XML/${FN2%%.*}.xml" "$f"; done
Run the following command (change paths to match your system):
Windows: for %f in ("SUP-1080p\*-alien-*.sup") do java -jar resources\BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o tmp_XML\%~nf.xml SUP-1080p\%~nf.sup
Other platforms: for f in SUP-1080p/*-alien-*.sup; do FN1=$f; FN2=${FN1##*/}; java -jar resources/BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o "tmp_XML/${FN2%%.*}.xml" "$f"; done
Run the following command (change paths to match your system): perl perlsubmerge.pl tmp_XML
Run the following command (change paths to match your system):
Windows: for %f in ("tmp_XML\*.xml") do java -jar resources\BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o SUP-1080p\%~nf.sup tmp_XML\%~nf.xml
Other platforms: for f in tmp_XML/*.xml; do FN1=$f; FN2=${FN1##*/}; java -jar resources/BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o "SUP-1080p/${FN2%%.*}.sup" "$f"; done
NOTE: The unshift_subs.pl script works best when "titles" subtitles are processed in the same batch as their
corresponding "full" subtitles. This is because the script uses normally-positioned subtitles from the "full" subtitles to improve its calculations for the new positions for the shifted subtitles. The unshift_subs.pl script uses the Project Threepio file naming conventions to determine file characteristics. Files not using these naming conventions may be handled incorrectly.
Create two folders, named tmp_XML and SUP-1080p-unshift
Run the following command (change paths to match your system):
Windows: for %f in ("SUP-1080p\*-full.sup") do java -jar resources\BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o tmp_XML\%~nf.xml SUP-1080p\%~nf.sup
Other platforms: for f in SUP-1080p/*-full.sup; do FN1=$f; FN2=${FN1##*/}; java -jar resources/BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o "tmp_XML/${FN2%%.*}.xml" "$f"; done
Run the following command (change paths to match your system):
Windows: for %f in ("SUP-1080p\*-titles.sup") do java -jar resources\BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o tmp_XML\%~nf.xml SUP-1080p\%~nf.sup
Other platforms: for f in SUP-1080p/*-titles.sup; do FN1=$f; FN2=${FN1##*/}; java -jar resources/BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o "tmp_XML/${FN2%%.*}.xml" "$f"; done
Run the following command (change paths to match your system): perl perlunshift_subs.pl tmp_XML
Run the following command (change paths to match your system):
Windows: for %f in ("tmp_XML\*.xml") do java -jar resources\BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o SUP-1080p-unshift\%~nf.sup tmp_XML\%~nf.xml
Other platforms: for f in tmp_XML/*.xml; do FN1=$f; FN2=${FN1##*/}; java -jar resources/BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o "SUP-1080p-unshift/${FN2%%.*}.sup" "$f"; done
Project Threepio, by default, assumes that the video its subtitles accompany uses video frames matching the NTSC 2006 Bonus Disc (GOUT) release of the trilogy.
Some preservations use other frame references, some of which are pre-defined in the resync_subs.pl script. You can also add new frame references by editing the script.
The pre-defined frame references are:
PALGOUT: The PAL 2006 Bonus Disc (GOUT) trilogy [not different enough from NTSC GOUT frames to require a resync; for illustration purposes only]
PUGGO: The 16mm trilogy preservation from Puggo (Star Wars and Empire only, for now) [assumes all reels merged into a single stream, only NTSC DVD subtitles are timed for 29.97 fps]
NEG1: The 35mm trilogy preservation from Team Negative1 (Star Wars Silver Screen Edition v1 and Empire Renegade Grindhouse v1, for now)
There is also one special frame reference defined for the Star Wars mono mix:
STEREO2MONO: Changes the timing of subtitles designed for the stereo mix to better match the timing of the mono mix. Content changes are not included,
so dedicated mono subtitles, if available, are still preferable to converted stereo subtitles. Run this conversion first before syncing to another frame reference, such as Puggo (Star Wars only)
In the commands below, replace the text FRAME_REF with the frame reference you want to use.
NOTE: If you are making multiple scripted alterations to the subtitles (shifting positions, marking as forced, etc), synchronization must be performed last.
The resync_subs.pl script uses the Project Threepio file naming conventions to determine file characteristics.
Files not using these naming conventions may be handled incorrectly.
Create two folders, named tmp_XML and SUP-1080p-resync-FRAME_REF
Run the following command (change paths to match your system):
Windows: for %f in ("SUP-1080p\*.sup") do java -jar resources\BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o tmp_XML\%~nf.xml SUP-1080p\%~nf.sup
Other platforms: for f in SUP-1080p/*-full.sup; do FN1=$f; FN2=${FN1##*/}; java -jar resources/BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o "tmp_XML/${FN2%%.*}.xml" "$f"; done
Run the following command (change paths to match your system): perl perlresync_subs.pl FRAME_REF tmp_XML
Run the following command (change paths to match your system):
Windows: for %f in ("tmp_XML-resync-FRAME_REF\*.xml") do java -jar resources\BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o SUP-1080p-resync-FRAME_REF\%~nf.sup tmp_XML-resync-FRAME_REF\%~nf.xml
Other platforms: for f in tmp_XML-resync-FRAME_REF/*.xml; do FN1=$f; FN2=${FN1##*/}; java -jar resources/BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o "SUP-1080p-resync-FRAME_REF/${FN2%%.*}.sup" "$f"; done
Remove the tmp_XML and tmp_XML-resync-FRAME_REF folders
Project Threepio, by default, assumes that the video frame is a rectangle with an aspect ratio of approximately 2.37:1.
Graphical subtitles may not be optimally positioned for preservations using a different video frame. You can use the reframe_subs.pl script
to shift subtitles in (toward the center of the screen) a specified percentage of the total image height (including black bars).
Known reframing percentages are:
Puggo's trilogy preservation: 4.5%
In the commands below, replace the text PERCENTAGE with the percentage you want to use.
Create two folders, named tmp_XML and SUP-1080p-reframe
Run the following command (change paths to match your system):
Windows: for %f in ("SUP-1080p\*.sup") do java -jar resources\BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o tmp_XML\%~nf.xml SUP-1080p\%~nf.sup
Other platforms: for f in SUP-1080p/*-full.sup; do FN1=$f; FN2=${FN1##*/}; java -jar resources/BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o "tmp_XML/${FN2%%.*}.xml" "$f"; done
Run the following command (change paths to match your system): perl perlreframe_subs.pl PERCENTAGE tmp_XML
Run the following command (change paths to match your system):
Windows: for %f in ("tmp_XML\*.xml") do java -jar resources\BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o SUP-1080p-reframe\%~nf.sup tmp_XML\%~nf.xml
Other platforms: for f in tmp_XML/*.xml; do FN1=$f; FN2=${FN1##*/}; java -jar resources/BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o "SUP-1080p-reframe/${FN2%%.*}.sup" "$f"; done
NOTE: The xmlprep_subs.pl script uses the Project Threepio file naming conventions to determine file characteristics. Files not using these naming conventions may be handled incorrectly.
Create a folder named BDN+XML-1080p
Run the following command (change paths to match your system):
Windows: for %f in ("SUP-1080p\*.sup") do java -jar resources\BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o BDN+XML-1080p\%~nf.xml SUP-1080p\%~nf.sup
Other platforms: for f in SUP-1080p/*.sup; do FN1=$f; FN2=${FN1##*/}; java -jar resources/BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o "BDN+XML-1080p/${FN2%%.*}.xml" "$f"; done
Run the following command (change paths to match your system): perl perlxmlprep_subs.pl BDN+XML-1080p
Run the following command (change paths to match your system):
Windows: for %f in ("SUP-1080p\*.sup") do java -jar resources\BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o tmp_XML\%~nf.xml SUP-1080p\%~nf.sup
Other platforms: for f in SUP-1080p/*.sup; do FN1=$f; FN2=${FN1##*/}; java -jar resources/BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o "tmp_XML/${FN2%%.*}.xml" "$f"; done
Run the following command (change paths to match your system): perl perlconvert_res.pl 720p tmp_XML
Run the following command (change paths to match your system):
Windows: for %f in ("tmp_XML\*.xml") do java -jar resources\BDSup2Sub512.jar -x 0 -r 720 -T 24p -o SUP-720p\%~nf.sup tmp_XML\%~nf.xml
Other platforms: for f in tmp_XML/*.xml; do FN1=$f; FN2=${FN1##*/}; java -jar resources/BDSup2Sub512.jar -x 0 -r 720 -T 24p -o SUP-720p/${FN2%%.*}.sup "$f"; done
NOTE: The xmlprep_subs.pl script uses the Project Threepio file naming conventions to determine file characteristics. Files not using these naming conventions may be handled incorrectly.
Create a folder named BDN+XML-720p
Run the following command (change paths to match your system):
Windows: for %f in ("SUP-1080p\*.sup") do java -jar resources\BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o BDN+XML-720p\%~nf.xml SUP-1080p\%~nf.sup
Other platforms: for f in SUP-1080p/*.sup; do FN1=$f; FN2=${FN1##*/}; java -jar resources/BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o "BDN+XML-720p/${FN2%%.*}.xml" "$f"; done
Run the following command (change paths to match your system): perl perlconvert_res.pl 720p BDN+XML-720p
Run the following command (change paths to match your system): perl perlxmlprep_subs.pl BDN+XML-720p
NOTE: The dvdprep_subs.pl script uses the Project Threepio file naming conventions to determine file characteristics. Files not using these naming conventions may be handled incorrectly.
Create two folders, named tmp_XML and SUP-NTSC DVD
Run the following command (change paths to match your system):
Windows: for %f in ("SUP-1080p\*.sup") do java -jar resources\BDSup2Sub512.jar -x 0 -r 480 -T 30p -o tmp_XML\%~nf.xml SUP-1080p\%~nf.sup
Other platforms: for f in SUP-1080p/*.sup; do FN1=$f; FN2=${FN1##*/}; java -jar resources/BDSup2Sub512.jar -x 0 -r 480 -T 30p -o "tmp_XML/${FN2%%.*}.xml" "$f"; done
Run the following command (change paths to match your system): perl perldvdprep_subs.pl tmp_XML
Remove the tmp_XML folder
Run the following command (change paths to match your system):
Windows: for %f in ("tmp_XML_dvdprep\*.xml") do java -jar resources\BDSup2Sub512.jar -x 0 -a 0 -r 480 -T 30p -o "SUP-NTSC DVD\%~nf.ifo" tmp_XML_dvdprep\%~nf.xml
Other platforms: for f in tmp_XML_dvdprep/*.xml; do FN1=$f; FN2=${FN1##*/}; java -jar resources/BDSup2Sub512.jar -x 0 -a 0 -r 480 -T 30p -o "SUP-NTSC DVD/${FN2%%.*}.ifo" "$f"; done
NOTE: The dvdprep_subs.pl script uses the Project Threepio file naming conventions to determine file characteristics. Files not using these naming conventions may be handled incorrectly.
Create two folders, named tmp_XML and SUB-NTSC DVD
Run the following command (change paths to match your system):
Windows: for %f in ("SUP-1080p\*.sup") do java -jar resources\BDSup2Sub512.jar -x 0 -r 480 -T 30p -o tmp_XML\%~nf.xml SUP-1080p\%~nf.sup
Other platforms: for f in SUP-1080p/*.sup; do FN1=$f; FN2=${FN1##*/}; java -jar resources/BDSup2Sub512.jar -x 0 -r 480 -T 30p -o "tmp_XML/${FN2%%.*}.xml" "$f"; done
Run the following command (change paths to match your system): perl perldvdprep_subs.pl tmp_XML
Remove the tmp_XML folder
Run the following command (change paths to match your system):
Windows: for %f in ("tmp_XML_dvdprep\*.xml") do java -jar resources\BDSup2Sub512.jar -x 0 -a 0 -r 480 -T 30p -o "SUB-NTSC DVD\%~nf.idx" tmp_XML_dvdprep\%~nf.xml
Other platforms: for f in tmp_XML_dvdprep/*.xml; do FN1=$f; FN2=${FN1##*/}; java -jar resources/BDSup2Sub512.jar -x 0 -a 0 -r 480 -T 30p -o "SUB-NTSC DVD/${FN2%%.*}.idx" "$f"; done
NOTE: The dvdprep_subs.pl script uses the Project Threepio file naming conventions to determine file characteristics. Files not using these naming conventions may be handled incorrectly.
Create two folders, named tmp_XML and SUP-PAL DVD
Run the following command (change paths to match your system):
Windows: for %f in ("SUP-1080p\*.sup") do java -jar resources\BDSup2Sub512.jar -x 0 -r 576 -T 25p -o tmp_XML\%~nf.xml SUP-1080p\%~nf.sup
Other platforms: for f in SUP-1080p/*.sup; do FN1=$f; FN2=${FN1##*/}; java -jar resources/BDSup2Sub512.jar -x 0 -r 576 -T 25p -o "tmp_XML/${FN2%%.*}.xml" "$f"; done
Run the following command (change paths to match your system): perl perldvdprep_subs.pl tmp_XML
Remove the tmp_XML folder
Run the following command (change paths to match your system):
Windows: for %f in ("tmp_XML_dvdprep\*.xml") do java -jar resources\BDSup2Sub512.jar -x 0 -a 0 -r 576 -T 25p -o "SUP-PAL DVD\%~nf.ifo" tmp_XML_dvdprep\%~nf.xml
Other platforms: for f in tmp_XML_dvdprep/*.xml; do FN1=$f; FN2=${FN1##*/}; java -jar resources/BDSup2Sub512.jar -x 0 -a 0 -r 576 -T 25p -o "SUP-PAL DVD/${FN2%%.*}.ifo" "$f"; done
NOTE: The dvdprep_subs.pl script uses the Project Threepio file naming conventions to determine file characteristics. Files not using these naming conventions may be handled incorrectly.
Create two folders, named tmp_XML and SUB-PAL DVD
Run the following command (change paths to match your system):
Windows: for %f in ("SUP-1080p\*.sup") do java -jar resources\BDSup2Sub512.jar -x 0 -r 576 -T 25p -o tmp_XML\%~nf.xml SUP-1080p\%~nf.sup
Other platforms: for f in SUP-1080p/*.sup; do FN1=$f; FN2=${FN1##*/}; java -jar resources/BDSup2Sub512.jar -x 0 -r 576 -T 25p -o "tmp_XML/${FN2%%.*}.xml" "$f"; done
Run the following command (change paths to match your system): perl perldvdprep_subs.pl tmp_XML
Remove the tmp_XML folder
Run the following command (change paths to match your system):
Windows: for %f in ("tmp_XML_dvdprep\*.xml") do java -jar resources\BDSup2Sub512.jar -x 0 -a 0 -r 576 -T 25p -o "SUB-PAL DVD\%~nf.idx" tmp_XML_dvdprep\%~nf.xml
Other platforms: for f in tmp_XML_dvdprep/*.xml; do FN1=$f; FN2=${FN1##*/}; java -jar resources/BDSup2Sub512.jar -x 0 -a 0 -r 576 -T 25p -o "SUB-PAL DVD/${FN2%%.*}.idx" "$f"; done
Recommended software: Gaupol, but any text or subtitle editor should work (with modified instructions)
If creating a new file, make sure it is using the UTF-8 encoding with a byte order mark (Gaupol calls this UTF-8-SIG)
Open the English subtitle template file (named "*-eng-template.srt"), and then open the file to be edited as a translation (this allows side-by-side view)
For RTL scripts, if opening an existing "rtl" file displays punctuation on the wrong side of the text, use a different editor that fully conforms to the Unicode Bidirectional Algorithm
No subtitle should ever occupy more than two lines
Try not to allow lines to exceed 32 in length, 34 in extreme cases (as measured by Gaupol)
If a line needs to be shortened, try summarization, deleting unnecessary phrases, and combining with text from an adjacent line (but avoid abbreviation)
Try to follow Project Threepio style conventions as closely as appropriate for your language:
Use an en-dash to signify double-dialogue: – (IMPORTANT: this character triggers the double-dialogue alignment code in Project Threepio's Perl scripts)
Use typographical apostrophes and quotes: ’ “ ”
Use trailing and leading ellipses to signify continuing text: ...
Do not include subtitle credits or any other non-subtitling text in the files. Any non-subtitling text will be removed. If you want credit
for subtitles you have worked on, I will give credit in the project discussion thread.
Many pieces of software (particularly media players) do not fully conform to the Unicode Bidirectional Algorithm, and require specially-formatted text to display the subtitles correctly.
The script below will use the "rtl" files for all RTL scripts to generate new "compat" SRT files, which work around most of the BiDi implementation quirks we've encountered.
NOTE: Under most circumstances, you will not need to do this! You should only do this if you want to alter or add RTL SRT files.
If you are not doing this, just use the included "compat" files.
Subtitle images in BD-SUP files are stored in a somewhat exotic variety of the PNG format (indexed color with 8-bit alpha).
To ensure the best software compatibility, they are converted to a more widely-supported variety of the PNG format after they are extracted.
Create a folder named tmp_XML and then run the following command (change paths to match your system):
Windows: for %f in ("SUP-1080p\*.sup") do java -jar resources\BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o tmp_XML\%~nf.xml SUP-1080p\%~nf.sup
Other platforms: for f in SUP-1080p/*.sup; do FN1=$f; FN2=${FN1##*/}; java -jar resources/BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o "tmp_XML/${FN2%%.*}.xml" "$f"; done
Run the following command (change paths to match your system):
Windows: for %f in ("tmp_XML\*.png") do convert tmp_XML\%~nf.png PNG32:tmp_XML\%~nf.png
Other platforms: for f in tmp_XML/*.png; do FN1=$f; FN2=${FN1##*/}; convert "tmp_XML/${FN2%%.*}.png" PNG32:"tmp_XML/${FN2%%.*}.png"; done