HACKTV(1)
πΊ HACKTV(1) β User Commands πΊ
okay bestie, settle in, because this is the manual page for hacktv from the User Commands section, and it is long. Like, we're doing this in two parts long. Grab a snack, we're going through every single flag together and I am not skipping a crumb. π
π NAME π
hacktv β Analogue TV transmitter for the HackRF
π‘ SYNOPSIS π‘
hacktv [options] input [input...]
β¨ DESCRIPTION β¨
okay so here's the whole toolkit, one flag at a time:
-o,--output <target>β Set the output device or file, Default:hackrf-m,--mode <name>β Set the television mode. Default:i-s,--samplerate <value>β Set the sample rate in Hz. Default:16MHz-l,--level <value>β Set the output level. Default:1.0-D,--deviation <value>β Override the mode's FM deviation. (Hz)-G,--gamma <value>β Override the mode's gamma correction value.-r,--repeatβ Repeat the inputs forever. (forever forever, bestie)-v,--verboseβ Enable verbose output.--teletext <path>β Enable teletext output. (625 line modes only)--wss <mode>β Enable WSS output. (625 line modes only)--videocrypt <mode>β Enable Videocrypt I scrambling. (PAL only)--videocrypt2 <mode>β Enable Videocrypt II scrambling. (PAL only)--videocrypts <mode>β Enable Videocrypt S scrambling. (PAL only)--systerβ Enable Nagravision Syster scambling. (PAL only)--filterβ Enable experimental VSB modulation filter.--noaudioβ Suppress all audio subcarriers. (silence, but make it fashion)
π Input options π
test:colourbarsβ Generate and transmit a test pattern. β¨ the classic β¨ffmpeg:<file|url>β Decode and transmit a video file with ffmpeg.
If no valid input prefix is provided, ffmpeg: is assumed.
π» HackRF output options π»
-o,--output hackrf[:<serial>]β Open a HackRF for output.-f,--frequency <value>β Set the RF frequency in Hz,0MHzto7250MHz.-a,--ampβ Enable the TX RF amplifier.-g,--gain <value>β Set the TX VGA (IF) gain,0-47dB. Default:0dB
Only modes with a complex output are supported by the HackRF. (real-talk: check your mode first or it's giving nothing)
π°οΈ SoapySDR output options π°οΈ
-o,--output soapysdr[:<opts>]β Open a SoapySDR device for output.-f,--frequency <value>β Set the RF frequency in Hz.-g,--gain <value>β Set the TX level. Default:0dB-A,--antenna <name>β Set the antenna.
πΎ File output options πΎ
-o,--output file:<filename>β Open a file for output. Use-for stdout.-t,--type <type>β Set the file data type.
Supported file types:
uint8 int8 uint16 int16 int32 float
The default output is int16. The TV mode will determine if the output is real or complex.
If no valid output prefix is provided, file: is assumed.
πΌ Supported television modes: πΌ
the whole lineup, no notes:
i= PAL colour, 25 fps, 625 lines, AM (complex), 6.0 MHz FM audiob,g= PAL colour, 25 fps, 625 lines, AM (complex), 5.5 MHz FM audiopal-fm= PAL colour, 25 fps, 625 lines, FM (complex), 6.5 MHz FM audiopal= PAL colour, 25 fps, 625 lines, unmodulated (real)m= NTSC colour, 30/1.001 fps, 525 lines, AM (complex)ntsc= NTSC colour, 30/1.001 fps, 525 lines, unmodulated (real)l= SECAM colour, 25 fps, 625 lines, AM (complex), 6.5 MHz AM audiosecam= SECAM colour, 25 fps, 625 lines, unmodulated (real)e= No colour, 25 fps, 819 lines, AM (complex)819= No colour, 25 fps, 819 lines, unmodulated (real)a= No colour, 25 fps, 405 lines, AM (complex)405= No colour, 25 fps, 405 lines, unmodulated (real)240-am= No colour, 25 fps, 240 lines, AM (complex)240= No colour, 25 fps, 240 lines, unmodulated (real)30-am= No colour, 12.5 fps, 30 lines, AM (complex)30= No colour, 12.5 fps, 30 lines, unmodulated (real)apollo-fsc-fm= Field sequential colour, 30/1.001 fps, 525 lines, FM (complex) β 1.25 MHz FM audioapollo-fsc= Field sequential colour, 30/1.001 fps, 525 lines, unmodulated (real)apollo-fm= No colour, 10 fps, 320 lines, FM (complex), 1.25 MHz FM audioapollo= No colour, 10 fps, 320 lines, unmodulated (real)
NOTE: The number of samples per line is rounded to the nearest integer, which may result in a slight frame rate error. (tiny lil rounding drama, nothing more)
For modes which include audio you also need to ensure the sample rate is adequate to contain both the video signal and audio subcarriers.
16MHz works well with PAL modes, and 13.5MHz for NTSC modes.
π Teletext π
Teletext is a digital information service transmitted within the VBI lines of the video signal. Developed in the UK in the 1970s, it was used throughout much of Europe until the end of analogue TV in the 2010s. (history lesson AND a feature, we love a multitasker)
hacktv supports TTI files. The path can be either a single file or a directory. All files in the directory will be loaded.
Raw packet sources are also supported with the raw:<source> path name. The input is expected to be 42 byte teletext packets. Use - for stdin.
Lines 7-22 and 320-335 are used, 16 lines per field.
Teletext support in hacktv is only compatible with 625 line PAL modes. NTSC and SECAM variations exist and may be supported in the future.
πΌοΈ WSS (Widescreen Signaling) πΌοΈ
WSS provides a method to signal to a TV the intended aspect ratio of the video. The following modes are supported:
4:3= Video is 4:3.16:9= Video is 16:9 (Anamorphic).14:9-letterbox= Crop a 4:3 video to 14:9.16:9-letterbox= Crop a 4:3 video to 16:9.auto= Automatically switch between 4:3 and 16:9.
Currently only supported in 625 line modes. A 525 line variant exists and may be supported in future.
π Videocrypt I π
A video scrambling system used by the Sky TV analogue satellite service in the UK in the 1990s. Each line of the image is cut at a point determined by a pseudorandom number generator, then the two parts are swapped. (chaotic. iconic. periodt.)
hacktv supports the following modes:
free= Free-access, no subscription card is required to decode.conditional= A valid Sky card is required to decode. Sample data from MTV.
Videocrypt is only compatiable with 625 line PAL modes. This version works best when used with samples rates at multiples of 14MHz.
π Videocrypt II π
A variation of Videocrypt I used throughout Europe. The scrambling method is identical to VC1, but has a higher VBI data rate.
hacktv supports the following modes:
free= Free-access, no subscription card is required to decode.
Both VC1 and VC2 cannot be used together except if both are in free-access mode.
lowkey important: do NOT run VC1 and VC2 together unless they're both in free-access mode.
π Videocrypt S (Simulation) π
A variation of Videocrypt II used on the short lived BBC Select service. This mode uses line-shuffling rather than line cut-and-rotate.
hacktv supports the following modes:
free= Free-access, no subscription card is required to decode.
This is a simulation and will not work with real hardware. Audio inversion is not yet supported. (pretend mode only, bestie, don't come for me)
π Nagravision Syster π
Another video scrambling system used in the 1990s in Europe. The video lines are vertically shuffled within a field.
Syster is only compatible with 625 line PAL modes and does not currently work with most hardware.
Audio inversion is not yet supported.
π Usage: hacktv [options] input [input...] π
yes bestie, the options show up again β the page really does that, and we're keeping every single one:
-o,--output <target>β Set the output device or file, Default:hackrf-m,--mode <name>β Set the television mode. Default:i-s,--samplerate <value>β Set the sample rate in Hz. Default:16MHz-l,--level <value>β Set the output level. Default:1.0-D,--deviation <value>β Override the mode's FM deviation. (Hz)-G,--gamma <value>β Override the mode's gamma correction value.-r,--repeatβ Repeat the inputs forever.-v,--verboseβ Enable verbose output.--teletext <path>β Enable teletext output. (625 line modes only)--wss <mode>β Enable WSS output. (625 line modes only)--videocrypt <mode>β Enable Videocrypt I scrambling. (PAL only)--videocrypt2 <mode>β Enable Videocrypt II scrambling. (PAL only)--videocrypts <mode>β Enable Videocrypt S scrambling. (PAL only)--systerβ Enable Nagravision Syster scambling. (PAL only)--filterβ Enable experimental VSB modulation filter.--noaudioβ Suppress all audio subcarriers.
π Input options π
test:colourbarsβ Generate and transmit a test pattern.ffmpeg:<file|url>β Decode and transmit a video file with ffmpeg.
If no valid input prefix is provided, ffmpeg: is assumed.
π» HackRF output options π»
-o,--output hackrf[:<serial>]β Open a HackRF for output.-f,--frequency <value>β Set the RF frequency in Hz,0MHzto7250MHz.-a,--ampβ Enable the TX RF amplifier.-g,--gain <value>β Set the TX VGA (IF) gain,0-47dB. Default:0dB
Only modes with a complex output are supported by the HackRF.
π°οΈ SoapySDR output options π°οΈ
-o,--output soapysdr[:<opts>]β Open a SoapySDR device for output.-f,--frequency <value>β Set the RF frequency in Hz.-g,--gain <value>β Set the TX level. Default:0dB-A,--antenna <name>β Set the antenna.
πΎ File output options πΎ
-o,--output file:<filename>β Open a file for output. Use-for stdout.-t,--type <type>β Set the file data type.
Supported file types:
uint8 int8 uint16 int16 int32 float
The default output is int16. The TV mode will determine if the output is real or complex.
If no valid output prefix is provided, file: is assumed.
πΌ Supported television modes: πΌ
i= PAL colour, 25 fps, 625 lines, AM (complex), 6.0 MHz FM audiob,g= PAL colour, 25 fps, 625 lines, AM (complex), 5.5 MHz FM audiopal-fm= PAL colour, 25 fps, 625 lines, FM (complex), 6.5 MHz FM audiopal= PAL colour, 25 fps, 625 lines, unmodulated (real)m= NTSC colour, 30/1.001 fps, 525 lines, AM (complex)ntsc= NTSC colour, 30/1.001 fps, 525 lines, unmodulated (real)l= SECAM colour, 25 fps, 625 lines, AM (complex), 6.5 MHz AM audiosecam= SECAM colour, 25 fps, 625 lines, unmodulated (real)e= No colour, 25 fps, 819 lines, AM (complex)819= No colour, 25 fps, 819 lines, unmodulated (real)a= No colour, 25 fps, 405 lines, AM (complex)405= No colour, 25 fps, 405 lines, unmodulated (real)240-am= No colour, 25 fps, 240 lines, AM (complex)240= No colour, 25 fps, 240 lines, unmodulated (real)30-am= No colour, 12.5 fps, 30 lines, AM (complex)30= No colour, 12.5 fps, 30 lines, unmodulated (real)apollo-fsc-fm= Field sequential colour, 30/1.001 fps, 525 lines, FM (complex) β 1.25 MHz FM audio
β¨ and bestie, we are NOT done β part 2 is loading β¨
apollo-fscβ Field sequential colour,30/1.001fps,525lines, unmodulated (real) πapollo-fmβ No colour,10fps,320lines, FM (complex),1.25MHz FM audio π§apolloβ No colour,10fps,320lines, unmodulated (real) β¨
π NOTE: the number of samples per line gets rounded to the nearest integer, which may cause a slight frame rate error. Not a glitch bestie, just maths doing its thing.
Okay so for modes that have audio in them, you also gotta make sure your sample rate is big enough to fit both the video signal and the audio subcarriers, fr fr. π
16MHz works super well with PAL modes, and 13.5MHz is the move for NTSC modes. π
π¦ Teletext π¦
Teletext is a digital information service that gets transmitted inside the VBI lines of the video signal. It was developed in the UK back in the 1970s and was used all over much of Europe until analogue TV ended in the 2010s. It's giving retro icon, honestly. πΌ
hacktv supports TTI files. The path can be either a single file or a directory β and if it's a directory, all the files in it get loaded. Periodt. π
Raw packet sources are supported too, using the raw:<source> path name. The input is expected to be 42 byte teletext packets. Use - for stdin. π«Ά
Lines 7-22 and 320-335 are used, which is 16 lines per field. π
β οΈ Heads up: Teletext support inhacktvis only compatible with625line PAL modes. NTSC and SECAM variations exist and may be supported in the future. π
π WSS (Widescreen Signaling) π
WSS is the little signal that tells your TV what aspect ratio the video is meant to be. The following modes are supported: π₯οΈ
4:3β Video is4:3.16:9β Video is16:9(Anamorphic).14:9-letterboxβ Crop a4:3video to14:9.16:9-letterboxβ Crop a4:3video to16:9.autoβ Automatically switch between4:3and16:9.
π Currently only supported in625line modes. A525line variant exists and may be supported in future. Manifesting it bestie. π―οΈ
π Videocrypt I π
A video scrambling system used by the Sky TV analogue satellite service in the UK in the 1990s. Here's the tea: each line of the image gets cut at a point determined by a pseudorandom number generator, and then the two parts get swapped. Sneaky. π
hacktv supports the following modes:
freeβ Free-access, no subscription card is required to decode. πconditionalβ A valid Sky card is required to decode. Sample data from MTV.
β οΈ Videocrypt is only compatible with625line PAL modes. This version works best when used with samples rates at multiples of14MHz.
π§ Videocrypt II π§
A variation of Videocrypt I used throughout Europe. The scrambling method is identical to VC1, but it has a higher VBI data rate. β¨
hacktv supports the following modes:
freeβ Free-access, no subscription card is required to decode. π
β οΈ Both VC1 and VC2 cannot be used together, except if both are in free-access mode. Read that again bestie, it matters. π«
π Videocrypt S (Simulation) π
A variation of Videocrypt II used on the short lived BBC Select service. This mode uses line-shuffling rather than line cut-and-rotate. Different technique, same chaos energy. π
hacktv supports the following modes:
freeβ Free-access, no subscription card is required to decode. π
π¨ This is a simulation and will not work with real hardware. Audio inversion is not yet supported. π
π Nagravision Syster π
Another video scrambling system used in the 1990s in Europe. The video lines get vertically shuffled within a field. The way that it justβ¦ shuffles. π
β οΈ Syster is only compatible with 625 line PAL modes and does not currently work with most hardware. Audio inversion is not yet supported. π
That's the whole vibe check bestie β this was hacktv, the HACKTV(1) manual page, dated September 2019. Go scramble something iconic π
β¨π¦
π¦ where this page comes from
- debian bookworm: hacktv 0+git20230104+ds-2 Β· GPL-3.0-or-later
- debian trixie: hacktv 0+git20250218+ds-2 Β· GPL-3.0-or-later
- ubuntu jammy: hacktv 0+git20220202+ds-1 Β· GPL-3.0-or-later
- ubuntu noble: hacktv 0+git20230104+ds-2build1 Β· GPL-3.0-or-later
- ubuntu questing: hacktv 0+git20250218+ds-2
- ubuntu resolute: hacktv 0+git20250218+ds-2build1 Β· GPL-3.0-or-later
- ubuntu stonking: hacktv 0+git20260515+ds-3 Β· GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms