diff --git a/export-video.py b/export-video.py index ef97be9..f787aa3 100755 --- a/export-video.py +++ b/export-video.py @@ -10,6 +10,9 @@ import getopt import re import os import subprocess +import logging + +logging.basicConfig(format='%(levelname)s:%(message)s', level=logging.DEBUG) def usage(): @@ -43,10 +46,6 @@ params = { VERSION = "0.1dev" -def log(msg): - sys.stdout.write(msg + "\n") - - def execute(command, shell=False): """ Execute a system command and return its results. @@ -58,7 +57,7 @@ def execute(command, shell=False): stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate() except OSError as ex: - print('Could not run command %s: %s', command, ex) + logging.error('Could not run command %s: %s', command, ex) return return stdout.strip() @@ -70,20 +69,21 @@ def find_executable(exec_name): def listFile(directory, pattern, recursive): - log("searching in directory" + directory) + logging.info('searching in directory %s', directory) files_list = [] try: dirs = os.listdir(directory) except: - print("error : not a directory?") + logging.error('error : %s not a directory?', directory) return for i in dirs: if os.path.isdir(directory + "/" + i) and recursive: + logging.info('directory found : %s', i) files_list.extend(listFile(directory + "/" + i, pattern)) else: if re.search(pattern, i) is not None: - log("file found : " + i) + logging.info('file found : %s', i) files_list.append(directory + "/" + i) return files_list @@ -115,10 +115,8 @@ def processArg(sysarg): usage() sys.exit() if opt in ("-o", "--output"): - log("output spécifié " + arg) params["file_output"] = arg if opt in ("-d", "--desinterlace"): - log("desinterlace on") params["desinterlace"] = True if opt in ("-i", "--input"): params["file_input"] = arg @@ -129,16 +127,14 @@ def processArg(sysarg): if opt in ("-v", "--vbitrate"): params["vbitrate"] = arg if opt in ("-2", "--twopass"): - log("TwoPass encoding on") params["twopass"] = True if opt in ("-r", "--recursive"): - log("Recursive search of video files") params["recursive"] = True def encode_h264(src, dest): if (params["twopass"]): - log("two pass encoding started ...") + logging.debug("two pass encoding started ...") firstpass = [ exec_ffmpeg, "-y", @@ -164,7 +160,7 @@ def encode_h264(src, dest): subprocess.run(firstpass) subprocess.run(secondpass) else: - log("one pass encoding started ...") + logging.debug("one pass encoding started ...") encode = [ exec_ffmpeg, "-i", src, @@ -182,25 +178,25 @@ def encode_h264(src, dest): if __name__ == "__main__": exec_ffmpeg = find_executable("ffmpeg") if not exec_ffmpeg: - log("ffmpeg not found, exiting") + print('ffmpeg not found, exiting') sys.exit(2) - # log("export_video v" + VERSION + "FFMPEG exec " + exec_ffmpeg) + print('export_video v%s with FFMPEG %s', VERSION, exec_ffmpeg) processArg(sys.argv[1:]) if not params["file_input"]: - log("you must specify a file / directory" + params["file_input"]) + print("you must specify a file / directory input") sys.exit(2) if os.path.isdir(params["file_input"]): if os.path.isfile(params["file_output"]): - log("Can't batch export to a file! Bye Bye") + print("Can't batch export to a single file! Bye Bye") sys.exit(2) - log(params["file_input"] + " is a directory") + logging.info('%s is a directory', params["file_input"]) video_files = listFile( params["file_input"], params["pattern"], params["recursive"] ) for f in video_files: - log("batch encode | file : " + f) + logging.info('batch encode | file %s to %s', f) encode_h264(f, params["file_output"] + getFileName(f)) else: if os.path.isfile(params["file_input"]): @@ -209,9 +205,9 @@ if __name__ == "__main__": else: if(os.path.isdir(params["file_output"])): params["file_input"] += getFileName(params["file_input"]) - log(params["file_input"] + " is a file") + logging.info('%s is a file', params["file_input"]) encode_h264(params["file_input"], params["file_output"]) else: - print("input file desn't exist, bye bye") + logging.info("input file desn't exist, bye bye") sys.exit(2) sys.exit(0)