From 12241d151cdd4bb3647a9ddc16caed7b8a3a250f Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Thu, 26 Mar 2015 18:53:02 +0100 Subject: [PATCH] Add mp4 sources force transcoding --- telemeta/util/transcode/transcode.py | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/telemeta/util/transcode/transcode.py b/telemeta/util/transcode/transcode.py index 4a083350..43b7919a 100755 --- a/telemeta/util/transcode/transcode.py +++ b/telemeta/util/transcode/transcode.py @@ -16,16 +16,20 @@ class Logger: self.logger.setLevel(logging.INFO) -source_format = 'webm' + preview_tc = '00:00:05' threads = 4 -ffmpeg_args = { - 'mp3' : '-i "%s" -vn -acodec libmp3lame -aq 6 -ac 2', - 'ogg' : '-i "%s" -vn -acodec copy', +source_formats = ['webm', 'mp4'] + +dest_formats = { + 'mp3' : '-i "%s" -vn -acodec libmp3lame -aq 6', + 'ogg' : '-i "%s" -vn -acodec libvorbis -aq 6', 'mp4' : '-i "%s" -vcodec libx264 -threads ' + str(threads) + \ - ' -c:v libx264 -crf 17 -maxrate 1100k -bufsize 1835k -acodec libfaac -ab 96k -ac 2', + ' -c:v libx264 -crf 17 -maxrate 1100k -bufsize 1835k -acodec libfaac -ab 96k', 'png' : '-ss ' + preview_tc + ' -i "%s"', + 'webm' : '-i "%s" -vcodec libvpx -threads ' + str(threads) + \ + ' -c:v libvpx -crf 17 -b:v 1100k', } args = sys.argv[1:] @@ -37,13 +41,17 @@ for root, dirs, files in os.walk(root_dir): for file in files: path = os.path.abspath(root + os.sep + file) name, ext = os.path.splitext(file) - if ext[1:] == source_format: - for format in ffmpeg_args.keys(): + if ext[1:] in source_formats: + for format, ffmpeg_args in dest_formats.iteritems(): local_file = name + '.' + format dest = os.path.abspath(root + os.sep + local_file) local_files = os.listdir(root) if not local_file in local_files or '--force' in args: - command = 'ffmpeg -loglevel 0 ' + ffmpeg_args[format] % path + ' -y "' + dest + '"' + if ext[1:] == 'webm' and format == 'ogg': + ffmpeg_args = '-i "%s" -vn -acodec copy' + command = 'ffmpeg -loglevel 0 ' + ffmpeg_args % path + ' -y "' + dest + '"' logger.logger.info(command) if not '--dry-run' in args: os.system(command) + else: + print command -- 2.39.5