Upload generate_keyframes.py

This commit is contained in:
LightArrowsEXE 2019-07-14 15:12:16 +02:00
parent d2a5d265fa
commit dbbe0f9486

53
generate_keyframes.py Normal file
View file

@ -0,0 +1,53 @@
#!/usr/bin/env python
"""
Generic script to generate keyframes for all files of a given extension using kagefunc's generate_keyframes function.
"""
import glob
import argparse
import os
import vapoursynth as vs
import kagefunc as kgf
import fvsfunc as fvf
core = vs.core
def generate_keyframes():
if args.recursive:
files = glob.glob('**/*', recursive=True)
else:
files = glob.glob('*')
if args.ext:
ext_in = args.ext
else:
ext_in = "mkv"
for f in files:
if f.endswith(ext_in):
print(f"Generating keyframes for {f}:")
if f.endswith(".m2ts"):
src = core.lsmas.LWLibavSource(f)
else:
src = core.ffms2.Source(f)
src = fvf.Depth(src, 8)
kgf.generate_keyframes(src, os.path.abspath(f"{f}_keyframes.txt"))
if f.endswith(".m2ts"):
try:
os.remove(f"{f}.lwi")
except OSError:
pass
else:
try:
os.remove(f"{f}.ffindex")
except OSError:
pass
else:
pass
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("-R", "--recursive",
help="check recursively", action="store_true")
parser.add_argument("-E", "--ext", help="pick extension to generate keyframes for")
args = parser.parse_args()
generate_keyframes()