From 1b29aaf822d5a0e1f534d3c3419271491583433f Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Thu, 22 Dec 2022 12:24:11 +0100 Subject: [PATCH] add transcode script with libx264 --- bin/{transcode_nv2.py => transcode_nonv.py} | 20 ++++++++++++-------- bin/transcode_nv.py | 4 +--- 2 files changed, 13 insertions(+), 11 deletions(-) rename bin/{transcode_nv2.py => transcode_nonv.py} (74%) diff --git a/bin/transcode_nv2.py b/bin/transcode_nonv.py similarity index 74% rename from bin/transcode_nv2.py rename to bin/transcode_nonv.py index 40b8faa..7ac7980 100644 --- a/bin/transcode_nv2.py +++ b/bin/transcode_nonv.py @@ -2,6 +2,7 @@ import os, sys, string import logging +import datetime class Logger: @@ -19,21 +20,22 @@ class Logger: class TelemetaTranscode(object): """docstring for TelemetaTranscode""" - threads = 4 source_formats = ['webm',] - dest_formats = { - 'mp3' : '-vn -acodec libmp3lame -aq 3', - 'mp4' : '-c:v h264_nvenc -maxrate 1100k -c:a aac -b:a 96k', + + dest_formats_nonv = { + 'mp3' : '-vn -acodec libmp3lame -aq 6', + 'mp4' : '-c:v libx264 -crf 17 -maxrate 1100k -bufsize 1835k -c:a aac -b:a 128k', 'png' : '-ss 0:0:10', } + date_limit = datetime.datetime(year=2021, month=6, day=24) + def __init__(self, args): self.args = args self.log_file = args[-1] self.root_dir = args[-2] self.logger = Logger(self.log_file) - def get_ext_in_dir(self, extension, root): files = os.listdir(root) exts = [] @@ -50,7 +52,9 @@ class TelemetaTranscode(object): path = os.path.abspath(root + os.sep + file) name, ext = os.path.splitext(file) ext = ext[1:] - if ext in self.source_formats: + date_dir = datetime.datetime.fromtimestamp(os.path.getmtime(path)) + if ext in self.source_formats and date_dir > self.date_limit: + print(date_dir) for format, ffmpeg_args in self.dest_formats.iteritems(): local_file = name + '.' + format dest = os.path.abspath(root + os.sep + local_file) @@ -59,9 +63,9 @@ class TelemetaTranscode(object): if ext == 'webm' and format == 'ogg': ffmpeg_args = '-vn -acodec copy' if format == 'png': - command = 'ffmpeg -loglevel 0 ' + ffmpeg_args + ' -i "' + path + '" -frames:v 1 -y "' + dest + '"' + command = '/usr/local/bin/ffmpeg -loglevel 0 ' + ffmpeg_args + ' -i "' + path + '" -frames:v 1 -y "' + dest + '"' else: - command = 'ffmpeg -loglevel 0 -i "' + path + '" ' + ffmpeg_args + ' -y "' + dest + '"' + command = '/usr/local/bin/ffmpeg -loglevel 0 -i "' + path + '" ' + ffmpeg_args + ' -y "' + dest + '"' self.logger.logger.info(command) if not '--dry-run' in self.args: os.system(command) diff --git a/bin/transcode_nv.py b/bin/transcode_nv.py index b832ae5..c621e52 100644 --- a/bin/transcode_nv.py +++ b/bin/transcode_nv.py @@ -20,8 +20,7 @@ class Logger: class TelemetaTranscode(object): """docstring for TelemetaTranscode""" - threads = 4 - source_formats = ['webm', 'mp4'] + source_formats = ['webm',] dest_formats = { 'mp3' : '-vn -acodec libmp3lame -aq 6', 'mp4' : '-c:v h264_nvenc -maxrate 1100k -c:a aac -b:a 128k', @@ -36,7 +35,6 @@ class TelemetaTranscode(object): self.root_dir = args[-2] self.logger = Logger(self.log_file) - def get_ext_in_dir(self, extension, root): files = os.listdir(root) exts = [] -- 2.39.5