#!/usr/bin/python3
# -*- coding:utf-8 -*-
# pylint: disable=too-many-lines,too-many-arguments
import json
import os
import re
import subprocess
import sys
filename = sys.argv[1]
# 対象ファイルを解析する
# ・youtube等での基準を指定(ラウドネス値 -14LUFS)
# ・処理結果は指定した基準に近づけるための補正値
#
# 参考資料
# FFmpeg Filters Documentation | 8.97 loudnorm
# https://ffmpeg.org/ffmpeg-filters.html#loudnorm
#loudnorm = "I=-14:LRA=7:TP=-1.5"
loudnorm = "I=-17:LRA=7.0:TP=-2.0"
#loudnorm = "I=-24:LRA=15:TP=-1.5"
command = [
'ffmpeg',
'-i', f"{filename}",
'-af', f"loudnorm={loudnorm}:print_format=json",
'-f', 'null',
'-',
]
res = subprocess.run(
command, encoding='utf-8', capture_output=True, check=False, text=True)
result = re.match(r'.*(\{.*?\}).*', res.stderr, re.DOTALL)
measured = json.loads(result.group(1))
# ラウドネス正規化
basename = os.path.basename(filename)
normname = "{0[0]}_normalized{0[1]}".format(os.path.splitext(basename))
param = (
f":measured_I={measured['input_i']}"
f":measured_LRA={measured['input_lra']}"
f":measured_TP={measured['input_tp']}"
f":measured_thresh={measured['input_thresh']}"
f":offset={measured['target_offset']}"
)
command = [
'ffmpeg',
'-y',
'-i', f"{filename}",
'-af', f"loudnorm={loudnorm}{param}",
f"{normname}"
]
res = subprocess.run(
command, encoding='utf-8', capture_output=True, check=False, text=True)
print(f'generated: {normname}')[Python + ffmpeg] 動画や音楽ファイルのラウドネス値を正規化 ※いい感じの大きさの音量にする
[bash] カレントパスの画像からEXIFを除去する
#!/bin/bash
LIST="jpg jpeg png bmp tiff"
for EXT in $LIST
do
FILES="*.$EXT"
for FILE in $FILES
do
if [ ! -e $FILE ]; then
continue
fi
echo "$FILE"
convert -strip "$FILE" "$FILE"
done;
done;[WinXP] マスタブラウザを見つける
ネットワーク上のマスターブラウザになっているPCは、リソースキットのbrowstat コマンドなどで判断できるが、Windows 標準コマンドのnet.exe および nbtstat.exeを使っても判断できる。
1. net view コマンドを実行し、ドメインまたはワークグループからブラウズリストを取得する。
2. コンピュータ名のリストを使って、nbtstat -a <コンピュータ名> コマンドを実行し結果に..__MSBROWSE__.<00> が含まれるコンピュータがマスターブラウザ。
3. <ドメインまたはワークグループ名> <1D> が含まれる場合はセグメントマスターブラウザ
4. <ドメイン名> <1B> が含まれる場合はドメインマスターブラウザ。
1. net view コマンドを実行し、ドメインまたはワークグループからブラウズリストを取得する。
2. コンピュータ名のリストを使って、nbtstat -a <コンピュータ名> コマンドを実行し結果に..__MSBROWSE__.<00> が含まれるコンピュータがマスターブラウザ。
3. <ドメインまたはワークグループ名> <1D> が含まれる場合はセグメントマスターブラウザ
4. <ドメイン名> <1B> が含まれる場合はドメインマスターブラウザ。
@echo off
@echo Looking for master browser(s).
FOR /F "skip=3 delims=\, " %%i IN ('net view') DO FOR /F "skip=4 delims=<,> " %%a IN ('nbtstat -a %%i') DO IF %%a == ..__MSBROWSE__. @echo %%i is Master browser.
@echo Master Browser search is finished.
pause
[bash] ファイル名の前にファイルタイムスタンプを挿入
# ファイルリネーム処理
# for filepath in ( aaa/*.jpg | aaa/*.png)で複数ファイル対応可能?
# 拡張子の大小未対応
files="$inPath/*.JPG"
for filepath in ${files}
do
filename=`basename ${filepath}`
timestamp=`ls -d -l --time-style='+%Y%m%d' ${filepath} | cut -d ' ' -f 6`
echo " $filename >>>> $timestamp-$filename"
`cp -p ${filepath} "${outPath}/${timestamp}-${filename}"`
done
# for filepath in ( aaa/*.jpg | aaa/*.png)で複数ファイル対応可能?
# 拡張子の大小未対応
files="$inPath/*.JPG"
for filepath in ${files}
do
filename=`basename ${filepath}`
timestamp=`ls -d -l --time-style='+%Y%m%d' ${filepath} | cut -d ' ' -f 6`
echo " $filename >>>> $timestamp-$filename"
`cp -p ${filepath} "${outPath}/${timestamp}-${filename}"`
done
登録:
投稿 (Atom)