ffmpegで適度に動画を圧縮、リサイズ

# 圧縮
ffmpeg -i input.mov -crf 18 output_compressed.mp4

# サイズを小さく
ffmpeg -i input.mp4   -vf "scale=480:-2"   -c:v libx264 -preset fast -crf 28   -pix_fmt yuv420p   -movflags +faststart   -c:a aac -b:a 96k  output.mp4
# 圧縮
ffmpeg_compress() {
    if [ -z "$1" ]; then
        echo "Usage: ffmpeg_compress <input_file>"
        return 1
    fi

    local input="$1"
    
    # ファイル名から拡張子を除いた部分を取得
    local filename_no_ext="${input%.*}"
    
    # 出力ファイル名を生成
    local output="${filename_no_ext}_compressed.mp4"

    # ffmpegを実行
    ffmpeg -i "$input" -crf 18 "$output"
}
# サイズを小さく
ffmpeg_resize() {
    # 引数が2つない場合は使い方を表示して終了
    if [ $# -lt 2 ]; then
        echo "Usage: ffmpeg_resize <width> <input_file>"
        echo "Example: ffmpeg_resize 1280 path/to/video.mov"
        return 1
    fi

    local width="$1"
    local input="$2"
    
    # ファイル名から拡張子を除いた部分を取得
    local filename_no_ext="${input%.*}"
    
    # 出力ファイル名を生成 (例: video_1280_resized.mp4)
    local output="${filename_no_ext}_${width}_resized.mp4"

    # ffmpegを実行 (アスペクト比を維持して横幅を指定、縦は自動計算)
    ffmpeg -i "$input" -vf "scale=${width}:-2" -crf 18 "$output"
}