2つのビデオクリップがあります。どちらも640x480で、最後の10分間です。 1つはバックグラウンドオーディオを含み、もう1つは歌う俳優です。 1280x480の単一の10分のビデオクリップを作成したいと思います(つまり、ビデオを隣り合わせに配置して同時に再生し、両方のクリップのオーディオをミキシングしたい)。私はffmpeg/avidemuxでこれを行う方法を理解しようと試みましたが、これまでのところ空っぽです。それらはすべて、私がマージを検索するときの連結について言及しています。
何かお勧めですか?
ffmpeg \
-i input1.mp4 \
-i input2.mp4 \
-filter_complex '[0:v]pad=iw*2:ih[int];[int][1:v]overlay=W/2:0[vid]' \
-map [vid] \
-c:v libx264 \
-crf 23 \
-preset veryfast \
output.mp4
これにより、元のビデオと同じサイズの黒が右側にパディングされ、input2.mp4のサイズが基本的に2倍になり、オーバーレイフィルターを使用してその黒の領域の上にinput2.mp4が配置されます。
ソース: https://superuser.com/questions/153160/join-videos-split-screen
正直なところ、 受け入れられた答え を使用すると、多くのフレームがドロップされます。
ただし、hstack
filter_complexを使用すると、完全に滑らかな出力が生成されます。
ffmpeg -i left.mp4 -i right.mp4 -filter_complex hstack output.mp4
これは2つのフィルターで実行でき、両方の入力からのオーディオも含まれます。
ffmpeg -i left.mp4 -i right.mp4 -filter_complex \
"[0:v][1:v]hstack=inputs=2[v]; \
[0:a][1:a]amerge[a]" \
-map "[v]" -map "[a]" -ac 2 output.mp4
ffmpeg -y -ss 0 -t 5 -i inputVideo1.mp4 -ss 0 -t 5 -i inputVideo2.mp4 -i BgPaddingImage.jpg -filter_complex nullsrc=size=720*720[base];[base][2:v]overlay=1,format=yuv420p[base1];[0:v]setpts=PTS-STARTPTS,scale=345*700[upperleft];[1:v]setpts=PTS-STARTPTS,scale=345*700[upperright];[base1][upperleft]overlay=shortest=1:x=10:y=10[tmp1];[tmp1][upperright]overlay=shortest=1:x=366:y=10 -c:a copy -strict experimental -ss 0 -t 5 -preset ultrafast -an output.mp4
2つの動画を並べて追加し、動画に表示されるオーバーレイ画像を追加して、背景画像を変更できます[BgPaddingImage.jpg]
ここでbg画像のパスを設定します。
これをビデオの下に表示ビデオの上から作成コマンド