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:
Video 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
-
es-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 two-letter ISO 639-1 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 where the text font, size, and position is designed to closely match the burnt-in subtitles in the specified preservation
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)
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 (720p and 1080p 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!)
Run the modified MuxMan executable found in the resources directory (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. Many systems already have Franklin Gothic Medium (not condensed) installed, and easySUP doesn't
show the full font names. To choose the correct Franklin Gothic font, Franklin Gothic Medium Cond is
listed second, and is the narrower of the two fonts. If your system shows multiple Microsoft JhengHei fonts, 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):
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 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):
Format
Resolution
Mode
Frame Rate
Font/Size/Style
Font Color
Outline
Outline Color
Background
Safe Zone
Margin
Shadow
Alignment
Opacity
Latin, Cyrillic, Greek, Hebrew Scripts
BD SUP
720
Full frame
23.976
Arial, 43, Normal
White
2
Black
None
0%
120
2
Center
100%
Mandarin/Simplified
BD SUP
720
Full frame
23.976
Adobe Heiti Std Regular, 50, Normal
White
2
Black
None
0%
111
2
Center
100%
Mandarin/Traditional and Cantonese
BD SUP
720
Full frame
23.976
Microsoft JhengHei, 56, Bold
White
2
Black
None
0%
111
2
Center
100%
Arabic Script
BD SUP
720
Full frame
23.976
Arial, 60, Normal
White
2
Black
None
0%
117
2
Center
100%
Japanese
BD SUP
720
Full frame
23.976
Kozuka Gothic Pr6N Medium, 65, Normal
White
2
Black
None
0%
109
2
Center
100%
Korean
BD SUP
720
Full frame
23.976
Dotum, 43, Bold
White
2
Black
None
0%
120
2
Center
100%
Thai
BD SUP
720
Full frame
23.976
Tahoma, 60, Normal
White
2
Black
None
0%
118
2
Center
100%
Other Unspecified Scripts
BD SUP
720
Full frame
23.976
Droid Sans Fallback, 50, Normal
White
2
Black
None
0%
117
2
Center
100%
SDH
--
--
--
--
--
--
--
--
Opaque
--
--
0
--
--
English Matching
BD SUP
720
Full frame
23.976
Franklin Gothic Medium Cond, see Matching Chart for size and style
Click Start to generate a BD-SUP file, and save it to the SUP-720p folder
Create a folder named tmp_XML and then run the following command (change paths to match your system):
Windows: for %f in ("SUP-720p\*.sup") do java -jar resources\BDSup2Sub512.jar -x 0 -r 720p -T 24p -o tmp_XML\%~nf.xml SUP-720p\%~nf.sup
Other platforms: for f in SUP-720p/*.sup; do FN1=$f; FN2=${FN1##*/}; java -jar resources/BDSup2Sub512.jar -x 0 -r 720p -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 720p BD-SUP files from the SUP-720p 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 720p -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 720p -T 24p -o "SUP-720p/${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 720p 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 720p 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 a folder named tmp_XML and then run the following command (change paths to match your system):
Windows: for %f in ("SUP-720p\*-full.sup") do java -jar resources\BDSup2Sub512.jar -x 0 -r 720p -T 24p -o tmp_XML\%~nf.xml SUP-720p\%~nf.sup
Other platforms: for f in SUP-720p/*-full.sup; do FN1=$f; FN2=${FN1##*/}; java -jar resources/BDSup2Sub512.jar -x 0 -r 720p -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 720p -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 720p -T 24p -o "SUP-720p/${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 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 at the top of the frame can be unnecessarily
distracting. You can use the unshift_subs.pl script to return these subtitles to their normal positions at the bottom of the frame.
Other shifted subtitles, such as those translating the crawl text, will remain at the top of the frame.
The instructions below are for non-English subtitles only.
To create English subtitles to accompany a subtitle-free preservation, you will need to render new English subtitles using the "nocrawl" SRT file.
NOTE: The unshift_subs.pl script cannot shift "titles" subtitles unless they are processed in the same batch as their
corresponding "full" subtitles. This is because the script uses normally-positioned
subtitles to calculate new positions for the shifted subtitles, and "titles" subtitles do not contain enough
normally-positioned subtitles to do this with any accuracy. 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 a folder named tmp_XML and then run the following command (change paths to match your system):
Windows: for %f in ("SUP-720p\*.sup") do java -jar resources\BDSup2Sub512.jar -x 0 -r 720p -T 24p -o tmp_XML\%~nf.xml SUP-720p\%~nf.sup
Other platforms: for f in SUP-720p/*-full.sup; do FN1=$f; FN2=${FN1##*/}; java -jar resources/BDSup2Sub512.jar -x 0 -r 720p -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 720p -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 720p -T 24p -o "SUP-720p/${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 (Empire only, for now: Renegade Grindhouse v1)
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-720p-resync-FRAME_REF
Run the following command (change paths to match your system):
Windows: for %f in ("SUP-720p\*.sup") do java -jar resources\BDSup2Sub512.jar -x 0 -r 720p -T 24p -o tmp_XML\%~nf.xml SUP-720p\%~nf.sup
Other platforms: for f in SUP-720p/*-full.sup; do FN1=$f; FN2=${FN1##*/}; java -jar resources/BDSup2Sub512.jar -x 0 -r 720p -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 720p -T 24p -o SUP-720p-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 720p -T 24p -o "SUP-720p-resync-FRAME_REF/${FN2%%.*}.sup" "$f"; done
Remove the tmp_XML and tmp_XML-resync-FRAME_REF folders
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
Create two folders, named tmp_XML and SUP-NTSC DVD-resync-FRAME_REF
Run the following command (change paths to match your system):
Windows: for %f in ("SUP-NTSC DVD\*.ifo") do java -jar resources\BDSup2Sub512.jar -x 0 -a 0 -r 480 -T 30p -o tmp_XML\%~nf.xml "SUP-NTSC DVD\%~nf.ifo"
Other platforms: for f in "SUP-NTSC DVD/*-full.ifo"; do FN1=$f; FN2=${FN1##*/}; java -jar resources/BDSup2Sub512.jar -x 0 -a 0 -r 480 -T 30p -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 -a 0 -r 480 -T 30p -o "SUP-NTSC DVD-resync-FRAME_REF\%~nf.ifo" 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 -a 0 -r 480 -T 30p -o "SUP-NTSC DVD-resync-FRAME_REF/${FN2%%.*}.ifo" "$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-720p-reframe
Run the following command (change paths to match your system):
Windows: for %f in ("SUP-720p\*.sup") do java -jar resources\BDSup2Sub512.jar -x 0 -r 720p -T 24p -o tmp_XML\%~nf.xml SUP-720p\%~nf.sup
Other platforms: for f in SUP-720p/*-full.sup; do FN1=$f; FN2=${FN1##*/}; java -jar resources/BDSup2Sub512.jar -x 0 -r 720p -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 720p -T 24p -o SUP-720p-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 720p -T 24p -o "SUP-720p-reframe/${FN2%%.*}.sup" "$f"; done
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
Create two folders, named tmp_XML and SUP-NTSC DVD-reframe
Run the following command (change paths to match your system):
Windows: for %f in ("SUP-NTSC DVD\*.ifo") do java -jar resources\BDSup2Sub512.jar -x 0 -r 480 -T 30p -o tmp_XML\%~nf.xml "SUP-NTSC DVD\%~nf.ifo"
Other platforms: for f in "SUP-NTSC DVD/*-full.ifo"; 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 perlreframe_subs.pl PERCENTAGE tmp_XML
Run the following command (change paths to match your system): perl perldvduncrop_subs.pl tmp_XML
Run the following command (change paths to match your system):
Windows: for %f in ("tmp_XML_dvduncrop\*.xml") do java -jar resources\BDSup2Sub512.jar -x 0 -a 0 -r 480 -T 30p -o "SUP-NTSC DVD-reframe\%~nf.ifo" tmp_XML_dvduncrop\%~nf.xml
Other platforms: for f in tmp_XML_dvduncrop/*.xml; do FN1=$f; FN2=${FN1##*/}; java -jar resources/BDSup2Sub512.jar -x 0 -a 0 -r 480 -T 30p -o "SUP-NTSC DVD-reframe/${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 SUP-NTSC DVD
Run the following command (change paths to match your system):
Windows: for %f in ("SUP-720p\*.sup") do java -jar resources\BDSup2Sub512.jar -x 0 -r 480 -T 30p -o tmp_XML\%~nf.xml SUP-720p\%~nf.sup
Other platforms: for f in SUP-720p/*.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-720p\*.sup") do java -jar resources\BDSup2Sub512.jar -x 0 -r 480 -T 30p -o tmp_XML\%~nf.xml SUP-720p\%~nf.sup
Other platforms: for f in SUP-720p/*.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-720p\*.sup") do java -jar resources\BDSup2Sub512.jar -x 0 -r 576 -T 25p -o tmp_XML\%~nf.xml SUP-720p\%~nf.sup
Other platforms: for f in SUP-720p/*.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-720p\*.sup") do java -jar resources\BDSup2Sub512.jar -x 0 -r 576 -T 25p -o tmp_XML\%~nf.xml SUP-720p\%~nf.sup
Other platforms: for f in SUP-720p/*.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
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-720p\*.sup") do java -jar resources\BDSup2Sub512.jar -x 0 -r 720p -T 24p -o BDN+XML-720p\%~nf.xml SUP-720p\%~nf.sup
Other platforms: for f in SUP-720p/*.sup; do FN1=$f; FN2=${FN1##*/}; java -jar resources/BDSup2Sub512.jar -x 0 -r 720p -T 24p -o "BDN+XML-720p/${FN2%%.*}.xml" "$f"; done
Run the following command (change paths to match your system): perl perlxmlprep_subs.pl BDN+XML-720p
Run the following command (change paths to match your system):
Windows: for %f in ("SUP-720p\*.sup") do java -jar resources\BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o tmp_XML\%~nf.xml SUP-720p\%~nf.sup
Other platforms: for f in SUP-720p/*.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 perlsharpen.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 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.
If you already have 1080p BD-SUP files, you can skip ahead to step 6
Create two folders, named SUP-1080p and BDN+XML-1080p
Run the following command (change paths to match your system):
Windows: for %f in ("SUP-720p\*.sup") do java -jar resources\BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o BDN+XML-1080p\%~nf.xml SUP-720p\%~nf.sup
Other platforms: for f in SUP-720p/*.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 perlsharpen.pl BDN+XML-1080p
Run the following command (change paths to match your system):
Windows: for %f in ("BDN+XML-1080p\*.xml") do java -jar resources\BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o SUP-1080p\%~nf.sup BDN+XML-1080p\%~nf.xml
Other platforms: for f in BDN+XML-1080p/*.xml; do FN1=$f; FN2=${FN1##*/}; java -jar resources/BDSup2Sub512.jar -x 0 -r 1080p -T 24p -o "SUP-1080p/${FN2%%.*}.sup" "$f"; done
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
If you don't want 1080 BD-SUP files, you can remove the SUP-1080p folder
Run the following command (change paths to match your system): perl perlxmlprep_subs.pl BDN+XML-1080p
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 "*-en-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.