3

部屋に 2 台のネットワーク カメラで撮影したビデオ ファイルのペアが多数あります。帯域幅の使用率のため、ビデオ ファイルのフレーム レートは可変です。私が理解している限り、タイムラインでフレームをマークすると、次のようになります。

可変フレームレート

この 2 つのビデオを同期させたいと思います。同期とは、ビデオの特定のフレームに対応するフレームが他のビデオにあるようにギャップを埋めることを意味します。最終的には、次のような 2 つのビデオが必要です。

ここに画像の説明を入力

コンバーター ツールを使用して両方のビデオを 25 fps に変換することを考えましたが、同期される冗長なフレーム ペアがあります。ただし、すべての動画の各フレームに関連付けられた情報があるため、変換後に関連付けを知ることはできません。

それに応じて各フレームに関連付けられた情報を保持できるように、これをプログラムで行う必要があると思います。

これまで OpenCV を試してきましたが、VideoCaptureプロパティCV_CAP_PROP_POS_MSECはフレームのミリ秒ではなく、フレーム番号を提供します。正しい値が得られたとしても、VideoWriter可変フレームレートはサポートされていません。MATLAB は MJPEG (motion jpeg) であるコーデックをサポートしていないため、ビデオ ファイルの読み取りを拒否します。Python でpygletを使用して、フレーム番号と対応するミリ秒を読み取ることができました。しかし、それは単なるデコーダーであり、「これはフレーム #12 であり、これは正確にビデオの 1.76 秒にあるはずです」のようなビデオ ファイルに書き込むものはまだありません。

これを達成する最も簡単な方法を探しています。言語、ツールは関係ありません。Windows ベースのソリューションは高く評価されています。回答ありがとうございます。

PS。出力形式は気にしませんが、ロスレス形式を好みます。

4

1 に答える 1

1

これを行う最も簡単な方法は、両方を同じ fps (25 としましょう) に変換してから、それらを一致させることです。ffmpeg は、このための優れたツールです。詳細については、このブログ投稿を確認してくださいhttp://www.hdslr-cinema.com/news/workflow/convert-between-framerates/

しかし、おそらく、空のスロットをカバーするためにフレームが複製されます。これで要件が満たされない場合は、時間補間 (フレーム間でピクセルを補間する) を検討する必要があります。しかし、これは大変な作業です。ffmpeg ソリューションは 5 分間のタスクです。補間は、いくつかの学術論文を読んで実装することを意味する場合があります。

補間専用のツールがいくつかあるかもしれませんが、私はそれらについて知りません。調査する価値があります。

于 2012-07-18T08:27:58.693 に答える