From: Devin Heitmueller <devin.heitmueller@ltnglobal.com> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Subject: Re: [FFmpeg-devel] [PATCH] lavc: Replace 181 magic number with ITU_T_T35_COUNTRY_CODE_US Date: Mon, 10 Mar 2025 09:57:26 -0400 Message-ID: <CAHGibzHmq=zG2b00mRB0fB_9mc9M10QfBwuu7dovzx1cnrJkdQ@mail.gmail.com> (raw) In-Reply-To: <9060db88ce61ffa3946203539dd84612539a4471.camel@haerdin.se> On Mon, Mar 10, 2025 at 5:57 AM Tomas Härdin <git@haerdin.se> wrote: > Just an aside: I've had potential clients ask about decoding teletext > from the video essence itself, for stuffing into MXF's VBI thing. Here > in Sweden subtitles are still done with teletext. I wouldn't be > surprised if some broadcasters use both teletext and 708 So it's actually pretty easy to go from teletext in a TS stream to teletext in VBI. I've done it in the SDI domain in both directions (for example, I have code in my ffmpeg decklink output avdevice to put it out over VBI for SD as well as in SDI VANC for HD), and you don't need to fully decode the stream. I leveraged a couple of functions in libzvbi to make my life easier, but in any case it's not much code. I think in my tree it was something like 100 lines of code. > > Muxing together captions from different sources is pretty painful, > > since you have to parse/decompose the 708 stream and recombine streams > > from different sources (and then update the PMT). I have code which > > does it but haven't made any effort to open source it, and I'm not > > confident it could easily be done within ffmpeg due to limitations in > > the ffmpeg framework. > > It is indeed painful. With the client I'm doing this with we use > libcaption to do this, outside of FFmpeg, precisely because FFmpeg's > "model" is wholly unsuited for stuffing subs into encoded video essence > streams. But even libcaption is rather lackluster, and does not support > setting the channel index of each 608 stream. Not hard to modify > libcaption to gain this feature, but still Yeah, I didn't have a particularly positive experience with libcaption, despite the fact that I know it's what a number of projects use (including OBS). Everytime I look at that code I spot a whole pile of things they are doing wrong. Probably the most obvious is that they don't properly do rate control for the 608/708 tuples to embed in the stream, so the resulting stream won't work properly with many decoders/transcoders. This was actually one reason I wrote the vf_ccrepack filter in ffmpeg, to deal with cases where somebody used libcaption to embed CC into a TS. The ccrepack filter puts the caption tuples into.a queue and then re-embeds them at the appropriate rate given the target framerate. > > It's also worth noting that the Caption descriptor as defined in the > > standard does not let you specify the language of individual CTA-608 > > channels within a 708 stream (which is what most people care about). > > The only way to specify the language for the 608 channels (e.g. > > CC1-CC4) is via XDS bytes within the 608 stream, which almost nobody > > does nowadays. I ran a scan across my network of thousands of > > channels from different commercial hardware encoders, and couldn't > > find a single one that specified the 608 language in XDS (if I found > > cases where it was, I was prepared to submit patches to VLC to show > > the language in the subtitle dropdown menu). > > So everyone just uses a single CC channel (or pair) within each 608 > stream? I'd probably do that too tbh, if I were already doing 708. From > what I remember of 608 it's meant to be bilingual at most, carrying > English and Spanish subs for the North-, Middle- and South American > market. So CEA-608 provides for up to four channels of captions (using a pair of bytes for each field of video, or two pairs for progressive frames). Broadcasters often embed more than one language (Most common is English and Spanish) using commercial solutions, but there aren't really any open source solutions I can think of which combine multiple caption languages into a single CEA-608 stream. The character set support is definitely limited (you can't do Unicode as you can with CEA-708). What is supported is mostly oriented around what you would typically find in ISO8859-1 (i.e. North and South America, and Western Europe). Also worth noting that many decoders don't support the full character set, where it works fine with the characters found typically in English and Spanish, but overlooks characters from Western Europe. Same goes for transcoders; even some expensive commercial transcoders I can think of don't work with all character sets. Devin -- Devin Heitmueller, Senior Software Engineer LTN Global Communications o: +1 (301) 363-1001 w: https://ltnglobal.com e: devin.heitmueller@ltnglobal.com _______________________________________________ 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".
prev parent reply other threads:[~2025-03-10 13:57 UTC|newest] Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top 2025-03-03 12:25 Tomas Härdin 2025-03-03 13:12 ` Andreas Rheinhardt 2025-03-04 9:12 ` Tomas Härdin 2025-03-04 11:31 ` Andreas Rheinhardt 2025-03-04 22:57 ` Michael Niedermayer 2025-03-03 13:55 ` Devin Heitmueller 2025-03-04 9:01 ` Tomas Härdin 2025-03-04 15:13 ` Devin Heitmueller 2025-03-04 23:13 ` Marth64 2025-03-10 9:57 ` Tomas Härdin 2025-03-10 13:57 ` Devin Heitmueller [this message]
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='CAHGibzHmq=zG2b00mRB0fB_9mc9M10QfBwuu7dovzx1cnrJkdQ@mail.gmail.com' \ --to=devin.heitmueller@ltnglobal.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