encode
This commit is contained in:
parent
cbf25abfbc
commit
8027fce02e
1 changed files with 48 additions and 0 deletions
48
encode.py
Executable file
48
encode.py
Executable file
|
@ -0,0 +1,48 @@
|
||||||
|
#! /usr/bin/env python3
|
||||||
|
|
||||||
|
import os
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
|
||||||
|
def encode(input_file, output_file):
|
||||||
|
output_directory = os.path.dirname(output_file)
|
||||||
|
os.makedirs(output_directory, exist_ok=True)
|
||||||
|
if not os.path.exists(output_file):
|
||||||
|
subprocess.call([
|
||||||
|
'ffmpeg',
|
||||||
|
'-i', input_file,
|
||||||
|
'-codec:a', 'libopus',
|
||||||
|
'-codec:v', 'libx264',
|
||||||
|
'-preset', 'veryslow',
|
||||||
|
'-qp', '23',
|
||||||
|
'-movflags', '+faststart',
|
||||||
|
'-pix_fmt', 'yuv420p',
|
||||||
|
output_file
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
file = os.path.realpath(__file__)
|
||||||
|
root = os.path.dirname(file)
|
||||||
|
raw_root = os.path.join(root, 'raw')
|
||||||
|
web_root = os.path.join(root, 'web')
|
||||||
|
print(f'← {raw_root}')
|
||||||
|
print(f'→ {web_root}')
|
||||||
|
tasks = []
|
||||||
|
for directory, directories, files in os.walk(raw_root):
|
||||||
|
for file in files:
|
||||||
|
relative_directory = os.path.relpath(directory, raw_root)
|
||||||
|
name, ext = os.path.splitext(file)
|
||||||
|
relative_name = os.path.join(relative_directory, name)
|
||||||
|
tasks.append((relative_name, ext))
|
||||||
|
for relative_name, ext in sorted(tasks):
|
||||||
|
raw_file = os.path.join(raw_root, f'{relative_name}{ext}')
|
||||||
|
web_file = os.path.join(web_root, f'{relative_name}.mp4')
|
||||||
|
print()
|
||||||
|
print(f'← {raw_file}')
|
||||||
|
print(f'→ {web_file}')
|
||||||
|
encode(raw_file, web_file)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
Loading…
Reference in a new issue