Skip to content

Latest commit

 

History

History
82 lines (61 loc) · 2.49 KB

README.md

File metadata and controls

82 lines (61 loc) · 2.49 KB

Scripts

auto_downmix.py

Input any surround audio file and you will get a volume normalized Opus stereo output. Doesn't check for clipping but I've never noticed any blatant one. Feel free to improve and PR. The requirements are Ffmpeg and opusenc.

Usage:

python auto_downmix.py "{surround_file_path}" {bitrate}

Example:

python auto_downmix.py "i/dont/have/a/surround/setup.eac3" 128

svt-av1_keyframes.py

Runs a scene detection algorithm that determines the keyframes placement in a video, generates a svt_keyframes.cfg file to feed SVT-AV1. The requirements are Vapoursynth, vstools, LSMASHSource, vapoursynth-wwxd, vapoursynth-scxvid and maybe some other thing? You tell me.

Usage:

python svt-av1_keyframes.py --help

Example:

python svt-av1_keyframes.py "path/to/nice_boat.mkv" --overwrite --method accurate++ --min_kf_dist 12 --max_kf_dist 300

Notes:

  • I made this because standalone SVT-AV1 would run faster than chunked SVT-AV1 in Av1an on my 4-core system (basically the overhead of starting new encoder instances was greater than the gains offered by a chunked encoding approach)
  • One major limitation is that you cannot (really) resume nor zone your encodes anymore
  • This also serves to document how to use the config file for manual keyframe placement in SVT-AV1
  • The accurate++ method isn't normally necessary, it's only there in case your source showcase blatant false positives.

json_to_config.py

Converts any scenes.json file generated by Av1an to a config file to feed SVT-AV1. No requirements.

Usage:

python json_to_config.py "{json_file_path}"

Example:

python json_to_config.py "path/to/scenes.json"

config_offset.py

Applies a positive or negative offset to all frames in a given config file. No requirements.

Usage:

python config_offset.py "{config_file_path}" {offset}

Example:

python config_offset.py "path/to/svt_keyframes.cfg" -69

list_languages.py

Prints the language or title of all subtitles tracks in a file using the tracks' tags. The requirements are Ffmpeg (ffprobe in PATH) and my fork of ffprobe-python.

Usage:

python list_languages.py "{video_file_path}" {language/title}

Example:

python list_languages.py "path/to/nice_boat.mkv" title