Encoding.com is the first and only encoding service to offer universal closed captioning support for delivery to all devices. Our powerful, reliable, scalable feature set for closed caption workflows enables digital video distributors to achieve critical business objectives such as:

  • Assure compliance with impending Video Accessibility Act deadlines
  • Expand the size and demographic of their audience
  • Reduce time-to-market
  • Deliver support for popular learning tools

Eliminate the hassle of implementing complex or limited closed captioning workflows. Encoding.com’s full-featured closed captioning solution makes it simple to:

  • Utilize all formats including cea-608/708DFXPSAMISCCSRTTTML and 3GPP Time Text
  • Seamlessly integrate with any existing digital video authoring and distribution workflow
  • Extract, inject, copy and mux closed captions tracks into sidecar (text) files or digital video
  • Extract standard closed caption tracks from source files and convert them into sidecar files
  • Copy closed caption or timed text tracks from source videos to output videos
  • Mux a sidecar file with a source video to encode closed caption tracks into output videos.

Flexible and Scalable Workflow

By offering a complete suite of closed captioning features, Encoding.com enables customers to ingest and output closed captions in useful ways. For example:

Input Formats Output Formats
MP4 with caption track in CEA-608 format MP4 with a SCC sidecar file
MP4 with caption track in CEA-708 format MP4 with a SRT sidecar file
MP4 with caption track in MPEG-4 Part 17 format MP4 with CEA-608 caption track
3GP with caption track in 3GPP Timed Text format MP4 with MPEG-4 TT subtitle track
MPEG-2 with caption track in CEA-608 format 3GP with 3GPP TT subtitle track
ASF with caption track in CEA-608 format HLS with CEA-608 caption track
MOV with a sidecar file in SCC format MPEG-2 with CEA-608 caption track
FLV with a caption track in SRT MP4 with a sidecar file in DFXP format MOV with a SCC sidecar file
MP4 with a sidecar file in DFXP format
MP4 with a sidecar file in SAMI format
MP4 with a sidecar file in SCC format


We want to integrate our captioning feature set with your existing workflow seamlessly. That is why our closed caption feature set is turned off by default. You can fully specify your closed caption workflow in the instructions you send to our system, so you have complete flexibility.. Other software packages and services make assumptions about closed caption workflows. The problem with this approach is you run the risk of making inaccurate assumptions. For example, one cloud-based service currently on the market will automatically copy analog captions (if present in the source video) into an MP4 output file. This output is useless in the real world for several reasons:

  • Most mobile devices (laptops, tablets and phones) don’t have the decoder all flat screens use to display closed caption tracks.
  • MPEG-4 standard specifies subtitles instead of closed captions. That’s why iOS devices expect the standard MPEG-4 Part 17 subtitles in an MP4 file.
  • Video players in Android devices require sidecars (SRT files, mostly).
  • Browser-based players generally require sidecar files to display closed captions for the same reason. It is possible to add analog closed captions to an MP4, but it is also pointless.

Automating such an irregular workflow wastes resources, confuses customers, slows things down and can upset project managers. That’s why we decided to enable customers to specify how to process their closed captions workflow with our API.

Processing Closed Captions with Encoding.com’s API

The Closed Caption feature set is available within our  API to rapidly upgrade our customers’ digital video authoring and distribution workflows. The new feature set permits customers to extract closed captions from source files stored somewhere on the Internet and convert them into sidecar files. Customers can also copy a closed caption or timed text track from a source video into an output video. And we allow customers to mux a sidecar file (in SRT or SCC format) with a source video to encode a valid closed caption track into their output videos. The idea is to use the cloud to empower customers to easily increase their addressable audience while saving money and obeying the law.

Here is a complete summary of the XML required to process closed captions in a valid HTTP POST with parameter (xml) submitted to the Encoding.com API:

  1. <?xml version="1.0"?>
  2. <query>
  3. <action>AddMedia</action>
  4. <userid>[UserID]</userid>
  5. <userkey>[UserKey]</userkey>
  6. <source>[SourceURL]</source>
  7.           <format>
  8.                     <output>[preset_profile_name]</output>
  9.                     <closed_captions>
  10.                                 <source>[closed_caption_source_file_url]</source>
  11.                                 <copy>[yes|no]</copy>
  12.                                 <extract>[srt|scc]</extract>
  13.                                 <mux_type>[cea-608|timed-text]</mux_type>
  14.                                 <language>[LanguageCode]</language>
  15.                     </closed_captions>
  16.                     <destination>[OutputURL]</destination>
  17.           <format>
  18. </query>

Let’s review the three new features in a little more detail: extract, mux and copy:

Extraction of a closed caption sidecar file is often necessary. Browser-based video players can’t read closed caption tracks in digital videos. Android video players mostly require sidecar files as well. Editing and authoring suites depend on sidecar files to make it easier for video editors to do their jobs.

Encoding.com is the only cloud transcoding provider to support extraction of closed caption “sidecar" files from the most common closed caption tracks in HD television (CEA-708) and SD television (CEA-608) programming. We also extract the closed captions from 3GPP TT or MPEG-4 Part 17 tracks in a video file. You can produce output video in any format while extracting a caption track as a SCC or SRT sidecar.

Muxing a sidecar with a video file is a common requirement. Editors often use SCC sidecars to exchange timed text information among authoring tools, files and/or colleagues. DVD publishers convert SCC files into analog closed captions to encode into their MPEG-2 creations. Digital captions have to become analog captions before they can be inserted into HTTP Live Streaming files for delivery to iOS apps. There are other common workflows. It makes sense to do this work using a SaaS like the Encoding.com platform

Do you have analog captions in a library of ASF, MOV, MXF, MPEG-2, or some other kind of files? Do you need HTTP Live Streaming output but don’t want to waste time extracting and muxing pesky sidecar files? Do you have 3GPP Timed Text captions in 3GP files and need them in MP4 files instead? Customers have both these problems. <copy> solves them. It rocks.

Create Closed Caption Output From Source File and Sidecar File

Example: NBC might need to mux subtitles into video files for a new iPhone app.

  1. <format>
  2.           <output>iPhone_stream</output>
  3.           <closed_captions>
  4.                      <source>ftp://files.nbc.com/Grimm/episode_1.srt</source>
  5.                      <mux_type>cea-608</mux_type>
  6.           </closed_captions>
  7. </format>

Extract Sidecar Files from Source Files for Browsers

Amazon Instant Video might need to extract sidecars for browser-based players.

  1. <format>
  2.          <output>mp4</output>
  3.          <closed_captions>
  4.                      <extract>srt</extract>
  5.          </closed_captions>
  6. </format>

Create Video for iOS with Closed Captions from the Edit Bay

Example: NBA might need SCC files muxed with ASF files to play in iOS apps.

  1. <format>
  2.           <output>iPad_stream</output>
  3.           <closed_captions>
  4.                      <source>ftp://files.nba.com/publish/game_upc.scc</source>
  5.                      <mux_type>cea-608</mux_type>
  6.           </closed_captions>
  7. </format>
  8. <format>
  9.           <output>mp4</output>
  10.           <closed_captions>
  11.                      <source>ftp://files.nba.com/publish/game_upc.scc</source>
  12.                      <mux_type>timed text</mux_type>
  13.           </closed_captions>
  14. </format>

Create iPhone and HTML5 closed captions from Legacy Video Library

Example: MTV might need to extract captions from MPEG-2s for iPad and a Flash player.

  1. <format>
  2.           <output>iPad_stream</output>
  3.           <closed_captions>
  4.                       <copy>yes</copy>
  5.           </closed_captions>
  6. </format>
  7. <format>
  8.           <output>mp4</output>
  9.           <closed_captions>
  10.                      <extract>scc</extract>
  11.           </closed_captions>
  12. </format>

Closed Captions Q&A

The Encoding.com API makes it really simple to extract, inject, mux or copy closed captions of any kind for distribution to most mobile digital video platforms.  As we work together, please feel free to reach out to us through our helpdesk or via live chat to get answers to questions.  You can also get direct access to these features for free on our introductory developer accounts.  Just sign up for a free 1GB account

API Documentation for Closed Captions


Allowed values: closed captions in [SCC|SRT|DFXP|SAMI] format —>   NOTE: For DFXP and SAMI, all stylization would be removed.


Allowed values: yes, no
Default value: no
Supported source tracks: [CEA-608|CEA-708|3GPP TT|MPEG-4 TT]
Supported output tracks: [CEA-608|3GPP TT|MPEG-4 TT]

NOTE:  If <mux_type></mux_type> is not referenced, <copy>yes</copy> will literally copy the source track in the source format to the output video file. It is important to determine whether closed captions in your source format can be read successfully in your output video format.


Allowed values: timed-text, cea-608
Default value: none
Required values: URL for subtitle file & URL for source video

Captions may be muxed into video files as either:

3GPP Timed Text track (MPEG-4 Part 17 track): <mux_type>timed-text</mux_type>

CEA-608 (A/53) track:  <mux_type>cea-608</mux_type>

NOTE: The CEA-608 mux type may only be used with output profiles that use the x264 video codec. This feature cannot support any other video codec in output with this caption track format selected.

Allowed values: srt, scc
Default value: none

Captions may be extracted from 3GPP TT or CEA-608/708 tracks into either:

Scenarist Closed Caption

Sidecar will be named source_file_name.scc
Sidecar will be delivered to the same destination location as output file.


Sidecar will be named source_file_name.srt
Sidecar will be delivered to the same destination location as output file.