web-dev-qa-db-ja.com

2つのビデオクリップを1つに結合し、互いに隣り合わせに配置する

2つのビデオクリップがあります。どちらも640x480で、最後の10分間です。 1つはバックグラウンドオーディオを含み、もう1つは歌う俳優です。 1280x480の単一の10分のビデオクリップを作成したいと思います(つまり、ビデオを隣り合わせに配置して同時に再生し、両方のクリップのオーディオをミキシングしたい)。私はffmpeg/avidemuxでこれを行う方法を理解しようと試みましたが、これまでのところ空っぽです。それらはすべて、私がマージを検索するときの連結について言及しています。

何かお勧めですか?

43
User402841
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

48
Jan

正直なところ、 受け入れられた答え を使用すると、多くのフレームがドロップされます。

ただし、hstack filter_complexを使用すると、完全に滑らかな出力が生成されます。

ffmpeg -i left.mp4 -i right.mp4 -filter_complex hstack output.mp4
31

これは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
  • hstack は、各ビデオを並べて配置します。
  • amerge は、両方の入力からのオーディオを単一のマルチチャネルオーディオストリームに結合し、-ac 2はステレオにします。このオプションがないと、両方の入力がステレオの場合、オーディオストリームは最終的に4チャネルになる可能性があります。
24
llogan
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画像のパスを設定します。

これをビデオの下に表示ビデオの上から作成コマンド

enter image description here

2
Sanjay Hadiya