4

Linux マシンでOpenCVを使用してビデオを書いています。Windows マシンでOpenCVを使用して同じビデオを読みたいです。openCVで提供されている標準コーデックを使用してこれを行うことはできません。

2 つのプラットフォーム間でビデオを読み書きする方法を誰か提案できますか?

4

2 に答える 2

2

OpenCV Wiki は、この問題に直接対処しています。http://opencv.willowgarage.com/wiki/VideoCodecsと、具体的には「互換性リスト」という見出しを参照してください。

残念ながら、3 つのプラットフォームすべて (Linux、Windows、OSX) でサポートされているコーデックは「DIB」「I420」と「IYUV」のみです。これらはすべて圧縮されていないビデオ コーデックであるため、ファイル サイズが非常に大きくなります。

wiki には、2 つのプラットフォームでは動作するが 3 つすべてでは動作しない可能性のある試用可能なコーデックもいくつかリストされています。

圧縮されていないビデオ ファイルを使用する場合は、VirtualDubなどのプログラムを使用して、Windows マシン上でファイル サイズが小さいものに変換できます。


編集:参考までに、Windows では、Motion-JPEG で OpenCV 出力を行い、Directstream コピー モードで VirtualDub を使用して、映画のインデックスのバグを修正するファイルを再保存します。これらの M-JPEG ビデオ ファイルは、Mac および Windows でデフォルトで再生されます。

ビデオをOpenCVに読み込もうとしている場合、まずビデオを Cinepak に変換し (仮想吹き替え、quicktime などを使用)、次にそれを OpenCV にフィードします。私が Cinepak を使用しているのは、何らかの理由で Cinepak エンコーダーが MJPEG エンコーダーよりも普及しているように見えるからです。

于 2009-11-03T16:03:11.260 に答える
1

あなたが言及したように、問題はOpenCVにあるとは思いません。コーデックにあると思います。また、OpenCV にはコーデックが付属しているとは思いません... Windows に適切なコーデックがインストールされていることを再確認してください。

ビデオコーデックに関するドキュメントを見ましたか?

于 2009-07-24T01:11:36.060 に答える