From: Guillaume Pellerin Date: Tue, 23 Apr 2024 15:39:56 +0000 (+0200) Subject: add input and output formats args X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=3afeeebafae6463c426d776be77d13b9d8880d88;p=telecaster-server.git add input and output formats args --- diff --git a/bin/mastering/mastering.py b/bin/mastering/mastering.py index 88503d9..2bb2296 100755 --- a/bin/mastering/mastering.py +++ b/bin/mastering/mastering.py @@ -27,9 +27,9 @@ class Logger: class TeleCasterMastering(object): """docstring for TelemetaTranscode""" - source_formats = ['webm',] + source_formats = ['webm', 'mp4'] dest_formats = { - # 'mp3' : {'in': '', 'out': '-vn -acodec libmp3lame -aq 6'}, + 'mp3' : {'in': '', 'out': '-vn -acodec libmp3lame -aq 6'}, 'mp4' : {'in': '', 'out': '-c:v libx264-c:a aac -b:a 96k'}, 'jpg' : {'in': '-ss 0:0:10', 'out': '-frames:v 1 -y'} } @@ -47,24 +47,43 @@ class TeleCasterMastering(object): auto_offset_mode=False, dry_run=False, force_mode=False, - verbose_mode=False): + verbose_mode=False, + input_formats=None, + output_formats=None, + ): self.log_file = log_file self.logger = Logger(self.log_file) self.root_dir = root_dir + self.nvidia_mode = nvidia_mode if self.nvidia_mode: for f in self.nvidia_formats: self.dest_formats[f] = self.nvidia_formats[f] + self.vaapi_mode = vaapi_mode if self.vaapi_mode: for f in self.vaapi_formats: self.dest_formats[f] = self.vaapi_formats[f] + self.auto_offset_mode = auto_offset_mode self.dry_run = dry_run self.force_mode = force_mode self.verbose_mode = verbose_mode + if input_formats: + self.input_formats = input_formats + else: + self.input_formats = self.source_formats + + if output_formats: + self.output_formats = output_formats + else: + self.output_formats = self.dest_formats + + print(self.input_formats) + print(self.output_formats) + def get_ext_in_dir(self, extension, root): files = os.listdir(root) exts = [] @@ -160,6 +179,9 @@ class TeleCasterMastering(object): if ext[1:] in self.source_formats: source_files.append(path + os.sep + file) + if self.verbose_mode: + print(source_files) + if source_files: offsets = {} if len(source_files) > 1 and self.auto_offset_mode: @@ -183,15 +205,19 @@ class TeleCasterMastering(object): def main(): parser = argparse.ArgumentParser() - parser.add_argument('--dir', metavar='directory', type=str, help='media directory') - parser.add_argument('--log', metavar='logfile', type=str, help='log file', default='/tmp/telecaster.log') - parser.add_argument('--nvidia', help='use GPU nvidia encoder', action="store_true") - parser.add_argument('--vaapi', help='use VAAPI encoder', action="store_true") - parser.add_argument('--auto_offset', help='add auto offset based on audio correlation', action="store_true") - parser.add_argument('--dry_run', help='dry run', action="store_true") - parser.add_argument('--force', help='force mode', action="store_true") - parser.add_argument('--verbose', help='verbose mode', action="store_true") + parser.add_argument('-d', '--dir', metavar='directory', type=str, help='media directory') + parser.add_argument('-l', '--log', metavar='logfile', type=str, help='log file', default='/tmp/telecaster.log') + parser.add_argument('-nv', '--nvidia', help='use GPU nvidia encoder', action="store_true") + parser.add_argument('-va', '--vaapi', help='use VAAPI encoder', action="store_true") + parser.add_argument('-ao', '--auto_offset', help='add auto offset based on audio correlation', action="store_true") + parser.add_argument('-dr', '--dry_run', help='dry run', action="store_true") + parser.add_argument('-f', '--force', help='force mode', action="store_true") + parser.add_argument('-v', '--verbose', help='verbose mode', action="store_true") + parser.add_argument('-i','--input_formats', nargs='+', help='Required input formats', required=True) + parser.add_argument('-o','--output_formats', nargs='+', help='Required output formats', required=True) + args = parser.parse_args() + t = TeleCasterMastering( args.dir, log_file=args.log, @@ -199,8 +225,11 @@ def main(): vaapi_mode=args.vaapi, auto_offset_mode=args.auto_offset, dry_run=args.dry_run, - verbose_mode=args.verbose + verbose_mode=args.verbose, + input_formats=args.input_formats, + output_formats=args.output_formats, ) + t.run() diff --git a/bin/publishing/telecaster_master-ae.sh b/bin/publishing/telecaster_master-ae.sh index ddc9f5c..5eaa0d8 100755 --- a/bin/publishing/telecaster_master-ae.sh +++ b/bin/publishing/telecaster_master-ae.sh @@ -20,7 +20,7 @@ emails="webmaster@parisson.com,jeannot@parisson.com" subject="TeleCaster remux ($departement)" bwlimit=20000 -python3 $telecaster_server/bin/mastering/mastering.py --nvidia --dir $media_dir --log $mastering_log +python3 $telecaster_server/bin/mastering/mastering.py --nvidia --dir $media_dir --log $mastering_log -i webm -o mp4 jpg rsync -auLKr --bwlimit=$bwlimit --include="*/" --include="$year/**" --include="$year2/**" --exclude="*.webm" --exclude="@eaDir" $media_dir $media_server:$server_media_dir diff --git a/bin/publishing/telecaster_master-crfpa-mp4-staging.sh b/bin/publishing/telecaster_master-crfpa-mp4-staging.sh index 9c82abf..cd798b3 100755 --- a/bin/publishing/telecaster_master-crfpa-mp4-staging.sh +++ b/bin/publishing/telecaster_master-crfpa-mp4-staging.sh @@ -16,7 +16,7 @@ emails="webmaster@parisson.com,jeannot@parisson.com" subject="TeleCaster remux (CRFPA)" bwlimit=20000 -python3 $telecaster_server/bin/mastering/mastering.py --nvidia --dir $local_media_dir --log $mastering_log +python3 $telecaster_server/bin/mastering/mastering.py --nvidia --dir $local_media_dir --log $mastering_log -i webm -o mp4 jpg #find $backup_dir -type d -exec chmod 755 {} \; #find $backup_dir -type f -exec chmod 644 {} \; diff --git a/bin/publishing/telecaster_master-crfpa-mp4.sh b/bin/publishing/telecaster_master-crfpa-mp4.sh index 1191a46..789f8a3 100755 --- a/bin/publishing/telecaster_master-crfpa-mp4.sh +++ b/bin/publishing/telecaster_master-crfpa-mp4.sh @@ -16,7 +16,7 @@ emails="webmaster@parisson.com,jeannot@parisson.com" subject="TeleCaster remux (CRFPA)" bwlimit=20000 -python3 $telecaster_server/bin/mastering/mastering.py --nvidia --dir $local_media_dir --log $mastering_log +python3 $telecaster_server/bin/mastering/mastering.py --nvidia --dir $local_media_dir --log $mastering_log -i webm -o mp4 jpg #find $backup_dir -type d -exec chmod 755 {} \; #find $backup_dir -type f -exec chmod 644 {} \; diff --git a/bin/publishing/telecaster_master-pro.sh b/bin/publishing/telecaster_master-pro.sh index 9afabc9..d29b7df 100755 --- a/bin/publishing/telecaster_master-pro.sh +++ b/bin/publishing/telecaster_master-pro.sh @@ -18,9 +18,12 @@ for y in `seq $(($year)) $(($year+1))`; do server_media_dir="/mnt/prob-videos/Pre-Barreau/Pro-Barreau/Final/$y/" archives_media_dir="/home/telecaster/archives/Pre-Barreau/Pro-Barreau/$y/" - python3 $telecaster_server/bin/mastering/mastering.py --nvidia --auto_offset --dir $archives_media_dir --log $mastering_log + python3 $telecaster_server/bin/mastering/mastering.py --nvidia --auto_offset --dir $archives_media_dir --log $mastering_log -i webm -o mp4 jpg + + python3 $telecaster_server/bin/mastering/mastering.py --dir $local_media_dir --log $mastering_log -i mp4 -o mp3 jpg chmod -fR 664 $local_media_dir; chmod -fR +rX $local_media_dir + rsync -aquLKP --bwlimit=15000 --delete --exclude="@eaDir" $local_media_dir $server:$server_media_dir #ssh $server chmod -R 664 $server_media_dir