【ちょっとした動画編集に超便利】ffmpegメモ

development

「この動画の最初の1秒を切り出したい」「この動画とこの動画をくっつけたい」と言った、ちょっとした動画編集をコマンドラインでできるのがffmpeg。超多機能なのですが、とりあえず「今やりたいこと」に特化してメモをまとめてみました。

動画の一部をくり抜いて切り出し

例:1920×1080を中央の1080×1080に切り出す

% ffmpeg -i input.mp4 -vf crop=1080:1080:420:0 output.mp4

リサイズ

例:幅はアスペクト比を保ったまま、高さ720にする。

% ffmpeg -i input.mp4 -vf scale=-1:720 output.mp4

時間軸のトリミング

例:指定時間をトリミングして書き出す(48秒〜1分38秒部分を切り出す)

% ffmpeg -i input.mp4 -ss 00:00:48 -to 00:01:38 output.mp4

複数ファイルの結合

例:複数動画ファイルを結合する(1.mp4, 2.mp4, 3.mp4)

下記のようなテキストファイルを用意し、list.txt と命名し保存します。

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

下記のコマンドで結合実行。

% ffmpeg -f concat -i list.txt output.mp4 

音声ノイズ除去

例:音声ノイズを除去して別名ファイルで保存する

nr: noise reduction, 0.01 to 97. Default value is 12 dB.
nf: noise floor, -80 to -20. Default value is -50 dB.
nt: noise type, w..ホワイトノイズ, v..ビニール, ..
om: output mode, o..ノイズ除去したデータ, n..ノイズデータ

% ffmpeg -i input.mp4 -af "afftdn=nr=12:nf=-25:nt=w:om=o" output.mp4

上記結合で音声ズレ、画像ズレが発生する場合、それぞれの素材を書き出しアプリが違うことが現にであることがあります(そういうじれいがありました)。一度、それぞれの素材を、ffmpegで何かしら処理してあげる(音声のノイズ除去とか)と解決するかもしれません(解決したことがありました)。

音声の調整

まず音声の状態を知る
mean_volume, max_volumeが分かる

% ffmpeg -i input.mp4 -vn -af volumedetect -f null -

音声のボリュームを上げる

% ffmpeg -i input.mp4 -af volume=2.8dB output.mp4
タイトルとURLをコピーしました