From: Guillaume Pellerin Date: Mon, 5 Jun 2023 13:45:04 +0000 (+0200) Subject: mv X-Git-Tag: 2.1~8 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=8925e4104daec04c7fc56d0d64529059e92bbc21;p=telecaster-server.git mv --- diff --git a/bin/master/py/create_thumbs.py b/bin/master/py/create_thumbs.py deleted file mode 100644 index dc3fd20..0000000 --- a/bin/master/py/create_thumbs.py +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/python - -import os, sys, string -import logging - -class Logger: - """A logging object""" - - def __init__(self, file): - self.logger = logging.getLogger('myapp') - self.hdlr = logging.FileHandler(file) - self.formatter = logging.Formatter('%(message)s') - self.hdlr.setFormatter(self.formatter) - self.logger.addHandler(self.hdlr) - self.logger.setLevel(logging.INFO) - -log_file = 'thumbs.log' -logger = Logger(log_file) -root_dir = sys.argv[-1] -args = sys.argv[1:-1] -source_format = 'webm' -done = [] -preview_tc = '00:00:05' - -if os.path.exists(log_file): - f = open(log_file, 'r') - for line in f.readlines(): - done.append(line[:-1]) - f.close() - -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: - dest = os.path.abspath(root + os.sep + name + '.png') - if not dest in done or '--force' in args: - command = 'ffmpeg -ss '+ preview_tc + ' -i ' + path + ' -y ' + dest - os.system(command) - logger.logger.info(dest) - -print "DONE!" diff --git a/bin/master/py/remux_fix_media.py b/bin/master/py/remux_fix_media.py deleted file mode 100644 index 895fc93..0000000 --- a/bin/master/py/remux_fix_media.py +++ /dev/null @@ -1,113 +0,0 @@ -#!/usr/bin/python - -import os, sys, psutil -import datetime -from ebml.utils.ebml_data import * - -class FixCheckMedia(object): - - def __init__(self, dir, tmp_dir): - self.dir = dir - self.tmp_dir = tmp_dir - if not os.path.exists(self.tmp_dir): - os.makedirs(self.tmp_dir) - - def process(self): - webm_fixed_log = 'webm.fixed' - webm_tofix_log = 'webm.tofix' - mp3_fixed_log = 'mp3.fixed' - mp3_tofix_log = 'mp3.tofix' - - for root, dirs, files in os.walk(self.dir): - for filename in files: - source = root + os.sep + filename - name = os.path.splitext(filename)[0] - ext = os.path.splitext(filename)[1][1:] - - if (ext == 'webm' or ext == 'mp4') and os.path.getsize(source): - dir_files = os.listdir(root) - - if not webm_fixed_log in dir_files: - print(source) - self.fix_webm(source) - f = open(root + os.sep + webm_fixed_log, 'w') - f.close() - if os.path.exists(root + os.sep + webm_tofix_log): - os.remove(root + os.sep + webm_tofix_log) - - if mp3_tofix_log in dir_files or not mp3_fixed_log in dir_files: - for file in dir_files: - dest_ext = os.path.splitext(file)[1][1:] - if dest_ext == 'mp3': - dest = root + os.sep + file - print(dest) - self.fix_mp3(source, dest) - f = open(root + os.sep + mp3_fixed_log, 'w') - f.close() - if os.path.exists(root + os.sep + mp3_tofix_log): - os.remove(root + os.sep + mp3_tofix_log) - #break - - - def hard_fix_webm(self, path): - try: - tmp_file = self.tmp_dir + 'out.webm ' - command = 'ffmpeg -loglevel 0 -i "'+ path + '" -vcodec libvpx -vb 1500k -acodec libvorbis -aq 7 -f webm -y "' + tmp_file + '" > /dev/null' - print(command) - os.system(command) - command = 'mv ' + tmp_file + path - os.system(command) - except: - pass - - - def fix_webm(self, path): - try: - tmp_file = self.tmp_dir + 'out.webm' - command = '/usr/local/bin/ffmpeg -loglevel 0 -i "' + path + '" -vcodec copy -acodec copy -f webm -y "' + tmp_file + '" > /dev/null' - print(command) - os.system(command) - #ebml_obj = EBMLData(tmp_file) - #offset = ebml_obj.get_first_cluster_seconds() - command = '/usr/local/bin/ffmpeg -loglevel 0 -i "' + tmp_file + '" -vcodec copy -acodec copy -f webm -y "' + path + '" > /dev/null' - print(command) - os.system(command) - except: - pass - - def fix_mp3(self, source, path): - try: - command = '/usr/local/bin/ffmpeg -loglevel 0 -i "'+ source + '" -vn -aq 6 -y "' + path + '" > /dev/null' - print(command) - os.system(command) - except: - pass - -def get_pids(name, args=None): - """Get a process pid filtered by arguments and uid""" - pids = [] - for proc in psutil.process_iter(): - if proc.cmdline: - if name == proc.name: - if args: - if args in proc.cmdline: - pids.append(proc.pid) - else: - pids.append(proc.pid) - return pids - -dir = sys.argv[-2] -tmp_dir = sys.argv[-1] - -path = os.path.abspath(__file__) -pids = get_pids('python2.6',args=path) - -print(datetime.datetime.now()) -if len(pids) <= 1: - print('starting process...') - f = FixCheckMedia(dir, tmp_dir) - f.process() - print('process finished.\n') -else: - print('already started !\n') - diff --git a/bin/master/py/transcode.py b/bin/master/py/transcode.py deleted file mode 100644 index 12719e6..0000000 --- a/bin/master/py/transcode.py +++ /dev/null @@ -1,76 +0,0 @@ -#!/usr/bin/python - -import os, sys, string -import logging - - -class Logger: - """A logging object""" - - def __init__(self, file): - self.logger = logging.getLogger('myapp') - self.hdlr = logging.FileHandler(file) - self.formatter = logging.Formatter('%(asctime)s %(message)s') - self.hdlr.setFormatter(self.formatter) - self.logger.addHandler(self.hdlr) - self.logger.setLevel(logging.INFO) - - -class TelemetaTranscode(object): - """docstring for TelemetaTranscode""" - - threads = 4 - source_formats = ['webm', 'mp4'] - dest_formats = { - 'mp3' : '-vn -acodec libmp3lame -aq 6', - 'ogg' : '-vn -acodec libvorbis -aq 6', - 'mp4' : '-vcodec libx264 -threads ' + str(threads) + \ - ' -c:v libx264 -crf 17 -maxrate 1100k -bufsize 1835k -acodec aac -strict -2 -ab 96k', - 'png' : '-ss 0:0:10', - 'webm' : '-vcodec libvpx -threads ' + str(threads) + \ - ' -c:v libvpx -crf 17 -b:v 1100k', - } - - - 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 = [] - for f in files: - name, ext = os.path.splitext(f) - ext = ext[1:] - if not ext in exts: - exts.append(ext) - return extension in exts - - def run(self): - for root, dirs, files in os.walk(self.root_dir): - for file in files: - path = os.path.abspath(root + os.sep + file) - name, ext = os.path.splitext(file) - ext = ext[1:] - if ext in self.source_formats: - for format, ffmpeg_args in self.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 self.get_ext_in_dir(format, root)) or '--force' in self.args: - if ext == 'webm' and format == 'ogg': - ffmpeg_args = '-vn -acodec copy' - command = 'ffmpeg -loglevel 0 -i "' + path + '" ' + ffmpeg_args + ' -y "' + dest + '"' - self.logger.logger.info(command) - if not '--dry-run' in self.args: - os.system(command) - else: - print command - - -if __name__ == '__main__': - t = TelemetaTranscode(sys.argv[1:]) - t.run() diff --git a/bin/master/py/transcode_nonv.py b/bin/master/py/transcode_nonv.py deleted file mode 100644 index ec450a3..0000000 --- a/bin/master/py/transcode_nonv.py +++ /dev/null @@ -1,76 +0,0 @@ -#!/usr/bin/python - -import os, sys, string -import logging -import datetime - - -class Logger: - """A logging object""" - - def __init__(self, file): - self.logger = logging.getLogger('myapp') - self.hdlr = logging.FileHandler(file) - self.formatter = logging.Formatter('%(asctime)s %(message)s') - self.hdlr.setFormatter(self.formatter) - self.logger.addHandler(self.hdlr) - self.logger.setLevel(logging.INFO) - - -class TelemetaTranscode(object): - """docstring for TelemetaTranscode""" - - source_formats = ['webm',] - - dest_formats = { - '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 = [] - for f in files: - name, ext = os.path.splitext(f) - ext = ext[1:] - if not ext in exts: - exts.append(ext) - return extension in exts - - def run(self): - for root, dirs, files in os.walk(self.root_dir): - for file in files: - path = os.path.abspath(root + os.sep + file) - name, ext = os.path.splitext(file) - ext = ext[1:] - date_dir = datetime.datetime.fromtimestamp(os.path.getmtime(path)) - if ext in self.source_formats and date_dir > self.date_limit: - for format, ffmpeg_args in self.dest_formats.items(): - 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 self.get_ext_in_dir(format, root)) or '--force' in self.args: - if ext == 'webm' and format == 'ogg': - ffmpeg_args = '-vn -acodec copy' - if format == 'png': - command = '/usr/local/bin/ffmpeg -loglevel 0 ' + ffmpeg_args + ' -i "' + path + '" -frames:v 1 -y "' + dest + '"' - else: - 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) - print(command) - - -if __name__ == '__main__': - t = TelemetaTranscode(sys.argv[1:]) - t.run() diff --git a/bin/master/py/transcode_nv-pro.py b/bin/master/py/transcode_nv-pro.py deleted file mode 100644 index 1c0161f..0000000 --- a/bin/master/py/transcode_nv-pro.py +++ /dev/null @@ -1,75 +0,0 @@ -#!/usr/bin/python - -import os, sys, string -import logging -import datetime - - -class Logger: - """A logging object""" - - def __init__(self, file): - self.logger = logging.getLogger('myapp') - self.hdlr = logging.FileHandler(file) - self.formatter = logging.Formatter('%(asctime)s %(message)s') - self.hdlr.setFormatter(self.formatter) - self.logger.addHandler(self.hdlr) - self.logger.setLevel(logging.INFO) - - -class TelemetaTranscode(object): - """docstring for TelemetaTranscode""" - - source_formats = ['webm',] - dest_formats = { - 'mp3' : '-vn -acodec libmp3lame -aq 6', - 'mp4' : '-c:v h264_nvenc -maxrate 1100k -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 = [] - for f in files: - name, ext = os.path.splitext(f) - ext = ext[1:] - if not ext in exts: - exts.append(ext) - return extension in exts - - def run(self): - for root, dirs, files in os.walk(self.root_dir): - for file in files: - path = os.path.abspath(root + os.sep + file) - name, ext = os.path.splitext(file) - ext = ext[1:] - date_dir = datetime.datetime.fromtimestamp(os.path.getmtime(path)) - if ext in self.source_formats and date_dir > self.date_limit: - for format, ffmpeg_args in self.dest_formats.items(): - 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 self.get_ext_in_dir(format, root)) or '--force' in self.args: - if ext == 'webm' and format == 'ogg': - ffmpeg_args = '-vn -acodec copy' - if format == 'png': - command = '/usr/local/bin/ffmpeg -loglevel 0 ' + ffmpeg_args + ' -i "' + path + '" -frames:v 1 -y "' + dest + '"' - else: - 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) - print(command) - - -if __name__ == '__main__': - t = TelemetaTranscode(sys.argv[1:]) - t.run() diff --git a/bin/master/py/transcode_nv.py b/bin/master/py/transcode_nv.py deleted file mode 100644 index eebf26a..0000000 --- a/bin/master/py/transcode_nv.py +++ /dev/null @@ -1,75 +0,0 @@ -#!/usr/bin/python - -import os, sys, string -import logging -import datetime - - -class Logger: - """A logging object""" - - def __init__(self, file): - self.logger = logging.getLogger('myapp') - self.hdlr = logging.FileHandler(file) - self.formatter = logging.Formatter('%(asctime)s %(message)s') - self.hdlr.setFormatter(self.formatter) - self.logger.addHandler(self.hdlr) - self.logger.setLevel(logging.INFO) - - -class TelemetaTranscode(object): - """docstring for TelemetaTranscode""" - - source_formats = ['webm',] - dest_formats = { - 'mp3' : '-vn -acodec libmp3lame -aq 6', - 'mp4' : '-c:v h264_nvenc -maxrate 1100k -c:a aac -b:a 128k', - 'png' : '-ss 0:5:0', - } - - 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 = [] - for f in files: - name, ext = os.path.splitext(f) - ext = ext[1:] - if not ext in exts: - exts.append(ext) - return extension in exts - - def run(self): - for root, dirs, files in os.walk(self.root_dir): - for file in files: - path = os.path.abspath(root + os.sep + file) - name, ext = os.path.splitext(file) - ext = ext[1:] - date_dir = datetime.datetime.fromtimestamp(os.path.getmtime(path)) - if ext in self.source_formats and date_dir > self.date_limit: - for format, ffmpeg_args in self.dest_formats.items(): - 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 self.get_ext_in_dir(format, root)) or '--force' in self.args: - if ext == 'webm' and format == 'ogg': - ffmpeg_args = '-vn -acodec copy' - if format == 'png': - command = '/usr/local/bin/ffmpeg -loglevel 0 ' + ffmpeg_args + ' -i "' + path + '" -frames:v 1 -y "' + dest + '"' - else: - 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) - print(command) - - -if __name__ == '__main__': - t = TelemetaTranscode(sys.argv[1:]) - t.run() diff --git a/bin/master/sh/backup_nile.sh b/bin/master/sh/backup_nile.sh deleted file mode 100755 index f38b6a6..0000000 --- a/bin/master/sh/backup_nile.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -rsync -aq /home/telecaster/archives/Pre-Barreau/ /mnt/nile/Pre-Barreau/ -#rsync -aq /home/telecaster/archives/Pre-Barreau/ admin-tech@Nile:/volume1/archives/Pre-Barreau/ diff --git a/bin/master/sh/remux b/bin/master/sh/remux deleted file mode 100755 index e4e88a8..0000000 --- a/bin/master/sh/remux +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -ffmpeg -i $1 -c copy out.webm diff --git a/bin/master/sh/reverse_ssh_tunnel b/bin/master/sh/reverse_ssh_tunnel deleted file mode 100755 index cd81fe6..0000000 --- a/bin/master/sh/reverse_ssh_tunnel +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh -# ------------------------------ -# autossh reverse tunnel on boot -# ------------------------------ -# See autossh and google for reverse ssh tunnels to see how this works - -# When this script runs it will allow you to ssh into this machine even if it is behind a firewall or has a NAT'd IP address. -# From any ssh capable machine you just type ssh -p $PORT_MIDDLEMAN_WILL_LISTEN_ON localusername@middleman - -# This is the username on your local server who has public key authentication setup at the middleman -USER_TO_SSH_IN_AS=telecaster - -# This is the username and hostname/IP address for the middleman (internet accessible server) -MIDDLEMAN_SERVER_AND_USERNAME=telecaster@jimi.parisson.com - -# The following two numbers can be whatever you want, but need to be unique if you have multiple reverse ssh tunnels -# Port that the middleman will listen on (use this value as the -p argument when sshing) -PORT_MIDDLEMAN_WILL_LISTEN_ON=22012 - -# Connection monitoring port, don't need to know this one -AUTOSSH_PORT=27012 - -# Ensures that autossh keeps trying to connect -AUTOSSH_GATETIME=0 - -export AUTOSSH_PORT AUTOSSH_GATETIME - -su -c "autossh -f -N -R *:${PORT_MIDDLEMAN_WILL_LISTEN_ON}:localhost:22 ${MIDDLEMAN_SERVER_AND_USERNAME} -oLogLevel=error -oUserKnownHostsFile=/dev/null -oStrictHostKeyChecking=no" $USER_TO_SSH_IN_AS - diff --git a/bin/master/sh/seafile_sync.sh b/bin/master/sh/seafile_sync.sh deleted file mode 100755 index aece99e..0000000 --- a/bin/master/sh/seafile_sync.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash - -seaf-cli start - -seaf-cli sync -l 063a03f2-2947-4f90-b4a1-7d1e34eb62e0 -s http://localhost:9080 -d "/home/telecaster/seafile/CRFPA" -u "telecaster@parisson.com" -p "cab2GhetGoog" - diff --git a/bin/master/sh/telecaster_master-ae.sh b/bin/master/sh/telecaster_master-ae.sh deleted file mode 100755 index 2d6948b..0000000 --- a/bin/master/sh/telecaster_master-ae.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash - -media_dir=/home/telecaster/archives/Pre-Barreau/AE/ -tmp_log=/tmp/telecaster-remux-ae.log -log=/home/telecaster/log/remux-ae.log -tmp_dir=/home/telecaster/tmp/ -app_server=angus.parisson.com -media_server=angus.parisson.com -emails="webmaster@parisson.com,jeannot@parisson.com" -subject="TeleCaster remux (AE)" -year=`date '+%Y'` -#year=2020 -year2=$((year-1)) -#echo $year2 - -python ~/apps/Telemeta/scripts/transcode/remux_fix_media.py $media_dir $tmp_dir > $tmp_log - -#cat $tmp_log >> $log - -echo "$media_server:$media_dir" - -rsync -avuLKPr --delete --bwlimit=15000 --include="*/" --include="$year/**" --include="$year2/**" --exclude="*" $media_dir $media_server:$media_dir - -ssh $app_server "~/bin/teleforma_import.sh" - -python ~/apps/tools/message/mail_msg.py $subject $tmp_log $emails - - diff --git a/bin/master/sh/telecaster_master-crfpa-mp4-staging.sh b/bin/master/sh/telecaster_master-crfpa-mp4-staging.sh deleted file mode 100755 index d20fae9..0000000 --- a/bin/master/sh/telecaster_master-crfpa-mp4-staging.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash - -year=`date '+%Y'` -media_dir=/home/telecaster/archives/Pre-Barreau/CRFPA/$year/ -backup_dir=/mnt/nile/Pre-Barreau/CRFPA/$year/ -tmp_log=/tmp/telecaster-remux-crfpa.log -log=/home/telecaster/log/remux-crfpa.log -tmp_dir=/home/telecaster/tmp/ -app_server=malcom.parisson.com -app_path=/srv/crfpa-docker-staging -media_server=malcom.parisson.com -emails="webmaster@parisson.com,jeannot@parisson.com" -subject="TeleCaster remux (CRFPA)" -bwlimit=20000 - -python ~/apps/Telemeta/scripts/transcode/remux_fix_media.py $media_dir $tmp_dir > $tmp_log - -cat $tmp_log >> $log - -rsync -uLKPr $media_dir $backup_dir - -python ~/apps/Telemeta/scripts/transcode/transcode_nv.py $backup_dir ~/log/transcode-crfpa.log - -find $backup_dir -type d -exec chmod 755 {} \; -find $backup_dir -type f -exec chmod 644 {} \; - -#rsync -auLKPr --bwlimit=$bwlimit --include="*/" --include="$year/**" --exclude="*" $backup_dir $media_server:$media_dir -#rsync -uLKPr --bwlimit=$bwlimit --include="*/" --include="$year/**" --exclude=".webm" --exclude=".ogg" --exclude="*" $backup_dir $media_server:$media_dir -rsync -auLKPr --bwlimit=$bwlimit --include="*/" --include="$year/**" --exclude="*.webm" --exclude="@eaDir" $backup_dir $media_server:$media_dir - -ssh $app_server "docker-compose -f $app_path/docker-compose.yml -f $app_path/env/prod.yml exec app /srv/app/manage.py teleforma-import-conferences-2 Pre-Barreau CRFPA /var/log/app/import_media.log" - -#python ~/apps/tools/message/mail_msg.py $subject $tmp_log $emails - - diff --git a/bin/master/sh/telecaster_master-crfpa-mp4.sh b/bin/master/sh/telecaster_master-crfpa-mp4.sh deleted file mode 100755 index 2cdb406..0000000 --- a/bin/master/sh/telecaster_master-crfpa-mp4.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/bash - -organization=Pre-Barreau -department=CRFPA -year=`date '+%Y'` -media_dir=/home/telecaster/archives/$organization/$department/$year/ -backup_dir=/mnt/nile/$organization/$department/$year/ -tmp_log=/tmp/telecaster-$department.log -remux_log=/home/telecaster/log/remux-$department.log -transcode_log=/home/telecaster/log/transcode-$department.log -import_log=/var/log/app/import_media.log -tmp_dir=/home/telecaster/tmp/ -app_server=malcom.parisson.com -app_path=/srv/crfpa-docker -media_server=malcom.parisson.com -emails="webmaster@parisson.com,jeannot@parisson.com" -subject="TeleCaster remux (CRFPA)" -bwlimit=20000 - -python apps/telecaster/telecaster-server/bin/remux_fix_media.py $media_dir $tmp_dir > $tmp_log - -cat $tmp_log >> $remux_log - -#rsync -uLKPr $media_dir $backup_dir - -#echo `date` >> ~/log/transcode-crfpa.log - -python ~/apps/telecaster/telecaster-server/bin/transcode_nv.py $media_dir $transcode_log - -#find $backup_dir -type d -exec chmod 755 {} \; -#find $backup_dir -type f -exec chmod 644 {} \; - -#rsync -auLKPr --bwlimit=$bwlimit --include="*/" --include="$year/**" --exclude="*" $backup_dir $media_server:$media_dir -#rsync -uLKPr --bwlimit=$bwlimit --include="*/" --include="$year/**" --exclude=".webm" --exclude=".ogg" --exclude="*" $backup_dir $media_server:$media_dir - -rsync -auLKr --bwlimit=$bwlimit --include="*/" --include="$year/**" --exclude="*.webm" --exclude="@eaDir" $media_dir $media_server:$media_dir - -ssh $app_server "docker-compose -f $app_path/docker-compose.yml -f $app_path/env/prod.yml exec -T app /srv/app/manage.py teleforma-import-conferences-2 $organization $department $import_log" - -#python ~/apps/tools/message/mail_msg.py $subject $tmp_log $emails - - diff --git a/bin/master/sh/telecaster_master-pro.sh b/bin/master/sh/telecaster_master-pro.sh deleted file mode 100755 index 99f4c73..0000000 --- a/bin/master/sh/telecaster_master-pro.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh - -day=`date '+%Y-%m-%d_%H-%M-%S'` -year=`date '+%Y'` -#year=2020 - -script_dir="/home/telecaster/kdenlive/scripts/" -server="malcom.parisson.com" -tmp_dir="/home/telecaster/tmp/" -log_dir="/home/telecaster/log/" - - -for y in `seq $(($year)) $(($year+1))`; do - echo $y - media_dir="/home/telecaster/kdenlive/Final/$y/" - server_media_dir="/mnt/prob-videos/Pre-Barreau/Pro-Barreau/Final/$y/" - archives_dir="/home/telecaster/archives/Pre-Barreau/Pro-Barreau/$y/" - - #bash ~/apps/Telemeta/scripts/kdenlive/mlt_fix_threads.sh $script_dir - #python ~/apps/Telemeta/scripts/kdenlive/mlt_process_batch.py --fading $script_dir >> $log_dir/mlt.log - python ~/apps/Telemeta/scripts/transcode/remux_fix_media.py $archives_dir $tmp_dir >> $log_dir/remux-pro.log - python ~/apps/Telemeta/scripts/transcode/transcode_nv.py $media_dir $log_dir/transcode-pro.log - - chmod -fR 664 $media_dir; chmod -fR +rX $media_dir - rsync -aquLKP --bwlimit=15000 --delete --exclude="@eaDir" $media_dir $server:$server_media_dir - - #ssh $server chmod -R 664 $server_media_dir - #ssh $server chmod -R +rX $server_media_dir - -done diff --git a/src/home/telecaster/bin/backup_nile.sh b/src/home/telecaster/bin/backup_nile.sh new file mode 100755 index 0000000..f38b6a6 --- /dev/null +++ b/src/home/telecaster/bin/backup_nile.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +rsync -aq /home/telecaster/archives/Pre-Barreau/ /mnt/nile/Pre-Barreau/ +#rsync -aq /home/telecaster/archives/Pre-Barreau/ admin-tech@Nile:/volume1/archives/Pre-Barreau/ diff --git a/src/home/telecaster/bin/py/create_thumbs.py b/src/home/telecaster/bin/py/create_thumbs.py new file mode 100644 index 0000000..dc3fd20 --- /dev/null +++ b/src/home/telecaster/bin/py/create_thumbs.py @@ -0,0 +1,42 @@ +#!/usr/bin/python + +import os, sys, string +import logging + +class Logger: + """A logging object""" + + def __init__(self, file): + self.logger = logging.getLogger('myapp') + self.hdlr = logging.FileHandler(file) + self.formatter = logging.Formatter('%(message)s') + self.hdlr.setFormatter(self.formatter) + self.logger.addHandler(self.hdlr) + self.logger.setLevel(logging.INFO) + +log_file = 'thumbs.log' +logger = Logger(log_file) +root_dir = sys.argv[-1] +args = sys.argv[1:-1] +source_format = 'webm' +done = [] +preview_tc = '00:00:05' + +if os.path.exists(log_file): + f = open(log_file, 'r') + for line in f.readlines(): + done.append(line[:-1]) + f.close() + +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: + dest = os.path.abspath(root + os.sep + name + '.png') + if not dest in done or '--force' in args: + command = 'ffmpeg -ss '+ preview_tc + ' -i ' + path + ' -y ' + dest + os.system(command) + logger.logger.info(dest) + +print "DONE!" diff --git a/src/home/telecaster/bin/py/remux_fix_media.py b/src/home/telecaster/bin/py/remux_fix_media.py new file mode 100644 index 0000000..895fc93 --- /dev/null +++ b/src/home/telecaster/bin/py/remux_fix_media.py @@ -0,0 +1,113 @@ +#!/usr/bin/python + +import os, sys, psutil +import datetime +from ebml.utils.ebml_data import * + +class FixCheckMedia(object): + + def __init__(self, dir, tmp_dir): + self.dir = dir + self.tmp_dir = tmp_dir + if not os.path.exists(self.tmp_dir): + os.makedirs(self.tmp_dir) + + def process(self): + webm_fixed_log = 'webm.fixed' + webm_tofix_log = 'webm.tofix' + mp3_fixed_log = 'mp3.fixed' + mp3_tofix_log = 'mp3.tofix' + + for root, dirs, files in os.walk(self.dir): + for filename in files: + source = root + os.sep + filename + name = os.path.splitext(filename)[0] + ext = os.path.splitext(filename)[1][1:] + + if (ext == 'webm' or ext == 'mp4') and os.path.getsize(source): + dir_files = os.listdir(root) + + if not webm_fixed_log in dir_files: + print(source) + self.fix_webm(source) + f = open(root + os.sep + webm_fixed_log, 'w') + f.close() + if os.path.exists(root + os.sep + webm_tofix_log): + os.remove(root + os.sep + webm_tofix_log) + + if mp3_tofix_log in dir_files or not mp3_fixed_log in dir_files: + for file in dir_files: + dest_ext = os.path.splitext(file)[1][1:] + if dest_ext == 'mp3': + dest = root + os.sep + file + print(dest) + self.fix_mp3(source, dest) + f = open(root + os.sep + mp3_fixed_log, 'w') + f.close() + if os.path.exists(root + os.sep + mp3_tofix_log): + os.remove(root + os.sep + mp3_tofix_log) + #break + + + def hard_fix_webm(self, path): + try: + tmp_file = self.tmp_dir + 'out.webm ' + command = 'ffmpeg -loglevel 0 -i "'+ path + '" -vcodec libvpx -vb 1500k -acodec libvorbis -aq 7 -f webm -y "' + tmp_file + '" > /dev/null' + print(command) + os.system(command) + command = 'mv ' + tmp_file + path + os.system(command) + except: + pass + + + def fix_webm(self, path): + try: + tmp_file = self.tmp_dir + 'out.webm' + command = '/usr/local/bin/ffmpeg -loglevel 0 -i "' + path + '" -vcodec copy -acodec copy -f webm -y "' + tmp_file + '" > /dev/null' + print(command) + os.system(command) + #ebml_obj = EBMLData(tmp_file) + #offset = ebml_obj.get_first_cluster_seconds() + command = '/usr/local/bin/ffmpeg -loglevel 0 -i "' + tmp_file + '" -vcodec copy -acodec copy -f webm -y "' + path + '" > /dev/null' + print(command) + os.system(command) + except: + pass + + def fix_mp3(self, source, path): + try: + command = '/usr/local/bin/ffmpeg -loglevel 0 -i "'+ source + '" -vn -aq 6 -y "' + path + '" > /dev/null' + print(command) + os.system(command) + except: + pass + +def get_pids(name, args=None): + """Get a process pid filtered by arguments and uid""" + pids = [] + for proc in psutil.process_iter(): + if proc.cmdline: + if name == proc.name: + if args: + if args in proc.cmdline: + pids.append(proc.pid) + else: + pids.append(proc.pid) + return pids + +dir = sys.argv[-2] +tmp_dir = sys.argv[-1] + +path = os.path.abspath(__file__) +pids = get_pids('python2.6',args=path) + +print(datetime.datetime.now()) +if len(pids) <= 1: + print('starting process...') + f = FixCheckMedia(dir, tmp_dir) + f.process() + print('process finished.\n') +else: + print('already started !\n') + diff --git a/src/home/telecaster/bin/py/transcode.py b/src/home/telecaster/bin/py/transcode.py new file mode 100644 index 0000000..12719e6 --- /dev/null +++ b/src/home/telecaster/bin/py/transcode.py @@ -0,0 +1,76 @@ +#!/usr/bin/python + +import os, sys, string +import logging + + +class Logger: + """A logging object""" + + def __init__(self, file): + self.logger = logging.getLogger('myapp') + self.hdlr = logging.FileHandler(file) + self.formatter = logging.Formatter('%(asctime)s %(message)s') + self.hdlr.setFormatter(self.formatter) + self.logger.addHandler(self.hdlr) + self.logger.setLevel(logging.INFO) + + +class TelemetaTranscode(object): + """docstring for TelemetaTranscode""" + + threads = 4 + source_formats = ['webm', 'mp4'] + dest_formats = { + 'mp3' : '-vn -acodec libmp3lame -aq 6', + 'ogg' : '-vn -acodec libvorbis -aq 6', + 'mp4' : '-vcodec libx264 -threads ' + str(threads) + \ + ' -c:v libx264 -crf 17 -maxrate 1100k -bufsize 1835k -acodec aac -strict -2 -ab 96k', + 'png' : '-ss 0:0:10', + 'webm' : '-vcodec libvpx -threads ' + str(threads) + \ + ' -c:v libvpx -crf 17 -b:v 1100k', + } + + + 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 = [] + for f in files: + name, ext = os.path.splitext(f) + ext = ext[1:] + if not ext in exts: + exts.append(ext) + return extension in exts + + def run(self): + for root, dirs, files in os.walk(self.root_dir): + for file in files: + path = os.path.abspath(root + os.sep + file) + name, ext = os.path.splitext(file) + ext = ext[1:] + if ext in self.source_formats: + for format, ffmpeg_args in self.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 self.get_ext_in_dir(format, root)) or '--force' in self.args: + if ext == 'webm' and format == 'ogg': + ffmpeg_args = '-vn -acodec copy' + command = 'ffmpeg -loglevel 0 -i "' + path + '" ' + ffmpeg_args + ' -y "' + dest + '"' + self.logger.logger.info(command) + if not '--dry-run' in self.args: + os.system(command) + else: + print command + + +if __name__ == '__main__': + t = TelemetaTranscode(sys.argv[1:]) + t.run() diff --git a/src/home/telecaster/bin/py/transcode_nonv.py b/src/home/telecaster/bin/py/transcode_nonv.py new file mode 100644 index 0000000..ec450a3 --- /dev/null +++ b/src/home/telecaster/bin/py/transcode_nonv.py @@ -0,0 +1,76 @@ +#!/usr/bin/python + +import os, sys, string +import logging +import datetime + + +class Logger: + """A logging object""" + + def __init__(self, file): + self.logger = logging.getLogger('myapp') + self.hdlr = logging.FileHandler(file) + self.formatter = logging.Formatter('%(asctime)s %(message)s') + self.hdlr.setFormatter(self.formatter) + self.logger.addHandler(self.hdlr) + self.logger.setLevel(logging.INFO) + + +class TelemetaTranscode(object): + """docstring for TelemetaTranscode""" + + source_formats = ['webm',] + + dest_formats = { + '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 = [] + for f in files: + name, ext = os.path.splitext(f) + ext = ext[1:] + if not ext in exts: + exts.append(ext) + return extension in exts + + def run(self): + for root, dirs, files in os.walk(self.root_dir): + for file in files: + path = os.path.abspath(root + os.sep + file) + name, ext = os.path.splitext(file) + ext = ext[1:] + date_dir = datetime.datetime.fromtimestamp(os.path.getmtime(path)) + if ext in self.source_formats and date_dir > self.date_limit: + for format, ffmpeg_args in self.dest_formats.items(): + 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 self.get_ext_in_dir(format, root)) or '--force' in self.args: + if ext == 'webm' and format == 'ogg': + ffmpeg_args = '-vn -acodec copy' + if format == 'png': + command = '/usr/local/bin/ffmpeg -loglevel 0 ' + ffmpeg_args + ' -i "' + path + '" -frames:v 1 -y "' + dest + '"' + else: + 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) + print(command) + + +if __name__ == '__main__': + t = TelemetaTranscode(sys.argv[1:]) + t.run() diff --git a/src/home/telecaster/bin/py/transcode_nv-pro.py b/src/home/telecaster/bin/py/transcode_nv-pro.py new file mode 100644 index 0000000..1c0161f --- /dev/null +++ b/src/home/telecaster/bin/py/transcode_nv-pro.py @@ -0,0 +1,75 @@ +#!/usr/bin/python + +import os, sys, string +import logging +import datetime + + +class Logger: + """A logging object""" + + def __init__(self, file): + self.logger = logging.getLogger('myapp') + self.hdlr = logging.FileHandler(file) + self.formatter = logging.Formatter('%(asctime)s %(message)s') + self.hdlr.setFormatter(self.formatter) + self.logger.addHandler(self.hdlr) + self.logger.setLevel(logging.INFO) + + +class TelemetaTranscode(object): + """docstring for TelemetaTranscode""" + + source_formats = ['webm',] + dest_formats = { + 'mp3' : '-vn -acodec libmp3lame -aq 6', + 'mp4' : '-c:v h264_nvenc -maxrate 1100k -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 = [] + for f in files: + name, ext = os.path.splitext(f) + ext = ext[1:] + if not ext in exts: + exts.append(ext) + return extension in exts + + def run(self): + for root, dirs, files in os.walk(self.root_dir): + for file in files: + path = os.path.abspath(root + os.sep + file) + name, ext = os.path.splitext(file) + ext = ext[1:] + date_dir = datetime.datetime.fromtimestamp(os.path.getmtime(path)) + if ext in self.source_formats and date_dir > self.date_limit: + for format, ffmpeg_args in self.dest_formats.items(): + 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 self.get_ext_in_dir(format, root)) or '--force' in self.args: + if ext == 'webm' and format == 'ogg': + ffmpeg_args = '-vn -acodec copy' + if format == 'png': + command = '/usr/local/bin/ffmpeg -loglevel 0 ' + ffmpeg_args + ' -i "' + path + '" -frames:v 1 -y "' + dest + '"' + else: + 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) + print(command) + + +if __name__ == '__main__': + t = TelemetaTranscode(sys.argv[1:]) + t.run() diff --git a/src/home/telecaster/bin/py/transcode_nv.py b/src/home/telecaster/bin/py/transcode_nv.py new file mode 100644 index 0000000..eebf26a --- /dev/null +++ b/src/home/telecaster/bin/py/transcode_nv.py @@ -0,0 +1,75 @@ +#!/usr/bin/python + +import os, sys, string +import logging +import datetime + + +class Logger: + """A logging object""" + + def __init__(self, file): + self.logger = logging.getLogger('myapp') + self.hdlr = logging.FileHandler(file) + self.formatter = logging.Formatter('%(asctime)s %(message)s') + self.hdlr.setFormatter(self.formatter) + self.logger.addHandler(self.hdlr) + self.logger.setLevel(logging.INFO) + + +class TelemetaTranscode(object): + """docstring for TelemetaTranscode""" + + source_formats = ['webm',] + dest_formats = { + 'mp3' : '-vn -acodec libmp3lame -aq 6', + 'mp4' : '-c:v h264_nvenc -maxrate 1100k -c:a aac -b:a 128k', + 'png' : '-ss 0:5:0', + } + + 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 = [] + for f in files: + name, ext = os.path.splitext(f) + ext = ext[1:] + if not ext in exts: + exts.append(ext) + return extension in exts + + def run(self): + for root, dirs, files in os.walk(self.root_dir): + for file in files: + path = os.path.abspath(root + os.sep + file) + name, ext = os.path.splitext(file) + ext = ext[1:] + date_dir = datetime.datetime.fromtimestamp(os.path.getmtime(path)) + if ext in self.source_formats and date_dir > self.date_limit: + for format, ffmpeg_args in self.dest_formats.items(): + 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 self.get_ext_in_dir(format, root)) or '--force' in self.args: + if ext == 'webm' and format == 'ogg': + ffmpeg_args = '-vn -acodec copy' + if format == 'png': + command = '/usr/local/bin/ffmpeg -loglevel 0 ' + ffmpeg_args + ' -i "' + path + '" -frames:v 1 -y "' + dest + '"' + else: + 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) + print(command) + + +if __name__ == '__main__': + t = TelemetaTranscode(sys.argv[1:]) + t.run() diff --git a/src/home/telecaster/bin/remux b/src/home/telecaster/bin/remux new file mode 100755 index 0000000..e4e88a8 --- /dev/null +++ b/src/home/telecaster/bin/remux @@ -0,0 +1,3 @@ +#!/bin/bash + +ffmpeg -i $1 -c copy out.webm diff --git a/src/home/telecaster/bin/reverse_ssh_tunnel b/src/home/telecaster/bin/reverse_ssh_tunnel new file mode 100755 index 0000000..cd81fe6 --- /dev/null +++ b/src/home/telecaster/bin/reverse_ssh_tunnel @@ -0,0 +1,29 @@ +#!/bin/sh +# ------------------------------ +# autossh reverse tunnel on boot +# ------------------------------ +# See autossh and google for reverse ssh tunnels to see how this works + +# When this script runs it will allow you to ssh into this machine even if it is behind a firewall or has a NAT'd IP address. +# From any ssh capable machine you just type ssh -p $PORT_MIDDLEMAN_WILL_LISTEN_ON localusername@middleman + +# This is the username on your local server who has public key authentication setup at the middleman +USER_TO_SSH_IN_AS=telecaster + +# This is the username and hostname/IP address for the middleman (internet accessible server) +MIDDLEMAN_SERVER_AND_USERNAME=telecaster@jimi.parisson.com + +# The following two numbers can be whatever you want, but need to be unique if you have multiple reverse ssh tunnels +# Port that the middleman will listen on (use this value as the -p argument when sshing) +PORT_MIDDLEMAN_WILL_LISTEN_ON=22012 + +# Connection monitoring port, don't need to know this one +AUTOSSH_PORT=27012 + +# Ensures that autossh keeps trying to connect +AUTOSSH_GATETIME=0 + +export AUTOSSH_PORT AUTOSSH_GATETIME + +su -c "autossh -f -N -R *:${PORT_MIDDLEMAN_WILL_LISTEN_ON}:localhost:22 ${MIDDLEMAN_SERVER_AND_USERNAME} -oLogLevel=error -oUserKnownHostsFile=/dev/null -oStrictHostKeyChecking=no" $USER_TO_SSH_IN_AS + diff --git a/src/home/telecaster/bin/seafile_sync.sh b/src/home/telecaster/bin/seafile_sync.sh new file mode 100755 index 0000000..aece99e --- /dev/null +++ b/src/home/telecaster/bin/seafile_sync.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +seaf-cli start + +seaf-cli sync -l 063a03f2-2947-4f90-b4a1-7d1e34eb62e0 -s http://localhost:9080 -d "/home/telecaster/seafile/CRFPA" -u "telecaster@parisson.com" -p "cab2GhetGoog" + diff --git a/src/home/telecaster/bin/telecaster_master-ae.sh b/src/home/telecaster/bin/telecaster_master-ae.sh new file mode 100755 index 0000000..2d6948b --- /dev/null +++ b/src/home/telecaster/bin/telecaster_master-ae.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +media_dir=/home/telecaster/archives/Pre-Barreau/AE/ +tmp_log=/tmp/telecaster-remux-ae.log +log=/home/telecaster/log/remux-ae.log +tmp_dir=/home/telecaster/tmp/ +app_server=angus.parisson.com +media_server=angus.parisson.com +emails="webmaster@parisson.com,jeannot@parisson.com" +subject="TeleCaster remux (AE)" +year=`date '+%Y'` +#year=2020 +year2=$((year-1)) +#echo $year2 + +python ~/apps/Telemeta/scripts/transcode/remux_fix_media.py $media_dir $tmp_dir > $tmp_log + +#cat $tmp_log >> $log + +echo "$media_server:$media_dir" + +rsync -avuLKPr --delete --bwlimit=15000 --include="*/" --include="$year/**" --include="$year2/**" --exclude="*" $media_dir $media_server:$media_dir + +ssh $app_server "~/bin/teleforma_import.sh" + +python ~/apps/tools/message/mail_msg.py $subject $tmp_log $emails + + diff --git a/src/home/telecaster/bin/telecaster_master-crfpa-mp4-staging.sh b/src/home/telecaster/bin/telecaster_master-crfpa-mp4-staging.sh new file mode 100755 index 0000000..d20fae9 --- /dev/null +++ b/src/home/telecaster/bin/telecaster_master-crfpa-mp4-staging.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +year=`date '+%Y'` +media_dir=/home/telecaster/archives/Pre-Barreau/CRFPA/$year/ +backup_dir=/mnt/nile/Pre-Barreau/CRFPA/$year/ +tmp_log=/tmp/telecaster-remux-crfpa.log +log=/home/telecaster/log/remux-crfpa.log +tmp_dir=/home/telecaster/tmp/ +app_server=malcom.parisson.com +app_path=/srv/crfpa-docker-staging +media_server=malcom.parisson.com +emails="webmaster@parisson.com,jeannot@parisson.com" +subject="TeleCaster remux (CRFPA)" +bwlimit=20000 + +python ~/apps/Telemeta/scripts/transcode/remux_fix_media.py $media_dir $tmp_dir > $tmp_log + +cat $tmp_log >> $log + +rsync -uLKPr $media_dir $backup_dir + +python ~/apps/Telemeta/scripts/transcode/transcode_nv.py $backup_dir ~/log/transcode-crfpa.log + +find $backup_dir -type d -exec chmod 755 {} \; +find $backup_dir -type f -exec chmod 644 {} \; + +#rsync -auLKPr --bwlimit=$bwlimit --include="*/" --include="$year/**" --exclude="*" $backup_dir $media_server:$media_dir +#rsync -uLKPr --bwlimit=$bwlimit --include="*/" --include="$year/**" --exclude=".webm" --exclude=".ogg" --exclude="*" $backup_dir $media_server:$media_dir +rsync -auLKPr --bwlimit=$bwlimit --include="*/" --include="$year/**" --exclude="*.webm" --exclude="@eaDir" $backup_dir $media_server:$media_dir + +ssh $app_server "docker-compose -f $app_path/docker-compose.yml -f $app_path/env/prod.yml exec app /srv/app/manage.py teleforma-import-conferences-2 Pre-Barreau CRFPA /var/log/app/import_media.log" + +#python ~/apps/tools/message/mail_msg.py $subject $tmp_log $emails + + diff --git a/src/home/telecaster/bin/telecaster_master-crfpa-mp4.sh b/src/home/telecaster/bin/telecaster_master-crfpa-mp4.sh new file mode 100755 index 0000000..2cdb406 --- /dev/null +++ b/src/home/telecaster/bin/telecaster_master-crfpa-mp4.sh @@ -0,0 +1,42 @@ +#!/bin/bash + +organization=Pre-Barreau +department=CRFPA +year=`date '+%Y'` +media_dir=/home/telecaster/archives/$organization/$department/$year/ +backup_dir=/mnt/nile/$organization/$department/$year/ +tmp_log=/tmp/telecaster-$department.log +remux_log=/home/telecaster/log/remux-$department.log +transcode_log=/home/telecaster/log/transcode-$department.log +import_log=/var/log/app/import_media.log +tmp_dir=/home/telecaster/tmp/ +app_server=malcom.parisson.com +app_path=/srv/crfpa-docker +media_server=malcom.parisson.com +emails="webmaster@parisson.com,jeannot@parisson.com" +subject="TeleCaster remux (CRFPA)" +bwlimit=20000 + +python apps/telecaster/telecaster-server/bin/remux_fix_media.py $media_dir $tmp_dir > $tmp_log + +cat $tmp_log >> $remux_log + +#rsync -uLKPr $media_dir $backup_dir + +#echo `date` >> ~/log/transcode-crfpa.log + +python ~/apps/telecaster/telecaster-server/bin/transcode_nv.py $media_dir $transcode_log + +#find $backup_dir -type d -exec chmod 755 {} \; +#find $backup_dir -type f -exec chmod 644 {} \; + +#rsync -auLKPr --bwlimit=$bwlimit --include="*/" --include="$year/**" --exclude="*" $backup_dir $media_server:$media_dir +#rsync -uLKPr --bwlimit=$bwlimit --include="*/" --include="$year/**" --exclude=".webm" --exclude=".ogg" --exclude="*" $backup_dir $media_server:$media_dir + +rsync -auLKr --bwlimit=$bwlimit --include="*/" --include="$year/**" --exclude="*.webm" --exclude="@eaDir" $media_dir $media_server:$media_dir + +ssh $app_server "docker-compose -f $app_path/docker-compose.yml -f $app_path/env/prod.yml exec -T app /srv/app/manage.py teleforma-import-conferences-2 $organization $department $import_log" + +#python ~/apps/tools/message/mail_msg.py $subject $tmp_log $emails + + diff --git a/src/home/telecaster/bin/telecaster_master-pro.sh b/src/home/telecaster/bin/telecaster_master-pro.sh new file mode 100755 index 0000000..99f4c73 --- /dev/null +++ b/src/home/telecaster/bin/telecaster_master-pro.sh @@ -0,0 +1,30 @@ +#!/bin/sh + +day=`date '+%Y-%m-%d_%H-%M-%S'` +year=`date '+%Y'` +#year=2020 + +script_dir="/home/telecaster/kdenlive/scripts/" +server="malcom.parisson.com" +tmp_dir="/home/telecaster/tmp/" +log_dir="/home/telecaster/log/" + + +for y in `seq $(($year)) $(($year+1))`; do + echo $y + media_dir="/home/telecaster/kdenlive/Final/$y/" + server_media_dir="/mnt/prob-videos/Pre-Barreau/Pro-Barreau/Final/$y/" + archives_dir="/home/telecaster/archives/Pre-Barreau/Pro-Barreau/$y/" + + #bash ~/apps/Telemeta/scripts/kdenlive/mlt_fix_threads.sh $script_dir + #python ~/apps/Telemeta/scripts/kdenlive/mlt_process_batch.py --fading $script_dir >> $log_dir/mlt.log + python ~/apps/Telemeta/scripts/transcode/remux_fix_media.py $archives_dir $tmp_dir >> $log_dir/remux-pro.log + python ~/apps/Telemeta/scripts/transcode/transcode_nv.py $media_dir $log_dir/transcode-pro.log + + chmod -fR 664 $media_dir; chmod -fR +rX $media_dir + rsync -aquLKP --bwlimit=15000 --delete --exclude="@eaDir" $media_dir $server:$server_media_dir + + #ssh $server chmod -R 664 $server_media_dir + #ssh $server chmod -R +rX $server_media_dir + +done