部屋に 2 台のネットワーク カメラで撮影したビデオ ファイルのペアが多数あります。帯域幅の使用率のため、ビデオ ファイルのフレーム レートは可変です。私が理解している限り、タイムラインでフレームをマークすると、次のようになります。
この 2 つのビデオを同期させたいと思います。同期とは、ビデオの特定のフレームに対応するフレームが他のビデオにあるようにギャップを埋めることを意味します。最終的には、次のような 2 つのビデオが必要です。
コンバーター ツールを使用して両方のビデオを 25 fps に変換することを考えましたが、同期される冗長なフレーム ペアがあります。ただし、すべての動画の各フレームに関連付けられた情報があるため、変換後に関連付けを知ることはできません。
それに応じて各フレームに関連付けられた情報を保持できるように、これをプログラムで行う必要があると思います。
これまで OpenCV を試してきましたが、VideoCapture
プロパティCV_CAP_PROP_POS_MSEC
はフレームのミリ秒ではなく、フレーム番号を提供します。正しい値が得られたとしても、VideoWriter
可変フレームレートはサポートされていません。MATLAB は MJPEG (motion jpeg) であるコーデックをサポートしていないため、ビデオ ファイルの読み取りを拒否します。Python でpygletを使用して、フレーム番号と対応するミリ秒を読み取ることができました。しかし、それは単なるデコーダーであり、「これはフレーム #12 であり、これは正確にビデオの 1.76 秒にあるはずです」のようなビデオ ファイルに書き込むものはまだありません。
これを達成する最も簡単な方法を探しています。言語、ツールは関係ありません。Windows ベースのソリューションは高く評価されています。回答ありがとうございます。
PS。出力形式は気にしませんが、ロスレス形式を好みます。