Add jpeg extract functionnality (for cover image)

This commit is contained in:
Yorick Barbanneau 2015-12-13 21:15:21 +01:00
parent fe51e567ab
commit a14825c79a

View file

@ -42,7 +42,10 @@ params = {
"verbose": True,
"pattern": "*",
"twopass": False,
"recursive": False}
"recursive": False,
"format": [],
"delay": ""
}
VERSION = "0.1dev"
@ -124,7 +127,7 @@ def process_arg(sysarg):
"""
try:
opts, args = getopt.getopt(
sysarg, "hi:o:dp:a:v:2",
sysarg, "hi:o:dp:a:v:2f:t:",
[
"help",
"input=",
@ -133,7 +136,9 @@ def process_arg(sysarg):
"pattern=",
"abitrate=",
"vbitrate=",
"twopass"
"twopass",
"format=",
"delay="
]
)
except getopt.GetoptError:
@ -161,6 +166,10 @@ def process_arg(sysarg):
params["twopass"] = True
if opt in ("-r", "--recursive"):
params["recursive"] = True
if opt in ("-f", "--format"):
params["format"] = arg
if opt in ("-t", "--delay"):
params["delay"] = arg
def encode_h264(src, dest):
@ -212,12 +221,36 @@ def encode_h264(src, dest):
execute(encode)
def extract_jpg(src, dest, delay):
"""
Extract an image from a video file
"""
logging.info(
"extract_jpeg() started to %s from %s with %s s delay",
src,
dest,
delay
)
encode = [
EXEC_FFMPEG,
"-ss", delay,
"-i", src,
"-f", "image2",
"-vframes", "1",
dest+".jpg"
]
logging.debug(encode)
execute(encode)
if __name__ == "__main__":
EXEC_FFMPEG = find_executable("ffmpeg")
if not EXEC_FFMPEG:
print('ffmpeg not found, exiting')
sys.exit(2)
process_arg(sys.argv[1:])
if not params["format"]:
params["format"] = ["mp4", "jpg"]
if not params["file_input"]:
print("you must specify a file / directory input")
sys.exit(2)
@ -233,9 +266,20 @@ if __name__ == "__main__":
)
for f in video_files:
logging.info('batch encode | file %s', f)
encode_h264(f, os.path.join(
params["file_output"], get_file_name(f)
))
if "mp4" in params["format"]:
encode_h264(f, os.path.join(
params["file_output"], get_file_name(f)
))
if "jpg" in params["format"]:
extract_jpg(
f,
os.path.join(
params["file_output"],
get_file_name(f)
),
params["delay"]
)
else:
if os.path.isfile(params["file_input"]):
if not params["file_output"]:
@ -247,7 +291,15 @@ if __name__ == "__main__":
get_file_name(params["file_input"])
)
logging.info('%s is a file', params["file_input"])
encode_h264(params["file_input"], params["file_output"])
if "mp4" in params["format"]:
encode_h264(params["file_input"], params["file_output"])
if "jpg" in params["format"]:
extract_jpg(
params["file_input"],
params["file_output"],
params["delay"]
)
else:
logging.info("input file desn't exist, bye bye")
sys.exit(2)