フレーム内のマーカー (画像) の存在を検出してビデオを分割しようとしています。私はドキュメンテーションを調べましたが、そうでremovelogo
はありませんdetectlogo
。
これを達成する方法を知っている人はいますか?ロゴが何であるか、それが表示される地域を知っています。
すべてのフレームを png に抽出し、それらを 1 つずつ (または n x n) 分析できると考えていますが、それは長いプロセスになる可能性があります...
ポインタはありますか?
フレーム内のマーカー (画像) の存在を検出してビデオを分割しようとしています。私はドキュメンテーションを調べましたが、そうでremovelogo
はありませんdetectlogo
。
これを達成する方法を知っている人はいますか?ロゴが何であるか、それが表示される地域を知っています。
すべてのフレームを png に抽出し、それらを 1 つずつ (または n x n) 分析できると考えていますが、それは長いプロセスになる可能性があります...
ポインタはありますか?
ffmpeg にはネイティブにそのような機能はありません。フィルターはdelogo
、パラメーターに長方形の領域を取り、その周囲に基づいてその領域を補間するだけで機能します。領域が以前に何を含んでいたかは気にしません。以前に含まれていたものに関係なく、領域を埋めます。
ロゴの存在を検出する必要がある場合、それはまったく別の作業です。自分で作成する必要があります。これについて真剣に考えている場合は、ffmpeg フィルター API に慣れ始めて、手を汚す準備をすることをお勧めします。ロゴに独特の色がある場合、それはそれを検出する良い方法かもしれません。
あなたが求めているのはおそらく、どのフレームにロゴが含まれているか (または含まれていないか) に関する情報を出力するだけなので、モデルとして見る 1 つのフィルターはblackframe
フィルター (すべて黒のフレームを検索する) になります。
ロゴ検出モジュールを作成し、ビデオをデコードし(YUV 420P FORMAT)、生のフレームをこのモジュールにフィードし、ロゴが期待される領域でSAD(絶対差の合計)を実行します。SADが無視できる場合は、一致し、フレーム番号を記録します。これらのフレームでビデオを分割できます。SADはY(luma)フレームでのみ実行されます。処理を節約するために、デコードする前にビデオを低解像度にスケーリングできます。