Some tips on using subtitles in Fraunhofer Easydcp


You can use Cinecanvas XML subtitles in a 24 fps Interop DCP in Fraunhofer Easydcp.
You can also use SMPTE 2010/2014 subtitles in SMPTE 25 FPS DCPs in Fraunhofer Easydcp.
I worked with the creator of Subtitle Edit to get it to support SMPTE 2010/2014 subtitles.
I have tested DCPs with SMPTE 2010 subtitles on the Doremi, and they worked.
They should work on updated cinema equipment.

Update: you can also burn in the subtitles from a Interop/SMPTE XML files in Easydcp Creator 2.2.

Interop XML
The old XML standard
You need a font that is not bigger than 640 kb according to the Texas Instruments Cinecanvas Specification posted here:

TI has made a utility that can compress fonts.
Place the font with the xml subtitle file.
Easydcp will place it in a special subtitle directory on the DCP.
You need your subtitles in the cinecanvas XML format with 24 fps timecode.

Example with English language.

<?xml version="1.0" encoding="UTF-8"?>
<DCSubtitle Version="1.0">
  <LoadFont URI="Arial.ttf" Id="Arial" /> <Font Id="Arial" Color="FFFFFFFF" Effect="border" EffectColor="FF000000" Italic="no" Underlined="no" Script="normal" Size="37">
    <Subtitle SpotNumber="1" FadeUpTime="0" FadeDownTime="0" TimeIn="00:00:27:093" TimeOut="00:00:32:249">
      <Text VPosition="13" VAlign="bottom" HAlign="center" Direction="horizontal">Something</Text>
      <Text VPosition="8" VAlign="bottom" HAlign="center" Direction="horizontal">Something</Text>
  </Font> </DCSubtitle>

SMPTE 2010 / SMPTE 2014 XML
SMPTE ST-428-7:2014 is compatible with
“” and””
They updated “” in 2014 to reflect changes in the standard. so it still safe to use it and it is the one used in the Easydcp Manual.
SMPTE 2010/2014 XML must be used when making 25, 30 FPS SMPTE DCPs.
You need to rename the font as a UUID number that is referenced in the XML, the font will then be packaged with the XML in a MXF file when generating the DCP. The font can be larger than 640 kb.
The MXF can be encrypted.

<?xml version="1.0" encoding="UTF-8"?>
	<dcst:SubtitleReel xmlns:dcst="" xmlns:xs="">
	  <dcst:AnnotationText>This is a subtitle file</dcst:AnnotationText>
	  <dcst:EditRate>25 1</dcst:EditRate>
	  <dcst:LoadFont ID="theFontId">urn:uuid:80574033-e74b-4d63-b0b6-d06ec9257b51</dcst:LoadFont>
		<dcst:Font ID="theFontId" Size="37" Weight="normal" Color="FFFFFFFF" Effect="border" EffectColor="FF000000">
		  <dcst:Subtitle SpotNumber="1" FadeUpTime="00:00:00:00" FadeDownTime="00:00:00:00" TimeIn="00:00:27:09" TimeOut="00:00:32:24">
			<dcst:Text Vposition="13" Valign="bottom" Halign="center" Direction="ltr">Something</dcst:Text>
			<dcst:Text Vposition="8" Valign="bottom" Halign="center" Direction="ltr">Something</dcst:Text>

Some tips:

Remember to save as UTF-8.

Use a text editor like notepad ++
Use a text editor like BBEdit

Normal height values of 8 and 14 (10 and 16 are also used), and a normal font size is 38-40.
These works with Flat and Scope movies.

With letterboxed full container movies that will be shown with a Scope preset on the projector you need to either convert to 2048×858 (Use Scope letterboxing in Easydcp). Or you can use higher height values like 22 and 28.

If there is only one line it is at 8.

You can generate a unique UUID for the subtitleID here:

You can now use an offset on the subtitle track in Easydcp Creator. It used to be that this was not supported on all players.

If you want to avoid using an offset and your sound and video has an offset you either have to sync the timecode to that offset or delete frames from the video and sound.
(or choose a later frame as the starting frame, see comments)

Some subtitles tools:
Subtitle Edit
Can change frame rate. Convert most subtitle formats to interop or SMPTE 2010.

Doing versioning.

Update: With Easydcp Creator 2.0 you can just use the MXF files from the first DCP to make another. You can also make supplemental packages that references the original DCP.

When working with subtitles you may need to make fixes or different languages.
To do this faster I extract the jpeg2000 image sequence from the video MXF from the first DCP with asdcp-test
asdcp-test -x picture xxx.j2c.mxf
You can also use Fraunhofer Easydcp Player to extract the image sequence.
In Franhofer Easydcp Creator choose this extracted j2c image sequence as your picture trackfile, right click it, and choose “Color processing” – “bypassed”. And untick Options – Image Processing – Use JPEG2000 Codestream (*.j2c) Reencoding.

13 Replies to “Some tips on using subtitles in Fraunhofer Easydcp”

  1. Hi,
    I’ve trying to make DCP with fraunhofer Creator+ with subtitle. However the subtitle won’t show up. I have check the file and everything looks in order and comply to cinecanvas standard. also has include the arial font use in the package, but still no result.
    The strange thing is, it took a long time to load the DCP file to the server, more than 1 minute before it finally play the film, without subtitle. Any idea what could be the problem.

  2. Check that the XML is correct.
    The example XML should work.
    Check that the timecode is correct.
    Try another font or smaller version of the font.
    Fraunhofer EasyDCP does some checks on the subtitle XML.
    But you could try opening the DCP in EasyDCP player and see
    if it finds any errors.

  3. The file plays fine in easydcp player, but won’t show the subtitle on gdc. all the subtitle file are exactly like the example, and the timecode is correct. I can check this with easydcpplayer.

  4. I have put the testxml.xml in a zip downloadable zip archive. Remember to save the XML as UTF-8.

  5. Hello,

    And what about Annotation Edit ? Will “DLP cinema XML export” work ?

    I don’t understand “You need a UUID for the subtitleID” what is it ?

    And I discovered that in easyDCP creator +, when you import an image track, if you click on the first image, everything will be imported and you have to change the offset. BUT if you click on an other image (for example the first image of the reel is number 240), it will import from this image until the end AND without offset.



  6. You can use the filename as annotation text.
    The XML has an unique identifier
    The identifier is a UUID that be generated by a UUID generator.
    You need to make a new one for each reel in each DCP.

  7. For multiple reels – should the subtitle TC reference the reel or the running time of the composition in easyDCP?

  8. On Subtitles: first of all, thx Knutfor this great blog. And also to mention Michael Cinquin, for the tools he provides for free. I´m having great trouble with some Dolby DSS D-cinema servers that won’t show subtitles (created on EasyDCP, according to all instructions, and testing on the easyDCP Palyer, subtitles are fine. It’s an interop package). I heard these servers won’t render the subtitles, this is the projector’s job. Anyone can shed a light on this? Also I’m aware that some companies provide these cinemas (this one in particular) with an ” apart” file containg only the subtitles. The projectionist wasn’t able to tell me wich kind of file it was, but he said it was the only way to work. When the receive a DCP, they also receive another file with the subtitles… How can this be done? Another xml with the same length and subtile placement as the DCP? Do I have to create another CPL for this and how? Thanks if anyone can shed a lIght on this.

  9. The subtitles made from the Michael Cinquin tool and the example XML file will play on a Dolby DSS D-cinema server. But the XML must be well formed, if you open it in firefox you will see if all the tags are well formed. You can make a supplemental packages in Easydcp Creator 2.0. Supplemental packages are used to make different versions of a DCP. The supplemental package could include new sound or subtitles. When ingested on a server the Supplemental package uses the picture part from the original DCP that is on the server and add subtitles to make a new DCP that shows up alongside the original DCP, but with a new name that now says it has subtitles like EN-NO.

  10. On knuterik note: thnak you for your help. My XML was well formed, according to all instrucitons, and we are suspicious of this “apart” file the movie theater is receiving. I understand the suplemntal DCP, and I don’t think is the issue here. I think they ‘re delivering another DCP with the subtitles burnt in the image, to circunvent some Cinecanvas restricions the cinema might have or worng installation, or a Dss200 server that is not up to date on it`s software, because I’ve tested (at the same multiplex) the DCP on a DSS100 server, and the subtitles displayed fine. Does anyone have a particular font that is safe to use with DCPs, regarding incompatibilities with server? I use the Tiresias font, but I heard some Dolby servers can be picky about fonts. Wich fonts, smaller than 640k, you might sugest?

  11. Hi everybody,

    Do you know that EasyDCP Creator software is now interoperable with the JPEG2000 acceleration card from intoPIX , called the PRISTINE. It said that it can encode 4K real-time and 2K at about 50/60fps.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.