Damian Brunold
Videokonvertierung
2011-01-08 13:31
Ich habe ein kleines Python Programm geschrieben, das mir meine Videos von AVI und MPG nach MP4/h264/aac konvertiert. Es kann jederzeit unterbrochen werden und fängt beim nächsten Start wieder am "richtigen" Ort an.
Hier der Code:
#!/usr/bin/env python3
import os
import subprocess
from os.path import exists, join, splitext
def convert():
for filename in os.listdir("."):
base, ext = splitext(filename.lower())
if not ext in [".avi", ".mpg", ".mpeg"]:
continue
if exists(join("mp4", base + ".mp4")) and exists(join("done", filename)):
continue
print("converting %s..." % filename)
subprocess.call(["ffmpeg",
"-y",
"-i", filename,
"-acodec", "libfaac", "-ab", "128k", "-ac", "2",
"-vcodec", "libx264", "-vpre", "slow", "-crf", "22",
"-threads", "0",
join("mp4", base + "_temp.mp4")])
print("faststart...")
subprocess.call(["qt-faststart",
join("mp4", base + "_temp.mp4"),
join("mp4", base + ".mp4")])
os.remove(join("mp4", base + "_temp.mp4"))
os.rename(filename, join("done", filename))
print("done")
if __name__ == "__main__":
convert()
Im Wentlichen ruft es einfach in der richtigen Reihenfolge ffmpeg und qt-faststart auf und schaut, dass alles schön geordnet abläuft. Nice...