zvbi-atsc-cc(1)
π zvbi-atsc-cc β ATSC Closed Caption decoder π
okay bestie, gather round, because this little icon (zvbi-atsc-cc, straight out of the General Commands Manual, section 1, iykyk) is genuinely one of the most underrated tools in the whole Unix cinematic universe. let's get into it β¨
πΈ SYNOPSIS πΈ
zvbi-atsc-cc [ options ] [-n] station name
π¦ DESCRIPTION π¦
so what does it even do? zvbi-atsc-cc captures ATSC TV transmissions using a Linux DVB device and decodes the Closed Caption data hiding inside them. that's the whole vibe. π
and it's not picky β it can record both NTSC caption (EIA 608-B) and DTVCC caption (CEA 708-C). two caption flavors, one slay. π₯
β¨ OPTIONS β¨
π the basics
-?,-h,--help,--usageβ prints a short usage message. your little "what do I even type" moment, solved.-q,--quietβ suppress all progress and error messages. silence. iconic. π€«-v,--verboseβ crank up the verbosity. more yapping, more info.
π Device options
-anumber,--adapter-numnumber β pick a different DVB device to capture the signal from (/dev/dvb/adapterN). the default is adapter 0.-inumber,--frontend-idnumber β pick a different frontend on the DVB device (/dev/dvb/adapterN/frontendM). most devices have only one frontend, so don't stress. the default is frontend 0.-dnumber,--demux-idnumber β pick a different demultiplexer on the DVB device (/dev/dvb/adapterN/demuxM). again, most devices have only one demultiplexer. the default is demultiplexer 0.-rnumber,--dvr-idnumber β pick a different DVR interface on the DVB device (/dev/dvb/adapterN/dvrM). most devices have only one DVR interface. the default is DVR interface 0.-T,--tsβ decode an MPEG-2 Transport Stream on standard input instead of opening a DVB device. this option is mainly intended for debugging, bestie, so don't make it your whole personality.
since Transport Streams can contain multiple programs you must still specify one or more station names, which zvbi-atsc-cc will look up in a channel configuration file to determine the Program ID of the video elementary stream or streams it should extract. you should also add the --atsc option to clarify that this is an ATSC TS and the program should expect an azap channel configuration file β which is otherwise inferred from the DVB device capabilities.
π Tuning options
-efile name,--channel-conffile name β to tune in a TV stationzvbi-atsc-ccneeds a channel configuration file. we use the config file of theazaptuning tool from thelinuxtv-dvb-appspackage. you can create it with thescantool from that same package. π«Ά
the azap channel configuration file is a text file which lists one station per line. each line contains six fields separated by a colon: the station name, the transponder frequency in Hz, the modulation used (8VSB, 16VSB, QAM_64, QAM_256), the video stream PID, the audio stream PID, and the service ID. empty lines and lines starting with a number sign will be ignored. π
this option selects a different channel configuration file. the default is $HOME/.azap/channels.conf.
-L,--listβ list all stations in the channel configuration file and their transponder frequency. window shopping, but for TV stations. π-nstation name,--stationstation name β the station to tune in. usually the-ncan be omitted, it's just vibes.
zvbi-atsc-cc can record caption from multiple stations at once if they share a transponder frequency. just specify multiple station names on the command line to enable this. multitasking queen. π
π Caption options
with the caption and XDS options you specify which data zvbi-atsc-cc should extract. if multiple station names are given these options apply to the succeeding station name. you must specify at least one of these options for each station. no options, no caption, periodt.
-c,--ccβ print any received caption on standard output.-Cfile name,--cc-filefile name β append any received caption to the specified file.-lnumber,--channelnumber β print NTSC Closed Caption channel 1, 2, 3 or 4 on standard output.-1β¦-4file name,--cc1-fileβ¦--cc4-filefile name β filter out NTSC Closed Caption channel CC1 β¦ CC4 and append the text to the specified file. CC1 is the primary, CC3 the secondary caption service. if both services are transmitted CC1 usually carries English, CC3 Spanish caption. π-5β¦-8file name,--t1-fileβ¦--t4-filefile name β filter out NTSC Text service T1 β¦ T4 and append the text to the specified file.-9β¦-0file name,--s1-fileβ¦--s2-filefile name β filter out DTVCC service 1 or 2 and append the text to the specified file. service 1 is the primary, service 2 the secondary caption service. if both services are transmitted service 1 usually carries English, service 2 Spanish caption.
digital TV stations are supposed to transmit language codes and other information about the available caption services but these are not presently evaluated. zvbi-atsc-cc filters out text which does not appear to be caption, such as tickers or vertically printed text. it knows what's real and what's not. π
-b,--no-webtvβ do not print WebTV links.-m,--timestampsβ prepend timestampsYYYYMMDDHHMMSSto caption lines. this is the system time in the UTC timezone when the text was captured, specifically the Carriage Return or Pop-On code responsible for printing the line. β°-S,--stream-time/-Sdate,--stream-time=dateβ prepend timestampsYYYYMMDDHHMMSSto caption lines generated from the timestamps transmitted in the video stream. if date is given, also in the formatYYYYMMDDHHMMSS, it will be added to the timestamps, otherwise the counter starts at0001-01-01 00:00:00.-s,--sentencesβ print caption one sentence at a time. little bite-sized pieces, very demure. π-jtype,--formattype β when type is"plain"zvbi-atsc-ccprints caption and XDS text without any markup. when type is"vt100"it faithfully reproduces the caption foreground and background color, italic and underline attributes by inserting VT.100 terminal control codes. with type"ntsc-cc"it mimics the output of thentsc-ccandzvbi-ntsc-cctool. the default is"ntsc-cc".
zvbi-atsc-cc supports all Closed Caption character sets and converts to the encoding of the current locale, usually UTF-8. πΈ
-p,--plainβ same as-j plain.
π XDS options
-x,--xdsβ print all received XDS data on standard output.-Xfile name,--xds-filefile name β filter out eXtended Data Service data (station name, program name, program rating etc.) and append it as text to the specified file.-f*type[,type]**,--filter*type[,type]** β filter out specific XDS information:all,call(station call sign),desc(program synopsis),length,network,rating,time,timecode,timezone,title. multiple-foptions accumulate. the default is"all".
π EXAMPLES π
zvbi-atsc-cc -c NJN-HD
zvbi-atsc-cc --cc1-file wnyw.txt WNYW-DT --cc1-file wwor.txt WWOR-DT
(NJN-HD, WNYW-DT and WWOR-DT are TV stations in New York. WNYW-DT and WWOR-DT can be captured simultaneously because they share a transponder frequency. π)
zvbi-atsc-cc --atsc --ts -c CNN < recorded-from-cnn.ts
ποΈ FILES ποΈ
$HOME/.azap/channels.conf
π SEE ALSO π
zvbi-ntsc-cc, azap
http://zapping.sourceforge.net
π«Ά AUTHORS π«Ά
- Michael H. Schimek (mschimek AT users.sourceforge.net)
- timecop@japan.co.jp
- Mike Baker
- Mark K. Kim
π COPYRIGHT π
this program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
this program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
you should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
and that's the whole thing, bestie π that was zvbi-atsc-cc(1) from the General Commands Manual β go forth, tune in, and let the captions slay. no cap. π
β¨
π¦ where this page comes from
- arch rolling: zvbi 0.2.46-1 Β· GPL-2.0-or-later AND GPL-2.0-only AND LGPL-2.1-or-later AND MIT
- debian bookworm: zvbi 0.2.41-1+deb12u1 Β· GPL-2.0-or-later
- debian trixie: zvbi 0.2.44-1 Β· GPL-2.0-or-later
- epel 10: zvbi 0.2.42-1.el10_0 Β· GPL-2.0-or-later AND LGPL-2.0-or-later AND LGPL-2.1-or-later AND BSD-2-Clause AND MIT
- fedora 43: zvbi 0.2.44-2.fc43 Β· GPL-2.0-or-later AND LGPL-2.0-or-later AND LGPL-2.1-or-later AND BSD-2-Clause AND MIT
- fedora 43: zvbi 0.2.44-2.fc43 Β· GPL-2.0-or-later AND LGPL-2.0-or-later AND LGPL-2.1-or-later AND BSD-2-Clause AND MIT
- fedora 44: zvbi 0.2.44-3.fc44 Β· GPL-2.0-or-later AND LGPL-2.0-or-later AND LGPL-2.1-or-later AND BSD-2-Clause AND MIT
- fedora 44: zvbi 0.2.44-3.fc44 Β· GPL-2.0-or-later AND LGPL-2.0-or-later AND LGPL-2.1-or-later AND BSD-2-Clause AND MIT
- fedora 44: zvbi 0.2.46-1.fc44 Β· GPL-2.0-or-later AND LGPL-2.0-or-later AND LGPL-2.1-or-later AND BSD-2-Clause AND MIT
- fedora 44: zvbi 0.2.46-1.fc44 Β· GPL-2.0-or-later AND LGPL-2.0-or-later AND LGPL-2.1-or-later AND BSD-2-Clause AND MIT
- nixpkgs unstable: zvbi 0.2.45
- opensuse-leap 16.0: zvbi 0.2.44-160000.2.2 Β· GPL-2.0-or-later AND LGPL-2.1-or-later
- opensuse-leap 16.0: zvbi 0.2.44-160000.2.2 Β· GPL-2.0-or-later AND LGPL-2.1-or-later
- opensuse-leap 16.0: zvbi 0.2.44-160000.2.2 Β· GPL-2.0-or-later AND LGPL-2.1-or-later
- opensuse-leap 16.0: zvbi 0.2.44-160000.2.2 Β· GPL-2.0-or-later AND LGPL-2.1-or-later
- ubuntu noble: zvbi 0.2.42-2 Β· GPL-2.0-or-later
- ubuntu questing: zvbi 0.2.44-1ubuntu1
- ubuntu resolute: zvbi 0.2.44-1ubuntu2 Β· GPL-2.0-or-later
- ubuntu stonking: zvbi 0.2.45-1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms