please add more if you have any
Degrain videos and generate grain tables
Example:
python3 degrain.py degrain -s script.vpy split denoised
python3 degrain.py generate --width 1920 --height 1080 --workers 8 split denoised tables
python3 degrain.py scale -s 1.2 graintables new_graintables
run python3 degrain.py --help
for more
Plots vmaf of two video files
Example program:
python3 plot_vmaf.py --xml plot.xml -o metrics.csv --psnr --ssim -ms_ssim
python3 plot_vmaf.py raw.mkv encoded.mkv --frames 10 -o metrics.csv
python3 plot_vmaf.py raw.mkv encoded.mkv -o image.png --csv --svg
python3 plot_vmaf.py raw.mkv encoded.mkv -o 01 --csv --png --svg
run python3 plot_vmaf.py --help
for more
This splits a video file into segments using mkv keyframes and aom keyframes.
Strategy:
split(video, path_split, min_frames=-1, max_frames=-1, cb=None)
returns: splits, total frames, segments
splits:
{
"00000": { # segment name
"segment": "00000.mkv", # segment file
"start": 0, # starting frame within the segment
"frames": 10 # number of frames
},
"00001": {
"segment": "00000.mkv",
"start": 10,
"frames": 20
}
}
total frames: total number of frames in the sequence
segments: these are the split up video files
{
"00000.mkv": { # filename
"start": 0, # starting frame within the entire video
"length": 10 # number of frames of the segment
}
}
Verify and correct splits using segments generated by split()
verify_split(video, path_split, segments, cb=None)
Uses libaom 1 pass to generate a log file
get_aom_keyframes(video)
returns: list of keyframes
Uses ebml mkv header / ffmpeg to determine location of keyframes
get_mkv_keyframes(video)
returns: list of keyframes, total number of frames