]> git.parisson.com Git - telemeta.git/commitdiff
Add mp4 transcode rules
authorGuillaume Pellerin <yomguy@parisson.com>
Thu, 26 Mar 2015 18:03:58 +0000 (19:03 +0100)
committerGuillaume Pellerin <yomguy@parisson.com>
Thu, 26 Mar 2015 18:03:58 +0000 (19:03 +0100)
tools/scripts/transcode/transcode.py

index d648ba84b746c4270e0ccba7d7784a1f4e85d48d..43b7919a26731299871f6a7e818d3b2aae02e52d 100755 (executable)
@@ -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