私はソースからUbuntuでコンパイルされたOpenCV 2.2.0を使用しています。あなたが提供したソースコードが期待どおりに動作することを確認できます。だから問題はどこか他の場所にある。
私は(私のマシン上の問題を少しそれをされたインストール)MEncoderでを使用して問題を再現できなかったので、私はAVIコンテナに生の映像をラップするffmpeg
を使用:
ffmpeg -s cif -i ~/local/sample-video/foreman.yuv -vcodec copy foreman.avi
(職長を。 yuvは、あなたがlook aroundならネットで見つけることができる標準的なCIF画像シーケンスです)。 ffmpeg
からソースを通じてAVIを実行
はこれを与える:予想通り
[email protected]:~/Desktop/stackoverflow$ python ocv_video.py foreman.avi
<Capture 0xa71120>
352.0
288.0
<iplimage(nChannels=3 width=352 height=288 widthStep=1056)>
<iplimage(nChannels=3 width=352 height=288 widthStep=1056)>
...
だから、物事が働きます。チェックする対象:
- 標準出力/標準エラーでエラーが発生しますか? OpenCVは
ffmpeg
ライブラリを使用してビデオファイルを読み込みますので、参考にしてください。ここでは、(自分の問題に似て聞こえる)コンテナなしでRAWビデオファイルを再生しようとすると何が起こるかです:
エラー:
[email protected]:~/Desktop/stackoverflow$ python ocv_video.py foreman.yuv
[IMGUTILS @ 0x7fff37c8d040] Picture size 0x0 is invalid
[IMGUTILS @ 0x7fff37c8cf20] Picture size 0x0 is invalid
[rawvideo @ 0x19e65c0] Could not find codec parameters (Video: rawvideo, yuv420p)
[rawvideo @ 0x19e65c0] Estimating duration from bitrate, this may be inaccurate
GStreamer Plugin: Embedded video playback halted; module decodebin20 reported: Your GStreamer installation is missing a plug-in.
<Capture 0x19e3130>
0.0
0.0
- はあなたのAVIファイルは、実際に必要な情報が含まれていることを確認しますビデオを再生する。少なくとも、これはフレームの寸法でなければなりません。 RAWビデオには通常、実際のピクセルデータ以外の情報は含まれていないため、フレームの寸法とFPSを知る必要があります。 FPSを間違って推測しても、表示可能なビデオを得ることはできますが、寸法が間違っていると、ビデオは視聴できなくなります。
- 開こうとしているAVIファイルが実際に再生可能であることを確認してください。試してみてください
ffplay file.avi
- それが失敗した場合は、ファイルに問題がある可能性があります。 mencoder
の代わりにffmpeg
を使用してトランスコードしてみてください。
- 上記と同じ方法で他の動画を再生できることを確認してください。できない場合は、
ffmpeg
インストールが壊れている可能性があります。
これはまさに私が探していたものです。これは、Opencvの2.1パッケージを使用してUbuntu 10.04で私にとって完璧に機能しました。ありがとう! – Cerin