7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ffmpegを使って動画や音声を結合する

Last updated at Posted at 2023-02-10

ffmpegを使って、動画ファイルを結合したり、音声出力を変更したりしたので、
備忘録として記録しておきます。

ffmpeg version 5.0.1 で試しました。

1. 複数の動画ファイルを結合する

list.txt には結合対象ファイルを記述する。

ffmpeg -safe 0 -f concat -i list.txt -c copy output.mp4
list.txt
file 'video1.mp4'
file 'video2.mp4'

無音にする場合は、-map を使う。

ffmpeg -safe 0 -f concat -i list.txt -c copy -map 0:v:0 output.mp4

指定秒数に切るときは、-t を使う。以下は、30秒にカットする例。

ffmpeg -safe 0 -f concat -i list.txt -c copy -t 30 output.mp4

音量を調整する場合。1.0 が基準となる。以下は元の音量から2倍にさせる例。

ffmpeg -safe 0 -f concat -i list.txt -vcodec copy -af "volume=2.0" output.mp4

音声にフェード処理を入れる場合。以下は、開始5秒地点から1秒かけて無音からフェードインさせる例。

ffmpeg -safe 0 -f concat -i list.txt -vcodec copy -af "afade=t=in:st=5:d=1" output.mp4

2. 動画ファイルと音声ファイルを結合する

2-1. 両方の音声を出力させる

ffmpeg -safe 0 -f concat -i list.txt -i audio.mp3 -filter_complex "amix" output.mp4

・動画ファイルの音声:出力あり
・音声ファイルの音声:出力あり

※動画ファイルと音声ファイルを結合する場合、出力ファイルの尺は長い方が優先される。
つまり、動画ファイルの合計時間が音声ファイルよりも長ければ、終盤で無音状態が発生する。

オプション -t を使うと出力ファイルの尺を変更することができる。

ffmpeg -safe 0 -f concat -i list.txt -i audio.mp3 -t 30 -filter_complex "amix" output.mp4

2-2. 音声ファイルの音声のみを出力させる

ffmpeg -safe 0 -f concat -i list.txt -i audio.mp3 -map 0:v:0 -map 1:a:0 output.mp4

・動画ファイルの音声:出力なし
・音声ファイルの音声:出力あり

2-3. 動画ファイルの音声のみを出力させる

ffmpeg -safe 0 -f concat -i list.txt -i audio.mp3 -map 0:v:0 -map 0:a:0 output.mp4

・動画ファイルの音声:出力あり
・音声ファイルの音声:出力なし

3. 動画ファイルと音声ファイルの組み合わせ

3-1. 音量の調整

音声ファイルの音量を調整する場合。

ffmpeg -safe 0 -f concat -i list.txt -i audio.mp3 -map 0:v:0 -map 1:a:0 \
-filter_complex "[1:a]volume=2.0" output.mp4

動画ファイルの音声と音声ファイルの音声の音量をそれぞれ調整する場合。

ffmpeg -safe 0 -f concat -i list.txt -i audio.mp3 -filter_complex "\
[0:a]volume=2.0[0a];[1:a]volume=0.5[1a];[0a][1a]amix" output.mp4

・[0:a] : 動画ファイルの音声
・[1:a] : 音声ファイルの音声

3-2. 音声フェード処理(フェードイン / フェードアウト)

音声ファイルの音声にフェード処理を入れる場合。

ffmpeg -safe 0 -f concat -i list.txt -i audio.mp3 -map 0:v:0 -map 1:a:0 \
-filter_complex "[1:a]afade=t=in:st=5:d=1" output.mp4

動画ファイルの音声と音声ファイルの音声それぞれにフェード処理を入れる場合。

ffmpeg -safe 0 -f concat -i list.txt -i audio.mp3 -filter_complex "\
[0:a]afade=t=in:st=5:d=1,afade=t=out:st=30:d=2[0a]; \
[1:a]afade=t=in:st=5:d=1,afade=t=out:st=30:d=2[1a]; \
[0a][1a]amix" output.mp4

3-3. 音量の調整 と 音声フェード処理

音量の調整かつ音声フェード処理を、動画ファイルと音声ファイルそれぞれに設定する場合。

ffmpeg -safe 0 -f concat -i list.txt -i audio.mp3 -filter_complex "\
[0:a]volume=2.0,afade=t=in:st=5:d=1,afade=t=out:st=30:d=2[0a]; \
[1:a]volume=0.5,afade=t=in:st=5:d=1,afade=t=out:st=30:d=2[1a]; \
[0a][1a]amix" output.mp4

参考

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?