Pipelines
SAVE v1.3.x ships with two unique processing pipelines for analog video. These pipelines can be executed via scripts at the command-line. Pipelines encompass one or more processing steps that are used together to create authentic, period-accurate output. At the moment, only NTSC video is officially supported by SAVE, either via the NTSC Modem or the NTSC VHS Modem.
NTSC Modem
The NTSC Modem Pipeline in SAVE v1.3.x allows users to authentically recreate the analog broadcast video aesthetic using FFmpeg and a handful of SAVE modules. The pipeline accepts four different types of input video as follows:
- 4:3 aspect ratio, 29.97 fps (
4x3-1x
) - 4:3 aspect ratio, 59.94 fps (
4x3-2x
) - 16:9 aspect ratio, 29.97 fps (
16x9-1x
) - 16:9 aspect ratio, 59.94 fps (
16x9-2x
)
Once the input files are organized by folder into each of these categories, users can invoke the NTSC Script Pack specific to their desktop platform to perform a digital to analog to digital roundtrip of the NTSC broadcast standard. For transparency, the following key processing steps of this conversion are outlined below:
Preprocessing (FFmpeg)
- Decode from arbitrary input codec
- Rescale input frames (
NxM -> 720x480
) - Pad input frames (
720x480 -> 720x484
, expand upper edge) - Separate input into time-order half-frames (
720x484 -> 720x242
, top field first) - Encode to lossless H.264 stream
Main Processing (SAVE)
- Decode lossless H.264 stream
- NTSC modulation (
ntsc.mod
, DAC) - NTSC scanning (
ntsc.scan
) - NTSC composite demodulation (
ntsc.demod
, ADC) - NTSC comb filtering (
ntsc.comb
) - Encode to lossless H.264 stream
Postprocessing (FFmpeg)
- Decode lossless H.264 stream
- Crop input frames (
720x242 -> 720x240
, trim upper edge) - Recombine half-frames into interlaced frames (
720x240 -> 720x480
, top field first) - Encode to lossless H.264 stream
Using the Scripts (Windows)
To use the NTSC Modem in your video creation workflow on Windows PCs, navigate to your SAVE installation directory in File Explorer, then open a PowerShell / Terminal window from within. Within the SAVE installation directory you should also find a directory labeled samples
, ensure that your input files are placed within the proper subdirectories based on the criteria listed above, and in MP4 format. Next, type the following command at the Terminal prompt:
cmd /c "ntsc-scripts\process-all.cmd ""=lumagain=XXX:chromagain=XXX"""
Parameters marked above with XXX
can be substituted for decimal numbers, and will be interpreted in dBV units. You will find your output in the ntsc-output
subdirectory of your SAVE installation folder.
Using the Scripts (macOS, Linux)
To use the NTSC Modem in your video creation workflow on other platforms, navigate to your SAVE installation directory in File Explorer, then open a Terminal window from within. Within the SAVE installation directory you should also find a directory labeled samples
, ensure that your input files are placed within the proper subdirectories based on the criteria listed above, and in MP4 format. Next, type the following command at the Terminal prompt:
bash ./ntsc-scripts/process-all.sh "=lumagain=XXX:chromagain=XXX"
Parameters marked above with XXX
can be substituted for decimal numbers, and will be interpreted in dBV units. You will find your output in the ntsc-output
subdirectory of your SAVE installation folder.
NTSC VHS Modem
The NTSC Modem Pipeline in SAVE v1.3.x allows users to authentically recreate the analog video tape aesthetic using FFmpeg and a bounty of SAVE modules. The pipeline accepts four different types of input video as follows:
- 4:3 aspect ratio, 29.97 fps (
4x3-1x
) - 4:3 aspect ratio, 59.94 fps (
4x3-2x
) - 16:9 aspect ratio, 29.97 fps (
16x9-1x
) - 16:9 aspect ratio, 59.94 fps (
16x9-2x
)
Once the input files are organized by folder into each of these categories, users can invoke the NTSC Script Pack specific to their desktop platform to perform a digital to analog to digital roundtrip of the NTSC VHS standard. For transparency, the following key processing steps of this conversion are outlined below:
Preprocessing (FFmpeg)
- Decode from arbitrary input codec
- Rescale input frames (
NxM -> 720x480
) - Pad input frames (
720x480 -> 720x484
, expand upper edge) - Separate input into time-order half-frames (
720x484 -> 720x242
, top field first) - Encode to lossless H.264 stream
Main Processing (SAVE)
- Decode lossless H.264 stream
- NTSC modulation (
ntsc.mod
, DAC) - VHS modulation / demodulation (various modules)
- NTSC scanning (
ntsc.scan
) - NTSC component demodulation (
ntsc.demod3
, ADC) - Encode to lossless H.264 stream
Postprocessing (FFmpeg)
- Decode lossless H.264 stream
- Crop input frames (
720x242 -> 720x240
, trim upper edge) - Recombine half-frames into interlaced frames (
720x240 -> 720x480
, top field first) - Encode to lossless H.264 stream
Using the Scripts (Windows)
To use the NTSC VHS Modem in your video creation workflow on Windows PCs, navigate to your SAVE installation directory in File Explorer, then open a PowerShell / Terminal window from within. Within the SAVE installation directory you should also find a directory labeled samples
, ensure that your input files are placed within the proper subdirectories based on the criteria listed above, and in MP4 format. Next, type the following command at the Terminal prompt:
cmd /c "ntsc-scripts_vhs\process-all.cmd ""=lumagain=XXX:chromagain=XXX"""
Parameters marked above with XXX
can be substituted for decimal numbers, and will be interpreted in dBV units. You will find your output in the ntsc-output_vhs
subdirectory of your SAVE installation folder.
Using the Scripts (macOS, Linux)
To use the NTSC VHS Modem in your video creation workflow on other platforms, navigate to your SAVE installation directory in File Explorer, then open a Terminal window from within. Within the SAVE installation directory you should also find a directory labeled samples
, ensure that your input files are placed within the proper subdirectories based on the criteria listed above, and in MP4 format. Next, type the following command at the Terminal prompt:
bash ./ntsc-scripts_vhs/process-all.sh "=lumagain=XXX:chromagain=XXX"
Parameters marked above with XXX
can be substituted for decimal numbers, and will be interpreted in dBV units. You will find your output in the ntsc-output_vhs
subdirectory of your SAVE installation folder.