#!/usr/bin/env python # export-video.py # --------------- # ré-écriture complète du script bash eponyme en python import sys, getopt, re, os def usage (): print ("export-video -i input -o output [-d --desinterlace]") params = {\ "desinterlace":False,\ "file_output":"video",\ "file_input":"",\ "video_bitrate":"600k",\ "audio_bitrate":"96k",\ "video_quality":"good",\ "h264_vcommand":"-trellis 0 -me_method umh -subq 8 -me_range 16 -bf 3 -rc_lookahead 16 -g 250",\ "h264_acommand":"-strict -2'",\ "webm_vcommand":"rc_lookahead 16 -keyint_min 0 -g 250 -skip_threshold 0 -level 116 -bufsize 500k",\ "webm_acommand":"-strict -2",\ "verbose":True,\ "pattern":""} VERSION = "0.1dev" ffmpeg = "" def listFile (directory, pattern): if params["verbose"]: print ("searching in directory" , directory) files_list=[] try: dirs = os.listdir(directory) except notDirectory: print ("error : not a directory?") return for i in dirs: if os.path.isdir(directory+"/"+i): files_list.extend(listFile(directory+"/"+i, pattern)) else: if re.search(pattern, i) is not None: files_list.append(directory + "/"+ i) return files_list def processArg (sysarg): output = "video" try: opts, args = getopt.getopt(sysarg, "hi:o:dp:", ["help","input=" "output=", "desinterlace", "pattern="]) except getopt.GetoptError: usage() sys.exit(2) for opt, arg in opts: if opt in ("-h, --help"): usage() sys.exit() if opt in ("-o", "--output"): print ("output spécifié " + arg) params["file_output"] = arg if opt in ("-d","--desinterlace"): print ("desinterlace on") params["desinterlace"] = True if opt in ("-i","--input"): params["file_input"] = arg if opt in ("-p", "--pattern"): params["pattern"] = "^\\w*."+arg+"$" if __name__ == "__main__": processArg(sys.argv[1:]) if not params["file_input"]: print ("you must specify a file / directory" + params["file_input"]) sys.exit(2) if os.path.isdir (params["file_input"]): if params["verbose"]: print (params["file_input"], " is a directory") video_files = listFile(params["file_input"], params["pattern"])