Bashスクリプト
よく使うコマンドはスクリプトにまとめておくと、ファイルをドラッグするだけ・引数1つで実行できます。
ffprobeと組み合わせれば、長さや解像度に応じた処理も書けます。
基本のスクリプト
引数で渡した動画を、拡張子だけ .mp4 に変えて出力します。
#!/usr/bin/env bash
# convert.sh — 引数の動画をMP4(H.264/AAC)に変換する
set -euo pipefail
input="$1"
output="${input%.*}.mp4"
ffmpeg -i "$input" -c:v libx264 -crf 20 -preset medium -c:a aac -b:a 192k "$output"
echo "完了: $output"
set -euo pipefail… エラーで安全に停止する定番のおまじない${input%.*}… 拡張子を取り除いたファイル名"$input"… スペースを含むパスのため必ずダブルクオートで囲む
ffprobeの値で分岐する
#!/usr/bin/env bash
# 動画の長さ(秒)を取得して条件分岐する例
set -euo pipefail
dur=$(ffprobe -v error -show_entries format=duration -of csv=p=0 "$1")
# 小数を整数に
dur=${dur%.*}
if [ "$dur" -gt 60 ]; then
echo "60秒超え(${dur}秒)"
else
echo "60秒以内(${dur}秒)"
fi注意
パスは必ず
"$var" のように引用符で囲みます。スペースや日本語が入っても壊れません。実行のしかた
# 実行権限を付けて使う
chmod +x convert.sh
./convert.sh input.mov
複数ファイルをまとめて処理するなら一括処理、ノートアプリと繋ぐならObsidian連携へ。