
avconvを使用して、.movおよび.mp4ビデオのサイズを縮小し、すでに圧縮されているビデオ(文字列を介して存在する)をスキップするスクリプトを作成しました。スクリプトは名前にムービーの日付を入れましたが、縮小されたファイルのムービーソースの日付をプロパティとして保持することを好みましたが、これはもちろんスクリプトでは実装されていません。 Linuxコンソールを使用できますか?
#! /bin/bash
shopt -s globstar || exit
for f in **
do
if [[ "$f" =~ \.mp4$ ]] || [[ "$f" =~ \.mov$ ]] || [[ "$f" =~ \.MOV$ ]] ; then
if [[ "$f" =~ reduced.*\.mp4$ ]] || [[ "$f" =~ compressed.*\.mp4$ ]]; then
echo "already compressed"
else
if yes | avconv -i "$f" -c:v libx264 -crf 24 -c:a aac -strict -2 "${f%.*}_$(date -d@$(stat --printf='%Y' "$f") +%Y%m%d)"_compressed.mp4; then
rm -Rf "$f"
else
rm -Rf "${f%.*}_$(date -d@$(stat --printf='%Y' "$f") +%Y%m%d)"_compressed.mp4
echo "Command failed"
fi
fi
fi
done
答え1
はい、以下を使用してこれを実行できますtouch
。
else
t="${f%.*}_$(date -d@$(stat --printf='%Y' "$f") +%Y%m%d)"_compressed.mp4
if yes | avconv -i "$f" -c:v libx264 -crf 24 -c:a aac -strict -2 "$t"; then
touch -r "$f" "$t"
rm -f "$f"
else
rm -f "$t"
echo "Command failed"
fi
fi
この-r
オプションは、touch
指定されたファイルがターゲットファイルに適用される時間参照として使用されることを示します。