web-dev-qa-db-ja.com

FFMPEG 2ビデオがトランスコードされ、1フレームに並んでいますか?

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分間に設定しようとしましたが、これは別の問題を引き起こします。

これまでに参考にしたリソースは次のとおりです。

1つに結合された複数のビデオソース および

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

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

24
dcoffey3296

結果は、スケール、パッド、オーバーレイフィルターの組み合わせで次のように実現できます。

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オプションで設定できます。また、ビデオのサイズと位置は、パッド、スケール、オーバーレイフィルターのピクセル単位で指定できます。

33