Python
OpenCV
動画
python3
VideoCapture

PythonのOpenCVで VideoCapture 関数が動画ファイルを読み込んでくれない

pythonのopencvで動画ファイルを読み込んでなにやらしようとしたら、動画ファイルを読み込んでくれなかった。

(pythonファイル内)
cap = cv2.VideoCapture(video_path)
while True:
    ret, img = cap.read()
    # あとは img 好きなように...

(実行時の出力)
OpenCV: Couldn't read video stream from file "*****"

いろいろ調べたところ、よく出る解決策が skvideo.io をimportして使え、というもの。

言われるがままにやってみた。

まず、pipでインストール

(以下を実行)
pip install sk-video

そして、pythonのソースコード

import skvideo.io #追加

#cap = cv2.VideoCapture(video_path) ← 削除

reader = skvideo.io.FFmpegReader(video_path) #追加


#while True:  ← 削除
#    ret, img = cap.read() ← 削除  

for img in reader.nextFrame(): #追加
    #あとは img を好きなように...

これで動きました。
上のコードでいうretが取得できていませんが、都合の悪い人はすみませんが調べてみてください...

python
python3
skvideo.io
opencv
OpenCV: Couldn't read video stream from file