ディレクトリ内のTSファイルをまとめてエンコード掛けるスクリプト
#! /bin/bash
export HOME="/home/ゆーざ名"
fileary=()
dir=$1
count=0
if [ $# != 1 ]; then
echo 引数エラー
exit 0
fi
if [ ! -e $dir ]; then
echo ディレクトリではありません
exit 0
fi
echo 対象ファイル
while read -r f; do
if [[ "$f" == *.ts ]]; then
# ファイル一つ毎の処理
echo "$f"
count=$((count+1))
fi
done < <(find $dir -mindepth 1 -maxdepth 1)
echo "対象数 : ${count}"
read -p "いくつエンコードしますか(0-${count}) ; " nom
#case "$yn" in [yY]*) ;; *) echo "終了します" ; exit ;; esac
expr "$nom" + 0 >&/dev/null
ret=$?
if [ $ret -eq 2 ];then
echo 数値ではありません
exit 0
fi
if [ $nom -lt 0 ] || [ $nom -gt $count ]; then
echo 入力エラー
exit 0
fi
if [ $nom -eq 0 ]; then
echo エンコードを中止します
exit 0
fi
echo エンコードを開始します
while read -r f; do
if [[ "$f" == *.ts ]]; then
jlse -i "$f" -e -t cutcm_logo -o " -c:v h264_v4l2m2m -vf scale=1920:1080,pullup=jb=54 -preset veryfast -acodec aac -ab 320K -b:v 4M -aspect 16:9 -r 24000/1001 -bsf:a aac_adtstoasc -tune animation" -r </dev/null
# echo "$f" # >> "${dir%/}/log.txt" ↑エンコードの命令(自分のとこVerなので各自行うものを入れる)
nom=$((nom -1))
if [ $nom = 0 ]; then
DATE=`TZ='Asia/Tokyo' date`
echo "指定数完了 ${DATE}"
exit 0
fi
fi
done < <(find $dir -mindepth 1 -maxdepth 1)
自分で書いてて使い方だいぶ忘れてるけども
ディレクトリを引数としてスクリプト実行
→対象ファイルのリストが出てくる
→いくつエンコードするか数字を入力する
→指定されてるエンコードを実行✕指定数
→終わったら終わった時間を表示
みたいなやつだったかと。(テスト用の出力とか残ってますが)
録画鯖を15時とかに自動で再起動かけてたのでscreen上で起動させて朝から昼過ぎまで流すみたいなことをしてました。参考までに。
この記事が気に入ったらサポートをしてみませんか?