通过 Upwork 认识我? 如果您是通过 Upwork 找到我并希望合作,请通过 Upwork 联系我。Upwork 客户在 Upwork 之外发送的消息将不会得到回复。
分步指南🎬 字幕与隐藏字幕

Netflix Timed Text Style Guide: five settings to configure first

Netflix TTSG: CPS 20 English / 17 Vietnamese, 42 chars/line, min 5/6 s duration, 2-frame gap - configure all five in Subtitle Edit before spotting.

Dao Huy (Lucas)6 min read共 7 步
Netflix Timed Text Style Guide: five settings to configure first

💡 Five numbers define Netflix subtitle compliance for English: 42 characters per line, 2 lines maximum, 20 CPS for adult content (17 for children), minimum event duration of 5/6 second (about 833 ms), and a 2-frame gap between events. Set these in Subtitle Edit before you spot a single line, and most common delivery rejections will not reach you.

Key takeaways

  • English adult CPS cap: 20; Vietnamese adult cap: 17 (children's: 17 and 13 respectively).
  • Max line length: 42 characters per line, 2 lines maximum per event - for both English and Vietnamese.
  • Min event duration: 5/6 second (~833 ms); max: 7 seconds. At 24fps that is 20 frames minimum.
  • Min gap between consecutive events: 2 frames at any frame rate. At 24fps, collapse gaps of 3-11 frames to exactly 2.
  • TTML delivery: use percentage values only (not pixels), set tts:fontSize="100%" and tts:fontFamily="Arial".

What is the Netflix Timed Text Style Guide?

The Netflix Timed Text Style Guide (TTSG) is a set of language-specific documents published on the Netflix Partner Help Center. Each language has its own page - English (USA), Vietnamese, French, and many others - and they all build on shared general requirements. The TTSG is the reference you need open whenever you spot, translate, or QC a subtitle file destined for Netflix delivery.

The first time I worked on a Netflix-bound subtitle file, I made the mistake of applying a flat 17 CPS limit across all languages. Vietnamese adult CPS is 17 - correct. But English adult CPS is 20, which means I was flagging valid English events as violations. The TTSG resolves that confusion with language-specific numbers, and knowing them before you open the timeline saves a full revision pass.

Which five TTSG parameters should I configure before I spot a single line?

Before you open a transcript and begin spotting, four values in Subtitle Edit need to match the TTSG for your target language. Configure them once, save a profile, and the editor's warnings enforce the TTSG as you work.

ParameterEnglish - AdultEnglish - ChildrenVietnamese - AdultVietnamese - Children
Max CPS20171713
Characters per line42424242
Lines per event2222
Min event duration5/6 s (~833 ms) = 20 frames at 24fps
Max event duration7 seconds
Min gap between events2 frames (all frame rates)
Vietnamese SDH - Adult--2017

One note on the Vietnamese SDH row: SDH for Vietnamese adult content is capped at 20 CPS - the same as English adult - because the reader is assumed to have full hearing context from the original audio. The 17 CPS limit applies to interlingual subtitles only.

On CPS measurement: Netflix counts spaces and punctuation toward the character count. The line No, I did not. is 16 characters including the comma, space, and period. Knowing this prevents surprises at the QC stage.

How do I configure these settings in Subtitle Edit?

Subtitle Edit shows CPS per event in the main grid once you enable it. Here is how I set up a fresh profile before starting a Netflix job:

Subtitle Edit settings path:
  Options > Settings > Subtitle

For English (adult content):
  Maximum characters per second:  20
  Maximum characters per line:    42
  Minimum duration (ms):         833
  Maximum duration (ms):        7000

For Vietnamese (adult content):
  Maximum characters per second:  17
  Maximum characters per line:    42
  Minimum duration (ms):         833
  Maximum duration (ms):        7000

Then: Tools > Check subtitle
  Enable: "CPS too fast"
  Enable: "Line too long"
  Enable: "Short event duration"
  Enable: "Long event duration"
  Enable: "Gap too short between subtitles"
  Set gap minimum: 2 frames
    (at 23.976fps: ~83 ms | at 25fps: ~80 ms)

What each setting does:

  • Maximum CPS: Subtitle Edit highlights events in the grid when they exceed this limit. I leave this running throughout the whole spotting session, not just at the end, so over-speed events are visible immediately.
  • Maximum characters per line: Prevents overshooting the 42-character guideline. The line-length bar in the grid goes red when you exceed the limit.
  • Minimum/maximum duration: Netflix rejects events shorter than 5/6 second. The minimum duration warning catches these before export. At 24fps, 833 ms = 20 frames - reserve this for one- or two-word events only.
  • Gap too short: The 2-frame rule is the check I see trip up newcomers most often. At 23.976fps, 2 frames is about 83 ms. At 25fps it is 80 ms. The TTSG timing guidelines also require that gaps of 3-11 frames at 24fps be collapsed to exactly 2 frames - intermediate gaps are not acceptable.

What does a valid Netflix TTML event look like?

Netflix accepts TTML (IMSC1 compliant) subtitle files for many delivery targets. The TTSG general requirements state two hard rules: use only percentage values (never pixel values), and set tts:fontSize to exactly 100%. Here is a minimal valid event fragment that follows both rules:

<?xml version="1.0" encoding="UTF-8"?>
<tt xml:lang="en"
    xmlns="http://www.w3.org/ns/ttml"
    xmlns:tts="http://www.w3.org/ns/ttml#styling">
  <head>
    <styling>
      <style xml:id="s1"
             tts:fontFamily="Arial"
             tts:fontSize="100%"
             tts:color="#FFFFFF"
             tts:textAlign="center"/>
    </styling>
    <layout>
      <!-- Netflix provides exact region coordinates in its subtitle template.
           Use percentage values only - never pixel values. -->
      <region xml:id="r_bottom"
              tts:origin="10% 85%"
              tts:extent="80% 10%"
              tts:displayAlign="after"
              style="s1"/>
    </layout>
  </head>
  <body>
    <div>
      <!-- Duration: 2.833 s - well inside the 5/6 s min to 7 s max window -->
      <p begin="00:00:04.000" end="00:00:06.833" region="r_bottom">
        This event is 2.833 s long: inside the allowed window.
      </p>
    </div>
  </body>
</tt>

What each attribute does:

  • tts:fontFamily="Arial": Netflix specifies Arial as a placeholder for proportionalSansSerif. Use this string exactly as written in the TTSG.
  • tts:fontSize="100%": The TTSG general requirements explicitly require this value. Do not use a pixel size or a named size.
  • tts:color="#FFFFFF": White text, as specified for both English and Vietnamese.
  • tts:origin / tts:extent: Netflix provides a subtitle template file with exact region coordinates. Use percentage values only - the values shown are illustrative; use the template Netflix supplies for your specific package.
  • begin / end: The event above is 2.833 seconds long - well within the 5/6 s minimum and 7 s maximum.

To export from Subtitle Edit to TTML, use File > Save As and select "Timed Text 1.0 (.ttml)" from the format list.

What can I handle myself, and when does a subtitle specialist pay off?

Everything in this article is free-tool territory. Subtitle Edit is free, the TTSG is public, and the checks above run on any machine. If you are subtitling your own English-language content for Netflix delivery, configuring these five settings takes about ten minutes and prevents most automated rejections.

Where I see producers genuinely save time and money by working with a specialist is at two edges. First, non-English subtitle translation: Vietnamese adult CPS is 17, not 20, and line-break position matters for readability in a tonal language. A native-language subtitler sets those limits correctly from the start rather than revising after automated rejection. Second, English SDH for US streaming: Netflix SDH requires accurate sound-effect descriptions, speaker IDs in brackets, and correct paralinguistic notation. Auto-captions miss these categories entirely - a human QC pass against the Netflix SDH guidance catches what ASR cannot produce.

If you need a subtitle translation that stays inside the Vietnamese CPS limit, or SDH delivery that meets Netflix formatting requirements, the subtitle translation service covers both. I always run a final Subtitle Edit checker pass and verify the TTML style block before packaging any Netflix delivery.

FAQ

Does Netflix automatically reject files if a line exceeds 42 characters?

For most languages, no. The TTSG states that Netflix does not currently enforce the 42-character guideline with an automated QC check for the majority of languages. The exceptions are Korean, Chinese Simplified, Chinese Traditional, and Arabic, where automated limits are strictly enforced (23 characters standard, 16 for Netflix Originals). For English and Vietnamese, 42 characters is a professional practice, not a hard gate - but lines that approach the video edge may display incorrectly on some devices.

What happens if an event is shorter than 5/6 second?

Netflix's general requirements specify a minimum duration of 5/6 second per subtitle event. Very short events trigger automated rejection. At 24fps, 5/6 second equals 20 frames. Set Subtitle Edit's minimum duration warning to 833 ms and the check will flag these before export. Reserve minimum-duration events for truly short content - a single word or a very brief cutaway - and avoid them in running dialogue.

How is reading speed calculated - does a space count as a character?

Yes. Netflix's reading speed FAQ states that spaces and punctuation count toward both the character count and the reading speed calculation. So "No, I did not." is 16 characters, not 12. For CJK character-based languages, single-byte characters (punctuation, Latin letters) each count as 0.5 character - this is why Chinese subtitles have a stricter CPL enforcement and why the CPS calculation works differently for those scripts.

Can I deliver a Vietnamese subtitle as an SRT file, or does Netflix require TTML?

Netflix accepts both SRT and TTML/IMSC for many delivery types. SRT is simpler and works for straightforward subtitle delivery. TTML/IMSC is required for some workflows - SDH with complex formatting, or specific package types. When in doubt, check the deliverable requirements in your Netflix studio portal for the specific title. If you export to SRT via Subtitle Edit, the same CPS, CPL, and timing settings apply - only the file format changes.

How is the minimum 2-frame gap rule actually enforced?

The TTSG timing guidelines specify that subtitles must have a minimum of 2 frames between them, and that at 24fps any gap of 3-11 frames must be collapsed to 2 frames - not left at an intermediate value. Acceptable gaps are either exactly 2 frames or half a second (12 frames at 24fps) or more. Subtitle Edit's "gap too short" check and the manual timing view both flag intermediate gaps. I always run a final gap check in Subtitle Edit before packaging.

Official Sources

Dao Huy (Lucas)
Dao Huy (Lucas)
岘港大学外国语大学毕业。每份认证翻译均附签名的准确性声明(USCIS、IRCC)。

作者:Đào Huy(Lucas),越南语译员与本地化专家(英、中、法译越)。 See translation services →

报价WhatsApp