Caption conversion

Convert SRT to EBU-STL

SubRip Subtitle (SRT) to EBU-STL (EBU Subtitling Data Exchange Format). Convert in the web app, automate with the REST API, or run it offline with the CLI.

Converting SRT to EBU-STL prepares subtitles for European broadcast playout and for subtitling systems that exchange files in the EBU Tech 3264 format. Beyond the subtitles themselves, an STL file needs a correctly filled GSI header. Broadcasters check its frame rate, language, country of origin and maximum row length on ingest.

What carries over

  • Subtitle text and line breaks
  • Italics, for open-subtitle display standards
  • Timing, converted from milliseconds to 25 fps (or 30 fps) timecode

What changes

  • You must choose a frame rate, STL25.01 or STL30.01, because SRT has none
  • Characters must fit the chosen STL character code table (Latin by default)
  • Row length must respect the Maximum Number of Displayable Characters, often 40 for teletext
  • GSI metadata, such as language, country and programme title, must be supplied in the encoding options
  • SRT has no position data, so subtitles default to the bottom rows

How to convert SRT to EBU-STL

The same conversion engine powers all three, so a job you set up in the web app produces identical output from the API or CLI.

In the web app

  1. Sign in to the web app, or start a free trial.
  2. Upload your .srt file and select SubRip Video Subtitle Script as the source profile.
  3. Select EBU STL as the target profile.
  4. Review the recommended settings for this conversion.
  5. Run the conversion and download your .stl file.

With the API

POST /jobs
curl -X POST https://api.closedcaptionconverter.com/jobs \
  -H "x-api-key: YOUR_API_KEY" \
  -F "source=@input.srt" \
  -F 'config={
    "job_type": "convert",
    "source_profile": "SubRip Video Subtitle Script",
    "target_profile": "EBU STL",
    "default_frameRate": 25,
    "encoding_options": [
      {
        "name": "Language Code",
        "selected": "English"
      },
      {
        "name": "Country of Origin",
        "selected": "United Kingdom"
      }
    ]
  }'

See API Getting Started for authentication and response handling.

With the CLI

Command line
ccconverter \
  --source input.srt \
  --target output.stl \
  --source_profile "SubRip Video Subtitle Script" \
  --target_profile "EBU STL" \
  --target_frameRate 25

The CLI runs fully offline on macOS, Windows and Linux. See the CLI docs for every flag.

Recommended settings

Frame rate25 fps for PAL/European broadcast.
Language Code & Country of OriginSet them in the EBU-STL encoding options. The defaults may not match your delivery.
Auto FormatRe-wrap to the row length your broadcaster specifies.

Format-specific options are covered in Encoding & Decoding Options and Profiles & Formats.

SRT to EBU-STL questions

Usually because of the GSI header: wrong frame rate, language code, country of origin or display standard. Set these in the EBU-STL encoding options to match your broadcaster’s spec.

Partly. STL supports Latin, Latin/Cyrillic, Latin/Arabic, Latin/Greek and Latin/Hebrew character tables. Scripts outside these tables, such as Chinese, Japanese or Thai, cannot be stored in STL. Use EBU-TT or TTML instead.

Use the frame rate of the programme. European broadcast is 25 fps (STL25.01). STL30.01 is for 29.97/30 fps material.

Free trial

Convert SRT to EBU-STL now

Upload your .srt file and download EBU-STL in seconds, or automate it with the API and CLI.