ccEmbed - Embed Captions MXF/MOV

verifycc icon

ccEmbed is part of ccConvert and Net-X-Code Server software. It is designed to take MCC or SCC closed caption files and embed them into output MXF, MOV, etc.  It supports re-wrapping the source audio/video, as well as converting while embedding.  This article contains the Linux/macOS/Windows command line API for this tool.  A RESTful API is also available.

ccEmbed - Embed Closed Caption

ccEmbed takes standalone caption files like MCC, SCC, AAF, Grass Valley N0 and others, and embeds them into media files like MXF and MOV.  During this process it can simply re-wrap the original audio/video/metadata, or it can convert them to a new format as it embeds.  For closed caption extraction and conversion, please see ccExtract.

Wrap and Embed New Captions

ccEmbed -s <sourcefile.mxf> -t <targetfile.mxf> -cc <newcaptions>.mcc -p wrap

Create New Sony XDCam 50 with New Captions

ccEmbed -s <sourcefile.mxf> -t <targetfile.mxf> -cc <newcaptions>.mcc -p mxf-OP1a-MPEG


Command Line Parameters

ccEmbed -s <sourcefile> -t <targetfile> [-a <ackfile>] -p <profile> [-in <00:01:00:00> -out <00:02:00:00> -fg]

-s <sourcefile> - The source file name and path
-t <targetfile> - The target file name and path
-a <ackfile> - The ACK file name and path. This is the XML acknowledgement file made after a copy
-p metadata - Return XMP metadata for a media file
-p cardinfo - Return XML/JSON info on clips on a camera card
-p dir - Return XML/JSON directory listing
-p clipfiles - Return all the files associated with a media clip
-p md5 - Calculate or check the MD5 value source, send compare string as target
-p <profile> - Profile to use. Current profiles include:
 > copy - copy the whole file
 > wrap - re wrap file or part of a file
 > index - create an RTIndex for a file
 > getCopyInOut - get the extents required for a pfr, or use them with a temp file
 > mp3-128kbps - Audio MP3 file
 > wave - Audio wave file
 > caption-# - Extract captions from a file (see types below)
 > mov-YCbCr8Bit - QuickTime MOV 8 bit uncompressed YcbCr file
 > mov-dvcprohd - QuicktTime MOV DVCPro HD (1080/720)
 > mov-xdcam - Quicktime MOV MPEG-2 50 4:2:2
 > mp4-h264 - MPEG-4 h264 AAC Audio
 > mxf-xdcam-720p - True XDCam MXF 8 channel audio
 > mxf-dvcprohd-720p - MXF DVCPro HD 720p
 > mxf-xdcam-1080i - True XDCam MXF 1080i 8 channel audio
 > mxf-dvcprohd-1080i - MXF DVCPro HD 1080i 29/25 fps
 > mxf-OP1a-MPEG - OpenMXF XDCam MPEG-2 16 channel audio
 > mxf-OP1a-h264 - MXF h.264
 > mxf-OP1a-HDF - MXF MPEG-2 HDF Standard
 > mxf-as-11-sd-pal-dpp - MXF AS-11 SD PAL DPP
 > mxf-as-11-sd-ntsc-dpp - MXF AS-11 SD NTSC DPP
 > mxf-as-11-hd-dpp - MXF DPP AS-11 AVCi HD
 > mxf-OP1a-JPEG2K - Samma style JPEG2000 YCbCr
 > mxf-AS-02-h264-10 - 10 bit 50 Mbs h.264 in AS-02 MXF
 > OP1a_HBR_50 - OP1a MXF h264 4:2:2 10 bit
 > mov-proresproxy - QuickTime MOV ProRes Proxy
 > mov-proreshq - QuickTime MOV ProRes HQ
 > mov-proreslt - QuickTime MOV ProRes LT
 > mov-prores422 - QuickTime MOV ProRes 422
 > mov-prores444 - QuickTime MOV ProRes 444(4)
 > scaledown2000k - MP4 264 960x540, 2mbs, AAC
 > scaledown500k - MP4 264 480x272, 0.5mbs, AAC
 > hd1080-5000kbs - MP4 HD 1080 with a target bitrate of 5 mbs
 > hd720-2500kbs - MP4 HD 720p with a target bitrate of 2.5 mbs
 > hd360-1250kbs - MP4 HD 360p with a target bitrate of 1.25 mbs
 > h264-7500kbs - MP4 Any resolution with a target bitrate of 7.5 mbs
 > Proxy-h264-5000kbs - MP4 high quality proxy for web
 > LBR-h264-10000kbs - Low bit rate, high quality local MP4
 > HEVC-h265-10000kbs - Low bit rate, high quality HEVC MP4
 > DASH-MP4-Multibitrate - Multi bitrate MP4s with DASH files
 > HLS-TS-Multibitrate - Multi bitrate TS streams with M3U8 files
 > MP4-MultiOutput - Multi MP4 with optional burn in files
 > TS-TR-01-JPEG-2000 - TR-01 JPEG-2000 transport stream
 > TS-MPEG2 - MPEG-2 4:2:0/passthrough transport stream
 > TS-h264 - h.264 4:2:0/passthrough transport stream
 > mp4-XAVC-S_4_2_0 - MP4 Sony XAVC-S 4:2:0
 > mp4-XAVC-S_4_2_2 - MP4 Sony XAVC-S 4:2:2
 > aces - ACES image files
 > MXF-RDD-25 - MXF RDD-25 Proxy
 > dnxhd-mxf-720p - DNxHD 720p 50, 59, 60
 > dnxhd-mxf-1080p - DNxHD 1080p 25, 29
 > dnxhd-mxf-1080i - DNxHD 1080i 25, 29
 > dnxhr-mxf-10-hq - DNxHR High Quality 10 bit
 > dnxhr-mxf-hq - DNxHR High Quality 8 bit
 > dnxhr-mxf-sq - DNxHR Standard Quality
 > dnxhr-mxf-lq - DNxHR Low Quality
 > amt3-HQX_10 - AMT 3 DNx HQX 10 Bit
 > amt3-HiQuality - AMT 3 DNx High Quality
 > amt3-StandardQuality - AMT 3 DNx Standard Quality
 > amt3-LowQuality - AMT 3 DNx Low Quality
 > amt3-DNxHD36 - AMT 3 1080 DNxHD 36
 > amt3-XDCam - AMT 3 1080 XDCam
 > amt3-Uncompressed - AMT 3 Uncompressed YCbCr
 > mkv-ffv1 - Matroska with FFV1 lossless
-type mxf-op1a -- the exact file type to write, otherwise auto
 > mxf-op1a - standard OP1a
 > mxf-sonyhd - Sony XDCam compatible
 > mxf-as02 - AS - 02 spec MXF
 > mxf-avid - Avid OP-Atom (Drastic->bin)
 > mxf-amt = Avid OP-Atom (Avid->aaf)
 > mp4-fmp4 - Fragmented MP4(normal MP4 if not set)
 > mp4 - MPEG-4
 > mov - QuickTime MOV
 > ts - Transport stream
-in <00:01:00:00> - the starting point for the output file in time code or absolute position
-out <00:02:00:00> - the ending point for the output file in time code or absolute position
-absin <200> - the absolute (zero based) start time for the output file (overrides -in)
-tcoffset <00:01:00:00> - Offset the timecode by this amount
-tc <01:00:00:00> - Replace the output timecode starting with this timecode
-ub <ABCD0123> - Replace the output userbits with these userbits
-absout <400> - the absolute (zero based) end time, exclusive, for the output file (overrides -out)
-width <width> - output width of the video (only for arbitrary codecs like h264, hevc and prores)
-height <height> - output height of the video (in not set, the input size or codec size will be used)
-copy - make a copy of the file section we need, instead of reading directly
-dest - folder or folder and file name for the temp file when using copy
-dest <folder> - folder or folder and file name for the temp file when using copy
-cc <mcc/scc file> - replacement closed caption file>
-afile <path-audio-file> - replacement source audio track<s>
-v <path-video-file> - replacement source video track
-stereo - force a stereo pair (mix down) output
-aroute <12345678/auto> - route channels to specific outputs
-uuid <uuid string> - override the UUID of the file with this one
-kilobitrate <kbit rate> - override the kilo bit rate
-h26xprofile <baseline / main / high / high10 / high422 / high444> - override the profile type
-h26xlevel <51> - override the level
-encodemode <0 / 1> - 0 normal, 1 fastest
-gopsize <15> - size of encoded gop
-tempfolder - Temporary folder to store partial file
-alignment - Alignment value for any temporary partial files, for GetCopyInOut profile
-flags flag - Extra flags for special operations
 allSubAudioTracks, aiProfileID-##, audiofirstonly, ccExtractChannel-##, ccOutputDirectory-**, convert708to608, use708CompatibiltyBytes,
 deinterlace-all, deinterlace-auto, deinterlace-sd, deinterlace-hd1080, forceinterlaced, forceprogressive
 eMamAssetID-##, eMamCategory-**, eMamProxyID-##, extractCCLine21, fixOut, forceCCVidStream, forceCaptions,
 forceAudioMono, forceAudioStereo, forceAudioBlock,
 forceOutputFramerate-##, fpsCompensation-##, frameAccurate, interplay, interpretFileEncoding-##
 markFirstTime, multi, nocache, notifyeMam, offsetTC-##, overrideTC-##, outIsDuration, proxyAfterRecord
 proxyDisable, proxyEnable, proxyRecord, rtinReplaceSource, sampleaccurate, shuffleAudio, testMode
 processdiscontinuities, tctype24/25/df/ndf/50/59/60, timeConversion, timeIsMs, zeroBasedOutput
-m - Save the metadata in an XMP file
-fg - force the GUI on
-fc - force command line
NOTE: the parameters in [square brackets] are optional.

For JPEG picons/thumbnails
-pisrc <file-to-picon> - source for the image
-pidst <where-to-make-picon> - target folder and name
-pisize <size> - size of picon, 100%
-piframe <frame-offset-into-file> - frame to use to make the picon
-piskip <number-of-frames-to-skip> - if set, make a picon of each frame at this distance for the whole file
-width <width> - output width of the picon image

For Caption Extraction, these are the numbers to use with -p caption-#
> caption-# - eg caption-0=mcc, caption-6=SCCAUTO, etc
 0=MCC, 1=AAF, 2=TEXT, 3=SCC, 4=SCCDF, 5=N0, 6=SCCAUTO,
 100=Avid Caption, 101=Belle Nuit Subtitler,
 102=CapMaker Plus, 103=Cheetah Caption, 104=Csv, 105=Csv2, 106=Csv3,
 107=D-Cine SMPTE 2007, 108=D-Cine SMPTE 2010,
 109=EBU STL, 110=Final Cut Pro Xml,
 111=Final Cut Xml Gap, 112=Final Cut Pro X Xml,
 113=Final Cut Pro XCM, 114=Flash Xml,
 115=iTunes Timed Text, 116=JSON, 117=JSON Type 2,
 118=JSON Type 3, 119=JSON Type 4, 120=QuickTime text,
 121=SAMI, 122=SAMI modern, 123=Scenarist, 124=DVD_SCC,
 125=DVD_SCCDF, 126=SoftNi sub, 127=Sony DVDArchitect,
 128=Sony DVD Exp dur, 129=Sony DVD line/dur,
 130=Sony DVD Tabs, 131=SubRip, 132=Sub Station Alpha,
 133=Swift V2, 134=Timed Text 1.0, 135=TT 2006-04 .dfxp,
 136=TT 2006-04 .ttml, 137=TT 2006-04 .xml, 138=WebVTT,
 139=YT Annotations, 140=YouTube sbv,
 141=YouTube Transcript, 142=D-Cinema interop,
 143=WebVTT-webvtt, 144=SMPTE-TT 2052,
 145=Netflix Timed Text,
-q Quiet mode.
-l Loud mode.
-r 01:00:00:00 Override timecode start
-R -00:30:00:00 Ofset timecodes (eg. subtract half an hour)
-0 Zero based timecode output
-1 Mark this first timecode in file
-h # eMAM source clip ID
-s Force CC in video stream
-X Extract CC from line 21 (SD only)
-M # CC channel to extract (def: 1)
-C Use 608 compatibility bytes (not 708)
-c # Convert closed captioning to
-f # Force output frame rate (23, 24, 25, 29, 30)
-g # Compensate conversion (2324, 2423, 2930, 3029)
-o <out-dir> CC output directory
-E # Interpret input file using encoding
0=Auto, 1=UTF-8, 2=UTF-16, 3=IBM-850, 4=IBM-860, 5=Windows-1252


More great products from Drastic

Using FlowCaster with Adobe (Premiere, After Effects)
Using FlowCaster with Adobe (Premiere, After Effects) FlowCaster creates a virtual I/O board as a transmitter for Adobe creative software like Premiere and After Effects.  As a virtual video board, it can send... Tips, Tricks and Technical Information
Net-X-Code and Avid Interplay/MediaCentral Setup
Net-X-Code and Avid Interplay/MediaCentral Setup Avid Interplay/MediaCentral provides a convenient method to share media and projects among a group of Media Composer stations or other Avid products.  Dras... Tips, Tricks and Technical Information
Preparing Ubuntu 14.04 for Drastic Software
Preparing Ubuntu 14.04 for Drastic Software Drastic software has a few requirements that are not included in the standard install of Ubuntu 14.04.  This article describes how to add them   l... Tips, Tricks and Technical Information
IP Video Firewall Setup
IP Video Firewall Setup Different IP video standards require different firewall setups.  This article covers the most common ports / firewall acccess that different IP video stand... Tips, Tricks and Technical Information
videoQC/4KScope macOS Validation
videoQC/4KScope macOS Validation Apple's High Sierra operating system has changed the validation system, especially for applications downloaded from the internet. This has caused some systems t... Tips, Tricks and Technical Information