From: Guillaume Pellerin Date: Thu, 26 Mar 2015 18:03:58 +0000 (+0100) Subject: Add mp4 transcode rules X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=b24533dd50dd3ffc8fc414dccb3c8e28e1336f35;p=telemeta.git Add mp4 transcode rules --- diff --git a/tools/scripts/transcode/transcode.py b/tools/scripts/transcode/transcode.py index d648ba84..43b7919a 100755 --- a/tools/scripts/transcode/transcode.py +++ b/tools/scripts/transcode/transcode.py @@ -16,15 +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 1', - 'ogg' : '-i "%s" -vn -acodec copy', - 'mp4' : '-i "%s" -vcodec libx264 -r 30 -b 1024k -threads ' + str(threads) + ' -acodec libfaac -ar 48000 -ab 96k -ac 1', -# 'png' : '-ss ' + preview_tc + ' -i "%s"', +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', + '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:] @@ -36,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