-
Notifications
You must be signed in to change notification settings - Fork 80
Basic usage of ld decode
Before you can decode anything with ld-decode, you will need something to decode. There are a few choices; find someone awesome with a RF capture you desire and get a copy of it or use the Domesday Duplicator or CX Card (along with a calibrated LaserDisc player) and capture your own, but there is also plenty of samples of the DD86 Discs on The Internet Archive & The Community Shared Drive has samples of LaserDiscs and many other analogue formats.
The resulting files can be the following:
.lds
- 10-bit Packed DdD Capture (compressible with ld-compress linux/windows scripts inside the github repo)
.ldf
- FLAC compressed 16-bit singed DdD capture
.raw
- 16-bit Singed RAW DdD capture
.u8
- 8-bit Unsinged CX Card (or other RF device) capture
.u16
- 16-bit Unsinged CX Card (or other RF device) capture
The .lds
is a 10-bit packed RF sample file, if you want to view the raw RF in a audio tool like audacity or audition you have 2 options.
FLAC compress it to a 16-bit flac file.
ld-compress capture.lds
Or you can unpack it to a 16-bit singed file.
ld-lds-converter --unpack --input capture.lds --output unpacked_capture.s16
If you have a new capture environment it can be very useful to make a small 10 second .lds at the start, middle and end of a disc, then view in audacity to make sure the capture environment is good.
Format | Format Type | Line System | TV System | Level of Decoding Support | RF Capture Support |
---|---|---|---|---|---|
LaserDisc CAV | Composite Modulated | 525 & 625 | NTSC, NTSC-J, PAL, PAL-M | High | Yes, Standardised |
LaserDisc CLV | Composite Modulated | 525 & 625 | NTSC, NTSC-J, PAL, PAL-M | High | Yes, Standardised |
LaserDisc MUSE | Composite Modulated | 1125 | HDTV | In Developent | Work In Progress |
TV System | Full-Frame 4fsc | Frequency | Frame Rate | Field Rate | Data Rate CVBS | Data Rate Y+C |
---|---|---|---|---|---|---|
PAL | 1135x624 | 17727262 Hz | 25i | 50i | 280mbps 2.1GB/min | 560mbps 4.2GB/min |
NTSC | 910x524 | 14318181 Hz | 29.97i | 59.94i | 226.5mbps 1.7GB/min | 453mbps 3.4GB/min |
The first step in the decoding process is the complicated (and time-consuming) process of converting the raw LaserDisc RF into multiple streams of:
.tbc
(the 4fsc NTSC or PAL field stream)
.pcm
(a raw 44.1Khz 16-bit stereo analogue sound track)
.efm
(the data track & digital audio decodable to .dts
& .ac3
)
.json
which is a metadata file (i.e. it describes the .tbc file to the rest of the wondrous tools in the ld-decode tool-chain)
The other complex things ld-decode does are 'time-base correction' and 'framing' - and, as confusing as it sounds, 'framing' is actually about processing fields... As the disc spins, jitters and flies around merrily in a LaserDisc player, it's not very accurate about it.
To remove all of these timing issues (which make the video go wibbily-wobbily) ld-decode picks up on the timing signals in the RF and stretches and contracts things to make everything look right. As well as this time-base correction, all of the NTSC/PAL information is arranged into fields which then go to make up the frames (every frame has a first and second field which are interlaced to make a complete 'picture').
In order to decode somthing, the decoder needs to know what and how you wish to decode an input RF capture. (as its not magic!)
TV System: --pal
or --ntsc
(NTSC is default)
If AC3 audio disc then --AC3
is required.
Decoding has relative positon control of start & duration by frame.
--start 60
for example starts you on the 60th frame of the file.
--length
sets the maximum duration in frames although, if you don't specify a length or a start, things will start from the beginning of the RF file and continue until the end (or a lead-out frame).
--threads
sets the CPU threads, the decoding code is bottlenecked by the TBC, so more then 6 threads wont normally help. (same applys to vhs-decode/cvbs-decode but not hifi-decode)
Example decoding command for a PAL disc:
ld-decode laserdisc-test.ldf --threads 6 --pal --start 300 --length 1000 outputfile
If your captures are in another directory you will want to define the path of your input and output files:
ld-decode --threads 6 --pal --start 300 --length 1000 /my/indisc/awesome.ldf /my/outdisc/outputfile
Some captures include 'spin-up' - this is the bit where the player spins up the disc and settles onto the start of the first field of the first frame. As the player spins up the RF is all over the place and can't be decoded.
ld-decode will attempt to skip this, but sometimes it needs some guidance with --start
.
The 'sequential frame' is the number of frames included from the start of the .lds/.ldf (it has nothing to do with the VBI frame numbering that might be shown by a real LD player).
Note that the outputfile
shouldn't have a .tbc
extension - ld-decode will add this itself (no one knows why this is... it will always be a mystery).
Once the decode is finished you will have a bunch of files ready for the next parts of the process.
Every disc (& videotape) within the PAL or NTSC, has a Vertical blanking interval - this is the gap (from the prehistoric days of CRT TVs) where the raster had to get from the bottom of the TV back to the top - nothing could be displayed whilst that happened, so some smart-cookie decided to put useful data in there so the LaserDisc player wouldn't get bored waiting.
The VBI data (often just called VBI as it sounds cooler) contains useful information about the video such as frame numbering and timecode or even fancy data like Teletext!
ld-decode will have already put some basic VBI data in the metadata (the .tbc.json file mentioned before) - but you can make it more complete by using the following command:
ld-process-vbi /my/outdisc/outputfile.tbc
To view your NTSC/PAL decode while decoding or after .tbc
use the following command:
Linux & MacOS:
ld-analyse
Windows:
ld-analyse.exe -style fusion
-style fusion
is required for darkmode due to QT not automatically setting based off system setting on Windows and some Linux distros.
ld-analyse is so awesome and provides so much good information, it needs it's own wiki just to describe it.
Every now and again there is a loss of RF from a LaserDisc, the signal goes 'poof!' for a very short period. This is called a drop-out (so we get DO (Drop Out), DOD (Drop Out Detection) and DOC (Drop Out Correction)). These appear as annoying black/white lines in the frames. You can correct most of these dropouts using the following command:
ld-dropout-correct /my/outdisc/outputfile.tbc /my/outdisc/outputfile.doc.tbc
Again, you can view the result of this correction in ld-analyse.
As a special note (for all you Unix whizzkids) - ld-dropout-correct, ld-chroma-decoder (see below) and ffmpeg all support 'pipelining' so, if you know what you are doing, there is no need to create intermediate files as you go) and this was first automated with the vhs-decode scripts which today has ended up all rolled together in tbc-video-export the first 100% cross platform tool in the projects.
To turn NTSC or PAL time base corrected files (GREY16) into a colour image it has to be processed with a chroma-decoder (because chroma is a posh word for colour and it has to be decoded); sometimes this is called comb-filtering, but it's got nothing to do with hairstyles really, so nobody knows why.
Running the NTSC/PAL through the chroma-decoder can produce an raw YUV or RGB uncompressed stream which you can then do anything with!
Today this is all a hands off process with tbc-video-export handling files generated by the whole family of decode projects.
Linux / MacOS / Windows:
tbc-video-export Input-Media.tbc
Note
The stock FFmpeg profile is lossless compressed FFV1 10-bit 4:2:2 in the .mkv container, ld-dropout-correct
is automatically run on the tbc files used, but will not alter the original tbc files, ld-process-vbi
can also be run automatically with the tool.
This is a tricky one as there is no one-size-fits-all solution. To help with this you can look at the following wonderful wiki pages which cover audio and manual chroma decoding:
That's it, you are now an uber-user and can begin to impress your friends with your new found skills! Once you are done with that, it's worth browsing the rest of the wiki for more information and some more advanced tricks.
- Basic usage
- TBC Video Export
- PAL decode guide
- NTSC decode guide
- Working with multiple discs
- Working with subtitles
- Disc images to download
- ld-decode
- ld-analyse
- ld-chroma-decoder
- ld-process-vbi
- ld-export-metadata
- ld-dropout-correct
- ld-process-efm
- ld-discmap
- ld-disc-stacker
- ld-process-vits
- ld-lds-converter
- ld-chroma-encoder