first
This commit is contained in:
commit
5a59ef0367
1 changed files with 77 additions and 0 deletions
77
export-video.py
Executable file
77
export-video.py
Executable file
|
@ -0,0 +1,77 @@
|
|||
#!/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"])
|
Reference in a new issue