web-dev-qa-db-ja.com

ffmpegソースビデオの回転とオーバーレイ画像の適用

私はこれにいくつかの問題を抱えています、私は逆さまに記録されたソースビデオを持っています。このビデオを回転させて、その上にいくつかの透明なPNGファイルをオーバーレイする必要があります。私はこのコマンドを使用しています:

ffmpeg -i Upside_Down.mov -r 1 -i overlays_%d.png -c:v libx264 -r 30 -pix_fmt yuv420p -filter_complex "overlay=0:0" output.mkv

上記のコマンドは完全に機能しますが、ソースビデオを逆さまに保つことは明らかです。回転は、-vf vflip:hflipで実現できることはわかっていますが、機能していないようです。この目標を達成する方法はありますか、それとも2回目の実行でソースビデオを反転してオーバーレイを適用する唯一のオプションです。つまり、最初にffmpeg -i Upside_Down.mov -vf vflip:hflipを実行し、完了時に上記のコードコードを実行しますか?

3
Drime

追加のフィルターで構成される filterchain を作成する必要があります。

ffmpeg -i Upside_Down.mov -r 1 -i overlays_%d.png -c:v libx264 -c:a copy -filter_complex "[0:v][1:v]overlay,vflip,hflip,format=yuv420p[out]" -map "[out]" -map 0:a output.mkv
  • フィルタの入力リンクラベルと出力リンクラベルに明示的にラベルを付けるのが好きなので、未知のデフォルトに依存するのではなく、何が起こっているのかを正確に把握できます。 [0:v]は最初の入力のビデオストリーム(Upside_Down.mov)を参照し、[1:v]は2番目の入力のビデオストリーム(overlays_%d.png)を参照します。 。

  • -c:a copyストリームコピー オーディオに再エンコードする代わりに追加しましたが、Upside_Down.movにオーディオが含まれているかどうかわかりません。これが、コマンドからの完全なffmpegコンソール出力を常に含める必要がある理由の1つです。

  • ピクセルフォーマットの変更はフィルタリングを介して実行できるため、-pix_fmtから formatビデオフィルター に変更しました。これにより、潜在的な変換を必要なときに正確に実行できます。 -rfpsビデオフィルター でも同じことをしました(ただし、フレームレートを変更する可能性がある理由はわかりません。コンソール出力が便利だったでしょう) 。

  • 参照: FFmpegでビデオを180°(垂直/逆さま)反転する方法は?

3
llogan