FFMpeg を使用して、オーディオとビデオの両方のボリュームコントロールと特定の期間のみのループでビデオに短いオーディオを追加します。

FFMpeg を使用して、オーディオとビデオの両方のボリュームコントロールと特定の期間のみのループでビデオに短いオーディオを追加します。

オーディオとビデオの両方のボリュームコントロールと特定の期間のみのループでビデオに短いオーディオを追加します((オーディオを追加し、どちらの場合もオーディオとビデオの両方のサウンドを維持したい))

問題は2つあります

1) 音声の長さは27秒です 2) ビデオの長さは2分24秒です

a) オーディオをループしてビデオに追加したい。たとえば、ビデオ内の 50 秒から 1 分 30 秒まで (ビデオ全体ではなく、ビデオ全体を出力として取得します)、ループされたオーディオを含めます。

b) ビデオ内に50秒から1分30秒までのビデオクリップ(出力としてビデオ全体ではない)を作成し、オーディオをループさせる

ffmpeg の次のコマンドを使用してビデオにオーディオを追加しました。これにより、ビデオ全体が追加されます。i) ループオーディオを追加するビデオの一部のみを指定する ii) ループオーディオを含む選択した期間の新しいクリップを作成する

これまでのところ、ループしたり、オーディオとビデオの両方の音量を変更したり、ビデオ全体に対して次のコマンドでミックスしたりすることができました。

"-y","-i",videofile, "-filter_complex",
                        "amovie=audiofile:loop=1000,asetpts=N/SR/TB,aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=1.5[a1];" +
                        "[0:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=0.5[a2];" +
                        " [a1][a2]amerge,pan=stereo:c0<c0+c2:c1<c1+c3[out]",
                        "-map","0:v","-map","[out]","-c:v","copy","-c:a","aac","-shortest","-preset", "ultrafast", outputfile

どちらの場合も時間管理に困っています

答え1

使用

amovie=audiofile:loop=1000,asetpts=N/SR/TB,atrim=0:40,adelay=50000|50000,apad,aformat=...

トリムはループされたオーディオの最初の 40 秒を保持し、adelay は開始時間を 50000 ミリ秒、つまり 50 秒にシフトします。

答え2

これは、1) オーディオをループする、2) オーディオとビデオの両方の音量を変更する、3) 設定された期間のみの新しいファイルを作成する、4) ビデオの特定の部分で元のビデオ期間とオーディオを含むファイルを作成する、という内容でビデオにオーディオを追加するためのコードです。

A) 設定された期間の新規ファイルのみ

"-y","-i",j,
                        "-filter_complex",
                        "amovie="+audio+":loop=999,asetpts=N/SR/TB," +
                                "atrim=0:40,adelay=50000|50000,aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=1.5[a1];" +
                                "[0:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=2.0[a2];" +
                                " [a1][a2]amerge,pan=stereo:c0<c0+c2:c1<c1+c3[out]",
                        "-ss","50", "-t","40","-map","0:v","-map","[out]","-c:v","copy","-c:a","aac","-preset", "ultrafast", out

私たちがやることは"-ss","50", "-t","40"

b) オリジナルのビデオの長さとビデオの特定の部分のオーディオを含むファイルの場合

"-y","-i",j,
                            "-filter_complex",
                            "amovie="+audio+":loop=999,asetpts=N/SR/TB," +
                                    "atrim=0:40,adelay=50000|50000,aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=1.5[a1];" +
                                    "[0:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=2.0[a2];" +
                                    " [a1][a2]amerge,pan=stereo:c0<c0+c2:c1<c1+c3[out]",
                            "-ss","50", "-map","0:v","-map","[out]","-c:v","copy","-c:a","aac","-preset", "ultrafast", out

私たちがやることは"-ss","50" しかし追加しないでください「-t」、「40」`

関連情報