FFMPEG 共通コマンド オーディオとビデオのマージ

       

目次

1. オーディオの結合

1. 音声の長さを取得する

2. 2 つのオーディオを結合する

3. オーディオを結合して空白を挿入する

2. ビデオと背景画像

3. オーディオとビデオの合成

1.ビデオの音声を保存する

2.ビデオの音声を残さないでください

4.ビデオを結合する


        この記事では、いくつかの例を使用して、主にオーディオ処理、ビデオ処理、およびオーディオとビデオの合成に関わる ffmpeg コマンドの包括的な使用法を紹介します。

1. オーディオの結合

1. 音声の長さを取得する

ffprobe -i 1.mp3 -show_entries format=duration -v quiet -of csv="p=0"

2. 2 つのオーディオを結合する

ffmpeg -i 1.mp3 -i 2.mp3 -filter_complex amerge -ac 2 -c:a libmp3lame -q:a 4 output.mp3

パラメータの説明:

-ac: サウンドのチャンネル数を設定します。 

-c:a: オーディオエンコーダを指定します。

libmp3lame: MP3オーディオエンコーダ

-q:a: 出力オーディオの品質を示します。通常は 1 ~ 5 です (1 が最高品質です)。 

3. オーディオを結合して空白を挿入する

        オーディオの 3 つのセグメントを結合し、各セグメント間に 1 秒のギャップを追加します。

ffmpeg -i 1.mp3 -i 2.mp3 -i 3.mp3 -filter_complex "[1:a]adelay=1000[a1];[2:a]adelay=1000[a2];[0:a][a1][a2]concat=n=3:v=0:a=1" output.mp3

パラメータの説明:

[1:a]alay=1000[a1]: 2 番目のセグメント素材のオーディオ (ビデオの場合は [1:v])、再生は 1000 ミリ秒遅延され、後で使用するために値が a1 に割り当てられます。 。同様に、a2を定義する。

[0:a][a1][a2]concat=n=3: 最初の素材の音声、a1、a2 を結合します。n=3 は 3 つのセグメントを意味します。

v=0:a=1: 音声なし、音声のみ。

2. ビデオと背景画像

        ビデオの水平バージョンを 1080x1920 の垂直バージョンの背景の前に、上下に同じ距離で配置し、その後、透明な背景を持つ字幕画像を家の屋上に配置すると、次のような効果が得られます。

ffmpeg -i 1.mp4 -i bg.jpg -i font.png -filter_complex "[0:v]scale=1080:-1[video];[1:v][video]overlay=x=0:y=(1920-h)/2[v1];[v1][2:v]overlay" -codec:a copy  output1.mp4

パラメータの説明:

[0:v]scale=1080:-1[video]: 最初の素材のビデオのみを取得し、比率に従って幅 1080 にリサイズし、出力値をビデオに割り当てます。

[1:v][video]overlay=x=0:y=(1920-h)/2[v1]: 背景画像の上層にビデオを配置します。位置は x、y、出力値ですv1です。

[v1][2:v]overlay: 3 番目の素材のビデオを v1 の上に配置します。

-codec:a copy: サウンドのコーデックを指定します。機能セット リスト内の名前を使用する必要があります (コーデックは実行されないことを示すために「コピー」に設定されます)。

3. オーディオとビデオの合成

1.ビデオの音声を保存する

        元の動画には音声が入っていますので、元の動画の音声はそのままに、背景音を追加し、背景音の音量を小さくします。

ffmpeg -i 1.mp4 -i 1.mp3 -filter_complex "[1:a]volume=0.3[a1];[0:a][a1]amix=inputs=2:duration=first[a]" -map 0:v -map "[a]" -c:v copy -c:a aac -y output.mp4

パラメータの説明:

[1:a]volume=0.3[a1]: 2 番目の素材の音量は 30%、出力値は a1 です。

[0:a][a1]amix=inputs=2:duration=first[a]: 最初の素材 (ビデオ) のサウンドが背景サウンドとミックスされ、デュレーションは最初の素材のサウンドとなり、出力されます。値は a です。

-map 0:v: ビデオ ストリーミング スプライシング。ここにはビデオが 1 つだけあります。

-map "[a]": オーディオ ストリームのスプライシング。ここでは出力だけを取得します。

-c:v copy: ビデオエンコーディングは変更されません。

-c:a aac : 音声エンコーディング準拠。

2.ビデオの音声を残さないでください

        元のビデオの音声を削除して再ダビングし、音声の前に 1 秒の空白スペースを追加します。

ffmpeg -i 1.mp4 -i 1.mp3 -filter_complex "[0:v]trim=0:10.1[v];[1:a]adelay=1000[a];[v][a]concat=n=1:v=1:a=1" -c:v libx264 -c:a aac -movflags +faststart output.mp4

パラメータの説明:

[0:v]trim=0:10.1[v]: ビデオには 1 ~ 10.1 秒かかります。単位は秒で、出力には v が割り当てられます。

[1:a]alay=1000[a]: オーディオ デモは 1000 ミリ秒で再生されます。ここでの単位はミリ秒です。

[v][a]concat=n=1:v=1:a=1: オーディオとビデオが結合され、出力にはビデオとオーディオが必要です。

-c:v libx264: ビデオエンコーディングに x264 を使用します。

-c:a aac: オーディオエンコーディング acc;

-movflags +faststart: このパラメータは mp4 のメタデータに関連しており、faststart に設定すると、moov が mdat の前に移動され、オンラインで再生するときに若干速くなります。

4.ビデオを結合する

        複数のビデオを結合するには、まず次の内容を含むビデオ リスト ファイル (merge_video.txt など) を生成します。

file '1.mp4'
file '2.mp4'
file '3.mp4'
file '4.mp4'

        次に、このファイルをビデオの結合に使用します。

ffmpeg.exe -f concat -safe 0 -i merge_video.txt -c copy -y merge_video.mp4

パラメータの説明:

-f concat: スプライシング操作を示します。

-safe 0: ファイル セキュリティ チェックのレベルを 0 としてマークします。つまり、セキュリティ要素を考慮しません。

-c copy: エンコーディングは変更されません。

-y: 出力ファイルを上書きします

おすすめ

転載: blog.csdn.net/xian0710830114/article/details/130921272