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 24/25 FPS DCPs in Fraunhofer Easydcp.

Subtitle Edit has support for SMPTE 2010/2014 subtitles. I wrote more about it in this post

You can also burn in the subtitles from Interop/SMPTE XML files in Easydcp Creator

Interop XML


The old XML standard
You need a font that is not bigger than 640 kb

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.

Interop Example

<?xml version="1.0" encoding="UTF-8"?>
<DCSubtitle Version="1.0">
  <SubtitleID>5de1b77b-222e-46bb-901f-6905b0ec5b2e</SubtitleID>
  <MovieTitle>test</MovieTitle>
  <ReelNumber>1</ReelNumber>
  <Language>en</Language>
  <LoadFont URI="Arial.ttf" Id="Arial" /> <Font Id="Arial" Color="FFFFFFFF" Effect="border" EffectColor="FF000000" Italic="no" Underlined="no" Script="normal" Size="42">
    <Subtitle SpotNumber="1" FadeUpTime="0" FadeDownTime="0" TimeIn="00:00:01:000" TimeOut="00:00:03:000">
      <Text VPosition="14" VAlign="bottom" HAlign="center" Direction="horizontal">test </Text>
      <Text VPosition="8" VAlign="bottom" HAlign="center" Direction="horizontal">test</Text>
    </Subtitle>
  </Font> </DCSubtitle>

SMPTE 2010 / SMPTE 2014 XML


SMPTE ST-428-7:2014 is compatible with both SMPTE 2010 / SMPTE 2014.

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 an MXF file when generating the DCP. The font can be larger than 640 kb.
The MXF can be encrypted.

SMPTE 2014 Example

<?xml version="1.0" encoding="UTF-8"?>
<SubtitleReel xmlns="http://www.smpte-ra.org/schemas/428-7/2014/DCST">
  <Id>urn:uuid:9d19361f-72d5-4829-93b8-4a6b57e2f34c</Id>
  <ContentTitleText>test</ContentTitleText>
  <AnnotationText>This is a subtitle file</AnnotationText>
  <IssueDate>2021-10-17T09:25:42</IssueDate>
  <ReelNumber>1</ReelNumber>
  <Language>en</Language>
  <EditRate>25 1</EditRate>
  <TimeCodeRate>25</TimeCodeRate>
  <StartTime>00:00:00:00</StartTime>
  <LoadFont ID="Arial">urn:uuid:3dec6dc0-39d0-498d-97d0-928d2eb78391</LoadFont>
  <SubtitleList>
    <Font ID="Arial" Size="42" Weight="normal" Color="FFFFFFFF" Effect="shadow" EffectColor="FF000000">
      <Subtitle SpotNumber="1" FadeUpTime="00:00:00:00" FadeDownTime="00:00:00:00" TimeIn="00:00:01:00" TimeOut="00:00:03:00">
        <Text Vposition="14" Valign="bottom" Halign="center" Direction="ltr">test</Text>
        <Text Vposition="8" Valign="bottom" Halign="center" Direction="ltr">test</Text>
      </Subtitle>
    </Font>
  </SubtitleList>
</SubtitleReel>

Some tips:

Remember to save as UTF-8.

Windows:
Use a text editor like notepad ++ http://notepad-plus-plus.org/

Mac:
Use a text editor like BBEdit

The normal font size is 38-42.


The fonts used are usually Arial and Microsoft sans serif. Some use Helvetica neue.
Color is usually white FFFFFFFF. Some use a warmer white to match the white point used in the movie.
The position from the bottom (Vposition) is usually 7 or 8. If it is too low it can be cropped.

13 thoughts on “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.

    Best

    Robin

  6. You can use the filename as annotation text.
    The XML has an unique identifier
    c85df020-6ad6-11e0-ae3e-0800200c9a66
    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 Comment

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.