7

現在、mp4 ビデオ ファイルの読み取りを含むプロジェクトに取り組んでいます。私が遭遇した問題は、Windows 7 マシンで Python 2.7 (32 ビット)、OpenCV 2.4.3 (cv2.pyd) を使用していることです。

コード スニペットは次のとおりです。

try:
        video = cv2.VideoCapture("video.mp4")
except:
        print "Could not open video file"
        raise
print video.grab()

" video.grab()" は常に false を返します: ファイルを読み取らないことを意味します " video.mp4" しかし、これを試してみると:

try:
        video = cv2.VideoCapture("video.avi")
except:
        print "Could not open video file"
        raise
print video.grab()

" " は true を返します: " " ファイルvideo.grab()を読み取ることができることを意味します。.avi

もう 1 つは、この同じスニペットを Linux と Mac で試したところ、問題なく動作するようで、mp4 ファイルと avi ファイルの両方を読み取ることができるということです。

この問題は、この問題この問題に似ています。どちらもまだ明確で実行可能な答えを持っていません。

LinuxまたはMacを使用してこれをプログラミングする以外に、3つのシステムすべてで動作する必要があるため、助けや回避策をいただければ幸いです。

4

4 に答える 4

15

私は以前に同じ問題を抱えていましたが、この手順で解決しました:

OpenCV Python のバージョンを確認してください

>>> from cv2 import __version__
>>> __version__
'2.4.0'

次に、コピーopencv_ffmpeg.dllC:\Python27\て、関連する OpenCV Python バージョンに名前を変更します。私の場合、名前を に変更する必要がありましたopencv_ffmpeg240.dll

更新: Windows では、OpenCV インストールのビルド フォルダー内に opencv_ffmpeg DLL があります。例えば:C:\dev\opencv\build\x86\vc12\bin

次に、ファイルをコピーしてopencv_ffmpeg<version>.dll、Python インストールのルート フォルダーに貼り付けます。

于 2014-04-02T09:17:31.923 に答える
1

Windows 7 オペレーティング システムで OpenCV バージョン 2.4.11 と Python 2.7 を使用して、この問題に遭遇しました。mp4 ファイルを開いて操作することはできませんでしたが、avi ファイルを開くことはできました。

私の場合の解決策は、OpenCV インストールのビルド フォルダーから opencv_ffmpeg2411.dll ファイルをコピーし、それを Python インストールのルート フォルダーに貼り付けることでした。私の場合、DLLファイルは「C:\dev\opencv\build\x86\vc12\bin」にあり、「C:\Program Files(x86)\Python2.7」にコピーしました。

于 2015-05-24T15:51:32.633 に答える
0

mp4 には、システムがサポートしていない (または opencv がサポートしていない) コーデックが含まれている可能性がありますが、avi コーデックはサポートされている可能性があります。また、opencv がデコードに libav を使用している場合は、それをインストールする必要があります。

于 2012-12-15T23:46:38.080 に答える