Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
From: Tom Vaughan <tom@tvaughan.com>
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Subject: Re: [FFmpeg-devel] Captions SCC
Date: Sun, 9 Feb 2025 18:41:33 +0000
Message-ID: <B16CAEE0-BCF9-47D9-8470-04DE177F2AA5@tvaughan.com> (raw)
In-Reply-To: <CANJxsBkg7Lw3S8FzKopfAyEuwp8bU3Dup7TBWUqyrcmuBhsDWg@mail.gmail.com>

I suspect WebVTT became the modern CC format because...
- It is natively supported by the HLS and DASH specifications
	- https://developer.apple.com/documentation/http-live-streaming/hls-authoring-specification-for-apple-devices
	- https://reference.dashif.org/dash.js/latest/samples/captioning/caption_vtt.html
- Streaming is HTTP - based, and WebVTT is a W3C specification.
	- https://www.w3.org/TR/webvtt1/
- WebVTT is delivered as a component (separate "sidecar" file). As such a streaming title can be updated to fix or improve a bad captions track, or to add support for additional languages without re-encoding or re-muxing the encoded video files. Updated a title to add support for another language only requires encoding the additional audio track, then packaging the updated set of audio, video and WebVTT files.
- Wide industry support in HLS and DASH packaging libraries (open source and commercial)
- Wide industry support in streaming player client platforms - both software and device native players
- Better support of dynamic ad insertion (avoids timing errors that cause program captions to appear over an ad, or vice versa)

As Zach noted, WebVTT supports setting the font color and background color. It also supports cue styling, including bold, underlined and italics.
See https://developer.mozilla.org/en-US/docs/Web/API/WebVTT_API for a live example.

Tom

On 2/9/25, 9:42 AM, "ffmpeg-devel on behalf of Devlist Archive" <ffmpeg-devel-bounces@ffmpeg.org <mailto:ffmpeg-devel-bounces@ffmpeg.org> on behalf of devlist@rlb.org <mailto:devlist@rlb.org>> wrote:


>
> Not to start an argument, but WebVTT is kind of a terrible format.
> It's a lowest common denominator and loses most formatting information
> available even in 608 (which is now more than 40 years old). Stuff
> like rollup captions for live programming, color (to distinguish
> speakers) and caption positioning are pretty important to the hearing
> impaired.

From the reading I have done, the WebVTT does support some placement,
italics, and appearance information, but not all players or ripping
programs support those functions. It does appear that 708 has even more
options for the number of captions windows, font sizes, colors, etc that
can make a big difference in experience.

The new captions standard for ATSC 3.0 is actually ISMC1 profile TTML files
that are a sidecar configuration by default. I would highly recommend
focusing on 608 and 708 compatibility first, and only then make sure all
possible features of those standards can be exported to webVTT for those
who will sponsor it. ISMC1 profile TTML won't really be needed until the
majority of TV tuners ship with ATSC 3.0 which is still quite far off.
Implementation of TTML outputs from 708 tracks will require the ability to
extract the entire A/53 Part 4 encoded stream to a sidecar file so
implementing bitstream filters to both mux and demux the captions stream
from the video stream for the full A/53 Part 4 dataset will be required.

Zach




On Sun, Feb 9, 2025 at 6:03 AM Devin Heitmueller <
devin.heitmueller@ltnglobal.com <mailto:devin.heitmueller@ltnglobal.com>> wrote:


> On Sat, Feb 8, 2025 at 10:39 PM Tom Vaughan <tom@tvaughan.com <mailto:tom@tvaughan.com>> wrote:
> >
> > I'm excited to see this discussion. There are many leading video
> distributors (streaming services, etc.) that would love to see solid
> support in FFMPEG for closed captions. No promises, but my sense is that
> additional money can be raised to sponsor this development.
> >
> > WebVTT as a sidecar captions file is the modern way to handle captions.
> The latest streaming client devices / applications support WebVTT captions.
> New movies and TV shows are produced with WebVTT captions.
>
> Not to start an argument, but WebVTT is kind of a terrible format.
> It's a lowest common denominator and loses most formatting information
> available even in 608 (which is now more than 40 years old). Stuff
> like rollup captions for live programming, color (to distinguish
> speakers) and caption positioning are pretty important to the hearing
> impaired.
>
> Yesterday I watched a DVD I ripped (purely for personal use) of a TV
> show with VTT captions for something that I knew what the original 608
> looked like, and wow what a difference (the WebVTT looked dramatically
> worse than the original 608).
>
> To my point: no, I don't think normalizing everything down to WebVTT
> is a good idea.
>
> Much of the goal, at least in the work that I do, is to conform to the
> FCC requirements, which generally require that the original 608/708
> from the content provider be preserved.
>
> There can be money to support such efforts. Most of my work in
> captioning within ffmpeg was funded by my employer, and most of the
> work I did improving 608 captions in VLC was financed by contract work
> I did for commercial customers who were embedding VLC into solutions
> and needed decent caption support.
>
> Devin
>
> --
> Devin Heitmueller, Senior Software Engineer
> LTN Global Communications
> o: +1 (301) 363-1001
> w: https://ltnglobal.com e <https://ltnglobal.com&nbsp;&nbsp;e>: devin.heitmueller@ltnglobal.com <mailto:devin.heitmueller@ltnglobal.com>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org <mailto:ffmpeg-devel@ffmpeg.org>
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel <https://ffmpeg.org/mailman/listinfo/ffmpeg-devel>
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org <mailto:ffmpeg-devel-request@ffmpeg.org> with subject "unsubscribe".
>
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org <mailto:ffmpeg-devel@ffmpeg.org>
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel <https://ffmpeg.org/mailman/listinfo/ffmpeg-devel>


To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org <mailto:ffmpeg-devel-request@ffmpeg.org> with subject "unsubscribe".



_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

  reply	other threads:[~2025-02-09 18:41 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-06 10:19 Devlist Archive
2025-02-06 12:57 ` Jack Lau
2025-02-07  5:12   ` Devlist Archive
2025-02-07  7:48     ` Soft Works
2025-02-07  7:58       ` Jack Lau
2025-02-07  8:16         ` Soft Works
2025-02-07  8:26           ` Jack Lau
2025-02-07  9:11             ` Soft Works
2025-02-07  9:44               ` Jack Lau
2025-02-07 15:38                 ` Marth64
2025-02-07 16:05                   ` Devlist Archive
2025-02-07 16:18                     ` Marth64
2025-02-07 16:37                       ` Marth64
2025-02-07 16:42                         ` Devlist Archive
2025-02-07 18:05                           ` Devin Heitmueller
2025-02-07 18:32                             ` Devlist Archive
2025-02-07 19:03                               ` Devin Heitmueller
2025-02-07 19:31                                 ` Devlist Archive
2025-02-07 19:44                                   ` Soft Works
2025-02-07 19:51                                     ` Devlist Archive
2025-02-07 19:55                                       ` Devin Heitmueller
2025-02-07 19:56                                         ` Devin Heitmueller
2025-02-07 19:56                                       ` Soft Works
2025-02-07 20:20                                         ` Devlist Archive
2025-02-07 19:52                                   ` Devin Heitmueller
2025-02-07 19:54                                     ` Devlist Archive
2025-02-07 17:37                 ` Rémi Denis-Courmont
2025-02-07 17:31           ` Rémi Denis-Courmont
2025-02-07 17:47             ` Soft Works
2025-02-07 18:36       ` Tom Vaughan
2025-02-07 18:54         ` Soft Works
2025-02-07 20:09           ` Tom Vaughan
2025-02-07 20:49             ` Devlist Archive
2025-02-07 20:58               ` Soft Works
2025-02-07 21:05                 ` Devlist Archive
2025-02-07 21:08                 ` Devin Heitmueller
2025-02-07 22:02                   ` Marth64
2025-02-07 22:18                     ` Marth64
2025-02-07 23:12                       ` Devin Heitmueller
2025-02-07 23:46                       ` Soft Works
2025-02-07 23:58                         ` Marth64
2025-02-08  0:10                           ` Soft Works
2025-02-08 14:43                           ` Devin Heitmueller
2025-02-09  3:39                             ` Tom Vaughan
2025-02-09 14:03                               ` Devin Heitmueller
2025-02-09 17:41                                 ` Devlist Archive
2025-02-09 18:41                                   ` Tom Vaughan [this message]
2025-02-09 18:45                                   ` Soft Works
2025-02-09 19:37                                     ` Marth64
2025-02-09 20:14                                       ` Soft Works
2025-02-09 20:23                                         ` Marth64
2025-02-09 20:33                                           ` Soft Works
2025-02-10  2:55                                             ` Devlist Archive

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=B16CAEE0-BCF9-47D9-8470-04DE177F2AA5@tvaughan.com \
    --to=tom@tvaughan.com \
    --cc=ffmpeg-devel@ffmpeg.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git