ffmpeg で すべてのmp4ファイルをまとめて加工するシェルスクリプト

冒頭に広告や前置きなどがある動画を、まとめて加工したい場合。
高速で切り取りしたい場合
#! /bin/bash
for file in *.mp4; do
ffmpeg -i "$file" -ss 100 -c copy "${file}_output.mp4"
done
たまに、冒頭数秒が空白になってしまうようだ。
品質も維持したい場合
#! /bin/bash
for file in *.mp4; do
ffmpeg -i "$file" -ss 100 -c:v libx264 -c:a aac -strict experimental "${file}_output.mp4"
done
こちらはエンコードまでするため、冒頭の空白が除去できる。
解説
-i input.mp4: 編集対象のファイルを指定する-ss 100: 動画の開始時間を100秒とする-c copy: エンコードなしでコピーする(品質よりも高速化)-c:v libx264: ビデオを再エンコード(H.264)-c:a aac: オーディオを再エンコード(AAC)-strict experimental: 一部の環境でAACを有効にするための指定