From 6638d63e7cb3d7a9f26d0c44bc203b591a6c7c49 Mon Sep 17 00:00:00 2001 From: baloan Date: Wed, 15 Jun 2016 21:20:38 +0200 Subject: [PATCH] organising classes --HG-- branch : sandbox --- src/prg-ag/fibwebui3.py | 6 +-- src/transcode/wtv2mp4.py | 94 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 96 insertions(+), 4 deletions(-) create mode 100644 src/transcode/wtv2mp4.py diff --git a/src/prg-ag/fibwebui3.py b/src/prg-ag/fibwebui3.py index 251b672..54b4c7d 100644 --- a/src/prg-ag/fibwebui3.py +++ b/src/prg-ag/fibwebui3.py @@ -17,8 +17,7 @@ Content-Type: text/html - + @@ -37,8 +36,7 @@ Content-Type: text/html - + diff --git a/src/transcode/wtv2mp4.py b/src/transcode/wtv2mp4.py new file mode 100644 index 0000000..6c0e0eb --- /dev/null +++ b/src/transcode/wtv2mp4.py @@ -0,0 +1,94 @@ +#!/usr/bin/env python3 +# -*- coding: cp1252 -*- +# Copyright (c) 2014 Andreas +# See LICENSE for details. + +""" compress Panasonic HDR mts video files to mp4 """ + +from argparse import ArgumentParser +import os +import re +import shlex +import shutil +import subprocess +import sys + +import datetime as dt + + +def transcode(argv=None): + if argv is None: + argv = sys.argv[1:] + # parse options and arguments + parser = ArgumentParser(description="handbrake") + parser.add_argument("-d") + parser.add_argument("-o") + args = parser.parse_args(argv) + print("starting '{} {}'".format(os.path.basename(argv[0]), args)) + # handbrake = r'C:\Program Files\Handbrake\HandbrakeCLI.exe' + handbrake = r'C:\Apps\handbrake\HandbrakeCLI.exe' + # startup application + for dir_, _, files in os.walk(args.d): + for file in files: + root, ext = os.path.splitext(file) + if ext not in (".wtv"): + continue + if "arte" not in root: + continue + fn = os.path.join(dir_, file) + # unix_mod_mtime = os.stat(fn).st_mtime + # mtime = dt.datetime.fromtimestamp(unix_mod_mtime) + mp4_fn = "%s.mp4" % root # mtime.strftime("%Y%m%d-%H%M%S") + mp4_fp = os.path.join(args.o, mp4_fn) + if not os.path.exists(mp4_fp): + hbargs = [handbrake, '-i', fn, '-o', mp4_fp] + # WMC + # opts = '-t 1 --angle 1 -c 1 -f mp4 -O --decomb --strict-anamorphic --keep-display-aspect -e x264 -b 1350 --vfr -a 1 -E av_aac -6 stereo -R Auto -B 160 -D 0 --gain 0 --audio-fallback ac3 --encoder-preset=faster --encoder-tune=film --verbose=1' + # WMC arte + opts = '-t 1 --angle 1 -c 1 -f mp4 -O --decomb --strict-anamorphic --keep-display-aspect -e x264 -b 1350 --vfr -a 1,1 -E av_aac,av_aac -6 stereo,stereo -R Auto,48 -B 160,160 -D 0,0 --gain 0,0 --audio-fallback ac3 --encoder-preset=faster --encoder-tune=film --verbose=1' + # opts = '-t 1 --angle 1 -c 1 -f mp4 --decomb --strict-anamorphic --keep-display-aspect --optimize -e x264 -b 1350 -2 -T --cfr -a 1 -E faac -6 stereo -R Auto -B 160 -D 0 --gain 0 --audio-fallback ffac3 --x264-tune=film --verbose=1' + hbargs.extend(opts.split()) + print(" ".join((shlex.quote(a) for a in hbargs))) + try: + subprocess.run(hbargs, timeout=30 * 60) + except subprocess.TimeoutExpired as e: + # mark as failed + with open(mp4_fp) as f: + pass + else: + shutil.copystat(fn, mp4_fp) + print("done.") + + +REMTS = r'(?P\d{5})\.MTS' + + +def rename_mts(argv=None): + # 2002-07-28 02.22.56 Werne.mp4 + # DV, SD, HD + if argv is None: + argv = sys.argv[1:] + parser = ArgumentParser(description="batch rename") + parser.add_argument("-d") + args = parser.parse_args(argv) + print("starting '{} {}'".format(os.path.basename(argv[0]), args)) + reo = re.compile(REMTS) + files = os.listdir(args.d) + for fn in sorted(files): + file = os.path.join(args.d, fn) + root, ext = os.path.splitext(fn) + mo = reo.match(fn) + if not mo: + print(file) + continue + st = os.stat(file) + mt = dt.datetime.fromtimestamp(st.st_mtime) + fn2 = "{:04}{:02}{:02}-{:02}{:02}{:02}-HD{}".format(mt.year, mt.month, mt.day, mt.hour, mt.minute, mt.second, ext) + dest = os.path.join(args.d, fn2) + print("{} -> {}".format(file, fn2)) + os.rename(file, dest) + + +if __name__ == "__main__": + transcode(["-d", r"I:\Users\Public\Recorded TV", "-o", r"E:\Videos"]) + # rename_mts(["-d", r"E:\Shared Documents\Raw\Panasonic HDC-SD99\20140720"])