ffmpegを使用して背景が透明なビデオを作成する方法

  最近、Web ページにデジタル ヒューマンの説明機能を重ね合わせようとしましたが、長方形のデジタル ヒューマンのビデオを Web ページに直接配置すると、効果が非常に低いことがわかりました。まず、多くのコンテンツがブロックされてしまいます。次に、図に示すように、どのようなタスクの背景が使用されていても、画面は次の Web ページとあまり連携していません。
ここに画像の説明を挿入します

  ビデオの背景を削除して人物だけを表示できればさらに良いでしょう。いくつかの調査と実験の結果、私は最終的に透明な背景ビデオをバッチで自動的に実現できる方法を発見しました。最終的な効果は次のとおりです:
ここに画像の説明を挿入します
  Tencent Zhiying を使用してデジタル ユーザー向けのビデオを生成しました。グリーン スクリーン ビデオの透明な背景については、知っておくべき非常に重要な情報があります。すべてのビデオ形式 (ビデオ エンコーディング) が透明な背景をサポートしているわけではありません。まず、最も一般的に使用されている mp4 は透明な背景をサポートしていません (h264 か h265 かにかかわらず) ). サポートされていません。現在、Google の vp9 (webm) 形式など、透明な背景をサポートしているビデオ エンコーディングは限られています。上の図では、webm+vp9 でエンコードされたビデオを使用しました。この種のビデオ互換性の実際のテストは良好ではなく、たとえば Apple の Safari ブラウザでは背景を透明にすることができません。

  もう 1 つの問題は、WebM 形式が普及していないことです。たとえば、Tencent Zhiying はエクスポートに mp4 のみをサポートしており、Cutting や Final Cut Pro などのプロの編集ソフトウェアでも、背景が透明な WebM 形式を編集してエクスポートすることはできません。ここで試してみたところ、ffmpeg を使用するとグリーン スクリーンを簡単に削除し、背景が透明な WebM ビデオ形式をエクスポートできることがわかりました。完全なコマンドは次のとおりです。

ffmpeg -i green_video.mp4 -filter_complex "[0:v]colorkey=0x299530:0.1:0.1[ckout]" -map "[ckout]" -map 0:a -c:v libvpx-vp9 -b:v 2M -c:a libvorbis output.webm

  ここで、最も重要なパラメータについて説明する必要があります。 -filter_complex "[0:v]colorkey=0x299530:0.1:0.1[ckout]" -map "[ckout]" その中で、0x299530 は、私が使用したグリーン スクリーンの RGB 値です。お使いの環境の RGB 値に応じて調整できます。グリーンスクリーン。他のパラメータは比較的単純です。詳細については、ffmpeg シリーズの記事を参照してください。

おすすめ

転載: blog.csdn.net/xindoo/article/details/134096967