FFmpeg

[追記]FFmpeg - The Ultimate Guide という詳しいガイドが公開されました。

FFmpeg はオープンソースの動画編集コマンドです。必需品です。Mac なら Homebrew で brew install ffmpeg でインストールできます。

入力ファイルは -i ファイル名 で指定します。解像度の変換は -s 1280x720 のように指定します。動画フォーマットは拡張子で判断してくれます。

ffmpeg -i in.ts -s 1280x720 out.mp4

ダウンロードとストリーミングでも書きましたが、メタデータが最後にある動画ファイルをいわゆるプログレッシブダウンロード可能な形式にするには、次のようにします:

ffmpeg -i in.mp4 -c copy -movflags faststart out.mp4

-c copy(または -codec copy)は、動画・音声を再エンコードせずそのままコピーすることを意味します。

静止画 in00.png、in01.png、in02.png、…… をフレームレート 5 で動画に変換するには、次のようにします:

ffmpeg -r 5 -i in%02d.png -vcodec libx264 -pix_fmt yuv420p out.mp4

開始時刻、終了時刻を HH:MM:SS の形式で指定して切り出す例(秒は小数点以下があってもかまいません):

ffmpeg -ss 00:31:04 -to 00:40:25.35 -i in.mp4 -c copy out.mp4

時刻ではなく時間の長さで指定するには -t HH:MM:SS とします。なお、再エンコードを伴わない -c copy では微妙に時間がずれることがあります。

1.mp4 と 2.mp4 と 3.mp4 を結合するには、あらかじめ

file 1.mp4
file 2.mp4
file 3.mp4

とだけ書き込んだテキストファイル files.txt を作っておき、次のように打ち込みます:

ffmpeg -f concat -i files.txt -c copy out.mp4

切り出しと結合を組み合わせれば、動画編集が自由にできます。

ファイルのパスが安全でない場合は -safe 0 というオプションが必要になるかもしれません。