24

HEADSHOT.MOV と SCREEN.MOV の 2 つのビデオがあります。どちらも大きなファイルであり、縮小 (サイズ、ビットレートなど) して、これら 2 つを同じ非常に広いビデオ フレームに並べて配置することを検討しています。最終的に、output_video.mp4 を再生すると、両方のビデオが同期し、同じレートで再生される非常に広いフレームが得られます。

これは、私がやろうとしていることの構文的に間違ったバージョンです:

ffmpeg -i HEADSHOT.MOV -t 00:02:00 -acodec libfaac -ab 64k -vcodec libx264 -r 30 -pass 1 -s 374x210 -vf "movie=SCREEN.MOV [small]; [in][small] -an -r 30 -pass 1 -s 374x210 overlay=10:10 -t 00:02:00 [out]" -threads 0 output_movie.mp4

上記の例では、テスト ムービーの長さを 2 分間に設定しようとしましたが、別の質問が発生します。長さが異なる 2 つのムービーを処理する最善の方法は何ですか (それらが近い場合)。

これまでに役立つリソースは次のとおりです。

複数のビデオ ソースを 1 つに結合し

http://ffmpeg.org/ffmpeg.html#overlay-1

どんな助け/アドバイスも大歓迎です。FFMPEG 構文に問題があります。ありがとうございました!

4

2 に答える 2

34

次のように、スケール、パッド、オーバーレイ フィルターを組み合わせて結果を得ることができます。

ffmpeg.exe -i LeftInput.mp4 -vf "[in] scale=iw/2:ih/2, pad=2*iw:ih [left]; 
    movie=RightInput.mp4, scale=iw/3:ih/3, fade=out:300:30:alpha=1 [right]; 
    [left][right] overlay=main_w/2:0 [out]" -b:v 768k Output.mp4

ここでは、最初のビデオが半分に縮小され、元のサイズにパディングされます。2 番目のビデオは 3 分の 2 に縮小され、最初のビデオの右半分 (パディング領域) にオーバーレイされます。

短いビデオはフェードアウトできます。それ以外の場合、結合されたビデオの最後まで最後のフレームが表示されます。

結果のビットレートは-b:vオプションで設定できます。また、ビデオのサイズと位置は、パッド、スケール、およびオーバーレイ フィルターのピクセル単位で指定できます。

于 2012-02-15T15:55:20.560 に答える