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