Skip to content
CutConvert

What survives each conversion

Every CutConvert pair, with what the input carries, what the output keeps, and what changes on the way. Read it before you convert a broadcast delivery or a transcript with speakers, or trust the same line under the preview on any converter page.

44 converters · 28 formats · 15 reported changes

Formats and what they can hold

FormatHubmsframeswordsspeakerpositionstylebreaksclipsnamespathstrans.fxmarkerstracks
SRTtimed text···········
WebVTTtimed text·········
YouTube SBVtimed text············
ASS / SSAtimed text·········
SCC (CEA-608)timed text·········
MCC (CEA-708)timed text·········
EBU-STLtimed text··········
iTTtimed text··········
TTMLtimed text·········
Timed CSVtimed text···········
CSVtimed text···········
Rev transcript TXTtimed text············
Otter transcript TXTtimed text············
Word-style transcripttimed text············
Plain texttimed text············
Word DOCXtimed text···········
Premiere transcript JSONtimed text···········
Premiere transcript JSONtimed text···········
Premiere .prtranscripttimed text···········
Transcript JSON (Whisper, AssemblyAI, …)timed text···········
Avid caption TXTtimed text············
FCPXML (titles)timed text··········
Premiere projecttimeline······
Avid AAFtimeline······
Resolve projecttimeline······
FCP7 XML (xmeml)timeline·······
EDL (CMX3600)EDL·········
EDL event CSVEDL·········

Every pair

TXT to SRT

via Timed text (cue model)

Rev transcript TXT → SRT

Kept
Millisecond timing
Changed
  • Speaker names written into the text as a NAME: prefix, not a separate field
Filled in
Line breaks inside a cue (the output has a place for it; the source did not)

Otter transcript TXT → SRT

Kept
Millisecond timing
Changed
  • Speaker names written into the text as a NAME: prefix, not a separate field
Filled in
Line breaks inside a cue (the output has a place for it; the source did not)

Word-style transcript → SRT

Kept
Millisecond timing
Changed
  • Speaker names written into the text as a NAME: prefix, not a separate field
Filled in
Line breaks inside a cue (the output has a place for it; the source did not)

SRT to Avid TXT

via Timed text (cue model)

SRT → Avid caption TXT

Kept
Line breaks inside a cue
Changed
  • Millisecond timing timing is snapped to frames at the chosen or detected rate reported
  • Styling (italics, colour) inline tags are stripped
Filled in
Frame-accurate timing (the output has a place for it; the source did not)

SRT to Premiere JSON

via Timed text (cue model)

SRT → Premiere transcript JSON

Kept
Millisecond timing
Changed
  • Styling (italics, colour) inline tags are stripped
  • Line breaks inside a cue Premiere transcript JSON has no place for it
Filled in
Speaker names (the output has a place for it; the source did not)

SRT to VTT

via Timed text (cue model)

SRT → WebVTT

Kept
Millisecond timing, Line breaks inside a cue
Changed
  • Styling (italics, colour) inline tags are stripped

SRT to Text

via Timed text (cue model)

SRT → Plain text

Kept
Line breaks inside a cue
Changed
  • Millisecond timing plain text has no timing
  • Styling (italics, colour) inline tags are stripped
Filled in
Speaker names (the output has a place for it; the source did not)

VTT to SRT

via Timed text (cue model)

WebVTT → SRT

Kept
Millisecond timing, Line breaks inside a cue
Changed
  • Speaker names voice tags are stripped with the other inline tags
  • On-screen position placement is not carried
  • Styling (italics, colour) inline tags are stripped

VTT to Text

via Timed text (cue model)

WebVTT → Plain text

Kept
Line breaks inside a cue
Changed
  • Millisecond timing plain text has no timing
  • Speaker names voice tags are stripped with the other inline tags
  • On-screen position placement is not carried
  • Styling (italics, colour) inline tags are stripped

Premiere Transcript to SRT

via Timed text (cue model)

Premiere .prtranscript → SRT

Kept
Millisecond timing
Changed
  • Per-word timestamps words are grouped into cues; per-word times are not kept
  • Speaker names written into the text as a NAME: prefix, not a separate field
Filled in
Line breaks inside a cue (the output has a place for it; the source did not)

Premiere transcript JSON → SRT

Kept
Millisecond timing
Changed
  • Per-word timestamps words are grouped into cues; per-word times are not kept
  • Speaker names written into the text as a NAME: prefix, not a separate field
Filled in
Line breaks inside a cue (the output has a place for it; the source did not)

Premiere Transcript to VTT

via Timed text (cue model)

Premiere .prtranscript → WebVTT

Kept
Millisecond timing
Changed
  • Per-word timestamps words are grouped into cues; per-word times are not kept
  • Speaker names written into the text as a NAME: prefix, not a separate field
Filled in
Line breaks inside a cue (the output has a place for it; the source did not)

Premiere transcript JSON → WebVTT

Kept
Millisecond timing
Changed
  • Per-word timestamps words are grouped into cues; per-word times are not kept
  • Speaker names written into the text as a NAME: prefix, not a separate field
Filled in
Line breaks inside a cue (the output has a place for it; the source did not)

Premiere Transcript to Text

via Timed text (cue model)

Premiere .prtranscript → Plain text

Kept
Speaker names
Changed
  • Millisecond timing plain text has no timing
  • Per-word timestamps words are grouped into cues; per-word times are not kept
Filled in
Line breaks inside a cue (the output has a place for it; the source did not)

Premiere transcript JSON → Plain text

Kept
Speaker names
Changed
  • Millisecond timing plain text has no timing
  • Per-word timestamps words are grouped into cues; per-word times are not kept
Filled in
Line breaks inside a cue (the output has a place for it; the source did not)

Premiere Transcript to Word

via Timed text (cue model)

Premiere .prtranscript → Word DOCX

Kept
Millisecond timing, Speaker names
Changed
  • Per-word timestamps words are grouped into cues; per-word times are not kept
Filled in
Line breaks inside a cue (the output has a place for it; the source did not)

Premiere transcript JSON → Word DOCX

Kept
Millisecond timing, Speaker names
Changed
  • Per-word timestamps words are grouped into cues; per-word times are not kept
Filled in
Line breaks inside a cue (the output has a place for it; the source did not)

Premiere Transcript to CSV

via Timed text (cue model)

Premiere .prtranscript → CSV

Kept
Millisecond timing, Speaker names
Changed
  • Per-word timestamps words are grouped into cues; per-word times are not kept
Filled in
Line breaks inside a cue (the output has a place for it; the source did not)

Premiere transcript JSON → CSV

Kept
Millisecond timing, Speaker names
Changed
  • Per-word timestamps words are grouped into cues; per-word times are not kept
Filled in
Line breaks inside a cue (the output has a place for it; the source did not)

SRT to Word

via Timed text (cue model)

SRT → Word DOCX

Kept
Millisecond timing, Line breaks inside a cue
Changed
  • Styling (italics, colour) inline tags are stripped
Filled in
Speaker names (the output has a place for it; the source did not)

VTT to Word

via Timed text (cue model)

WebVTT → Word DOCX

Kept
Millisecond timing, Line breaks inside a cue
Changed
  • Speaker names voice tags are stripped with the other inline tags
  • On-screen position placement is not carried
  • Styling (italics, colour) inline tags are stripped

ASS to SRT

via Timed text (cue model)

ASS / SSA → SRT

Kept
Millisecond timing, Line breaks inside a cue
Changed
  • Speaker names written into the text as a NAME: prefix, not a separate field
  • On-screen position placement is not carried
  • Styling (italics, colour) override tags are stripped

JSON to SRT

via Timed text (cue model)

Transcript JSON (Whisper, AssemblyAI, …) → SRT

Kept
Millisecond timing
Changed
  • Per-word timestamps words are grouped into cues; per-word times are not kept
  • Speaker names written into the text as a NAME: prefix, not a separate field
Filled in
Line breaks inside a cue (the output has a place for it; the source did not)

JSON to VTT

via Timed text (cue model)

Transcript JSON (Whisper, AssemblyAI, …) → WebVTT

Kept
Millisecond timing
Changed
  • Per-word timestamps words are grouped into cues; per-word times are not kept
  • Speaker names written into the text as a NAME: prefix, not a separate field
Filled in
Line breaks inside a cue (the output has a place for it; the source did not)

CapCut to SRT

via Timed text (cue model)

Transcript JSON (Whisper, AssemblyAI, …) → SRT

Kept
Millisecond timing
Changed
  • Per-word timestamps words are grouped into cues; per-word times are not kept
  • Speaker names written into the text as a NAME: prefix, not a separate field
Filled in
Line breaks inside a cue (the output has a place for it; the source did not)

SRT to CSV

via Timed text (cue model)

SRT → CSV

Kept
Millisecond timing, Line breaks inside a cue
Changed
  • Styling (italics, colour) inline tags are stripped
Filled in
Speaker names (the output has a place for it; the source did not)

CSV to SRT

via Timed text (cue model)

Timed CSV → SRT

Kept
Millisecond timing, Line breaks inside a cue
Changed
  • Speaker names written into the text as a NAME: prefix, not a separate field

SRT to FCPXML

via Timed text (cue model)

SRT → FCPXML (titles)

Kept
Line breaks inside a cue
Changed
  • Millisecond timing timing is snapped to frames reported
  • Styling (italics, colour) inline tags are stripped
Filled in
Frame-accurate timing (the output has a place for it; the source did not)

FCPXML to SRT

via Timed text (cue model)

FCPXML (titles) → SRT

Kept
Line breaks inside a cue
Changed
  • Frame-accurate timing SRT has no place for it
  • On-screen position placement is not carried
  • Styling (italics, colour) inline tags are stripped
Filled in
Millisecond timing (the output has a place for it; the source did not)

FCPXML to Word

via Timed text (cue model)

FCPXML (titles) → Word DOCX

Kept
Line breaks inside a cue
Changed
  • Frame-accurate timing Word DOCX has no place for it
  • On-screen position placement is not carried
  • Styling (italics, colour) inline tags are stripped
Filled in
Millisecond timing, Speaker names (the output has a place for it; the source did not)

FCPXML to CSV

via Timed text (cue model)

FCPXML (titles) → CSV

Kept
Line breaks inside a cue
Changed
  • Frame-accurate timing CSV has no place for it
  • On-screen position placement is not carried
  • Styling (italics, colour) inline tags are stripped
Filled in
Millisecond timing, Speaker names (the output has a place for it; the source did not)

SRT to SCC

via Timed text (cue model)

SRT → SCC (CEA-608)

Kept
nothing the source had survives unchanged
Changed
  • Millisecond timing snapped to 29.97 drop-frame; a caption can be delayed to fit the 608 data rate reported
  • Styling (italics, colour) inline tags are stripped
  • Line breaks inside a cue wrapped to 32 columns; long cues are split reported
Filled in
Frame-accurate timing (the output has a place for it; the source did not)

SCC to SRT

via Timed text (cue model)

SCC (CEA-608) → SRT

Kept
Line breaks inside a cue
Changed
  • Frame-accurate timing SRT has no place for it
  • On-screen position placement is not carried
  • Styling (italics, colour) inline tags are stripped
  • Multiple tracks / channels only CC1 is decoded; a second channel is ignored reported
Filled in
Millisecond timing (the output has a place for it; the source did not)

SCC to CSV

via Timed text (cue model)

SCC (CEA-608) → CSV

Kept
Line breaks inside a cue
Changed
  • Frame-accurate timing CSV has no place for it
  • On-screen position placement is not carried
  • Styling (italics, colour) inline tags are stripped
  • Multiple tracks / channels only CC1 is decoded; a second channel is ignored reported
Filled in
Millisecond timing, Speaker names (the output has a place for it; the source did not)

SRT to MCC

via Timed text (cue model)

SRT → MCC (CEA-708)

Kept
nothing the source had survives unchanged
Changed
  • Millisecond timing snapped to 30 drop-frame; a caption can be delayed to fit the 608 data rate reported
  • Styling (italics, colour) inline tags are stripped
  • Line breaks inside a cue wrapped to 32 columns; long cues are split reported
Filled in
Frame-accurate timing (the output has a place for it; the source did not)

MCC to SRT

via Timed text (cue model)

MCC (CEA-708) → SRT

Kept
Line breaks inside a cue
Changed
  • Frame-accurate timing SRT has no place for it
  • On-screen position placement is not carried
  • Styling (italics, colour) inline tags are stripped
  • Multiple tracks / channels the 608 compatibility track is decoded; native 708 services are not reported
Filled in
Millisecond timing (the output has a place for it; the source did not)

MCC to CSV

via Timed text (cue model)

MCC (CEA-708) → CSV

Kept
Line breaks inside a cue
Changed
  • Frame-accurate timing CSV has no place for it
  • On-screen position placement is not carried
  • Styling (italics, colour) inline tags are stripped
  • Multiple tracks / channels the 608 compatibility track is decoded; native 708 services are not reported
Filled in
Millisecond timing, Speaker names (the output has a place for it; the source did not)

SRT to STL

via Timed text (cue model)

SRT → EBU-STL

Kept
nothing the source had survives unchanged
Changed
  • Millisecond timing snapped to 25 fps
  • Styling (italics, colour) inline tags are stripped
  • Line breaks inside a cue wrapped to 40 characters over 4 rows; long cues are split reported
Filled in
Frame-accurate timing (the output has a place for it; the source did not)

STL to SRT

via Timed text (cue model)

EBU-STL → SRT

Kept
Line breaks inside a cue
Changed
  • Frame-accurate timing SRT has no place for it
  • On-screen position placement is not carried
  • Styling (italics, colour) inline tags are stripped
Filled in
Millisecond timing (the output has a place for it; the source did not)

STL to CSV

via Timed text (cue model)

EBU-STL → CSV

Kept
Line breaks inside a cue
Changed
  • Frame-accurate timing CSV has no place for it
  • On-screen position placement is not carried
  • Styling (italics, colour) inline tags are stripped
Filled in
Millisecond timing, Speaker names (the output has a place for it; the source did not)

Premiere Project to XML

via Timeline (clips on tracks)

Premiere project → FCP7 XML (xmeml)

Kept
Frame-accurate timing, Clip boundaries, Clip names, Multiple tracks / channels
Changed
  • Media paths / reels synthetic or offline media has no file path reported
  • Transitions cuts only: a transition becomes a hard cut
  • Effects and retimes effects, retimes, and nested sequences are not carried
  • Markers markers are not read

Premiere Project to DRP

via Timeline (clips on tracks)

Premiere project → Resolve project

Kept
Frame-accurate timing, Clip boundaries, Clip names, Multiple tracks / channels
Changed
  • Media paths / reels synthetic or offline media has no file path reported
  • Transitions cuts only: a transition becomes a hard cut
  • Effects and retimes effects, retimes, and nested sequences are not carried
  • Markers markers are not read

DaVinci Resolve Project to XML

via Timeline (clips on tracks)

Resolve project → FCP7 XML (xmeml)

Kept
Clip boundaries, Clip names, Media paths / reels
Changed
  • Frame-accurate timing timelines at a different frame rate from the first are left out reported
  • Transitions cuts only
  • Effects and retimes effects and grades are not carried
  • Markers markers are not read
  • Multiple tracks / channels subtitle tracks are left out; video and audio tracks are carried reported

AAF to XML

via Timeline (clips on tracks)

Avid AAF → FCP7 XML (xmeml)

Kept
Frame-accurate timing, Clip boundaries, Clip names, Media paths / reels, Multiple tracks / channels
Changed
  • Transitions a transition becomes a straight cut at its midpoint reported
  • Effects and retimes an effect is flattened to its first underlying clip reported
  • Markers markers are not read

AAF to DRP

via Timeline (clips on tracks)

Avid AAF → Resolve project

Kept
Frame-accurate timing, Clip boundaries, Clip names, Media paths / reels, Multiple tracks / channels
Changed
  • Transitions a transition becomes a straight cut at its midpoint reported
  • Effects and retimes an effect is flattened to its first underlying clip reported
  • Markers markers are not read

Refused pairs

Any EDL to any timed-text format, and any timed-text format to EDL. An EDL is a cut list and captions are timed text; a file that opens but means nothing is worse than a refusal. The timeline hub (Premiere, AAF, Resolve, FCP7 XML) likewise never converts to or from timed text; the only bridge is titles inside FCPXML, which travel as cues.

How to read the table

Every format belongs to one of three hubs. Timed text is words between two timestamps: SRT, WebVTT, SCC, transcripts, DOCX and the rest. Timeline is a sequence of clips with media paths, transitions and markers: Premiere projects, Avid AAF, Resolve projects, FCP7 XML. EDL is a cut list. A conversion reads the input into its hub, then writes the output from that hub, and the table shows what the input had that the output can still hold.

Hubs never cross. An EDL never becomes an SRT and an SRT never becomes an EDL, in either direction, because neither carries what the other needs and a file that opens but means nothing is worse than a refusal. The only bridge is titles inside an FCPXML, which travel as timed text. Timelines likewise never convert to or from captions.

The first table lists what each format can hold. The cards below it list every pair, with the capabilities kept, the ones changed and why, and whether the change is reported on the result. The same line appears under the live preview on every converter page, before anything is converted. Files never leave your browser.

FAQ

Why can't EDL convert to SRT?

An EDL is a cut list: reel names, source and record timecodes, transitions. An SRT is timed text: words on screen between two timestamps. Neither carries what the other needs, so a file that "converted" would open and mean nothing. CutConvert refuses the pair in both directions and sends EDLs to the EDL to CSV report instead.

Which conversions keep speaker names?

Any pair where both formats have a place for a speaker: transcript JSON, Premiere transcripts, Rev, Otter and Word-style transcripts, WebVTT, ASS, TTML, timed CSV and Word DOCX. Writing to SRT, SBV, SCC, MCC, EBU-STL, iTT or Avid caption TXT folds the name into the text as a NAME: prefix or drops it; the row for that pair says which.

Which conversions keep styling?

Italics, bold and colour survive between SRT, WebVTT, ASS, TTML, SCC, MCC, EBU-STL, iTT and FCPXML titles, within what each format can express. Anything written to plain text, CSV, DOCX, Avid caption TXT or a transcript JSON loses inline styling, and the table marks that change on the pair.

What does "reported" mean?

A change tagged "reported" is announced on the result the moment it happens: the converted file carries a warning naming what changed. A change without the tag is still shown here and in the preview line under the file before you convert, but the finished file will not carry a note about it.

Is this table hand-written?

No. It is generated from the same capability table the converters and the preview line read, so a pair here matches what the converter actually does. Files are converted in your browser and never uploaded.