Batch processing work

This commit is contained in:
Yorick Barbanneau 2015-12-08 22:49:02 +01:00
parent 6c7ba12990
commit cb556f53d5

View file

@ -2,7 +2,9 @@
# export-video.py
# ---------------
# ré-écriture complète du script bash eponyme en python
# little python script to encode vide file for the web
#
import sys
import getopt
import re
@ -35,7 +37,8 @@ params = {
"webm_acommand": "-strict -2",
"verbose": True,
"pattern": "",
"twopass": False}
"twopass": False,
"recursive": False}
VERSION = "0.1dev"
exec_ffmpeg = os.path.join("ffmpeg")
@ -45,9 +48,8 @@ def log(msg):
sys.stdout.write(msg + "\n")
def listFile(directory, pattern):
if params["verbose"]:
print("searching in directory", directory)
def listFile(directory, pattern, recursive):
log("searching in directory" + directory)
files_list = []
try:
dirs = os.listdir(directory)
@ -56,10 +58,11 @@ def listFile(directory, pattern):
return
for i in dirs:
if os.path.isdir(directory + "/" + i):
if os.path.isdir(directory + "/" + i) and recursive:
files_list.extend(listFile(directory + "/" + i, pattern))
else:
if re.search(pattern, i) is not None:
log("file found : " + i)
files_list.append(directory + "/" + i)
return files_list
@ -106,7 +109,10 @@ def processArg(sysarg):
params["vbitrate"] = arg
if opt in ("-2", "--twopass"):
log("TwoPass encoding on")
params["twopass"] == True
params["twopass"] = True
if opt in ("-r", "--recursive"):
log("Recursive search of video files")
params["recursive"] = True
def encode_h264(src, dest):
@ -134,8 +140,8 @@ def encode_h264(src, dest):
] + params["h264_acommand"] + [
dest+".mp4"
]
subprocess.call(firstpass)
subprocess.call(secondpass)
subprocess.run(firstpass)
subprocess.run(secondpass)
else:
log("one pass encoding started ...")
encode = [
@ -146,24 +152,34 @@ def encode_h264(src, dest):
] + params["h264_vcommand"] + [
"-b:a", params["abitrate"]
] + params["h264_acommand"] + [
dest+".mp4"
dest+".mp4",
"-loglevel", "quiet"
]
subprocess.call(encode)
subprocess.run(encode)
if __name__ == "__main__":
log("export_video v" + VERSION + "FFMPEG exec " + exec_ffmpeg)
processArg(sys.argv[1:])
if not params["file_input"]:
print("you must specify a file / directory" + params["file_input"])
log("you must specify a file / directory" + params["file_input"])
sys.exit(2)
if os.path.isdir(params["file_input"]):
if params["verbose"]:
log(params["file_input"]+" is a directory")
video_files = listFile(params["file_input"], params["pattern"])
if os.path.isfile(params["file_output"]):
log("Can't batch export to a file! Bye Bye")
sys.exit(2)
log(params["file_input"] + " is a directory")
video_files = listFile(
params["file_input"],
params["pattern"],
params["recursive"]
)
for f in video_files:
log("batch encode | file : " + f)
encode_h264(f, params["file_output"] + getFileName(f))
else:
if os.path.isfile(params["file_input"]):
if (params["file_output"]):
if not params["file_output"]:
params["file_output"] = getFileName(params["file_input"])
else:
if(os.path.isdir(params["file_output"])):