質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Q&A

解決済

1回答

1208閲覧

pythonで動画を再生したい

Supernove

総合スコア1154

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

0グッド

0クリップ

投稿2018/01/09 09:10

編集2018/01/09 09:38

###前提・実現したいこと
pythonとOpenCVを使って動画を再生したいのですが、再生ができません。

###発生している問題・エラーメッセージ
エラーメッセージが何も出ずに終了してしまいます。動画ファイルが開かず、何もウィンドウが表示されません。

###該当のソースコード

play_video.py

1# -*- coding: utf-8 -*- 2 3import numpy as np 4import cv2 5 6cap = cv2.VideoCapture('monkey.mp4') 7 8while(cap.isOpened()): 9 ret, frame = cap.read() 10 11 gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) 12 13 cv2.imshow('frame',gray) 14 if cv2.waitKey(1) & 0xFF == ord('q'): 15 break 16 17cap.release() 18cv2.destroyAllWindows()

###試したこと

  • 下記のサイトを参考にして、ffmpegのdllファイルをpythonがあるフォルダにコピーしました。

http://amdkkj.blogspot.jp/2017/06/opencv-python-for-windows-playing-videos_17.html

  • cap = cv2.VideoCapture(monkey.mp4)cap = cv2.VideoCapture(0)と変更すると、問題なく動きます。

###補足情報(言語/FW/ツール等のバージョンなど)

  • python2.7
  • windows10
  • OpenCV3.3

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

LouiS0616

2018/01/09 09:28

cap.isOpened()の結果が気になるところです。『動画ファイルが開けない』のと『開けたけど表示できない』のとでは大きな差があります。
Supernove

2018/01/09 09:32

動画ファイルが開けないです。
LouiS0616

2018/01/09 09:34

絶対パスで記述するとどうなりますか?
diningyo

2018/01/09 09:35

提示いただいたリンク先の「※前提: サンプルデータのaviファイルは再生できること。」については確認されましたか?
Supernove

2018/01/09 09:56

絶対パスを書いても同じような症状が起きます。サンプルデータでも確認できませんでした。
diningyo

2018/01/09 10:25

もう一点。”サンプルデータで再生されない”とのことですが、OpenCVはどのようにインストールしましたか?
guest

回答1

0

ベストアンサー

おそらく、DLLへのパスが適切に設定されていないのだと思います。
ご案内いただいたOpenCVのデータを使って、試しに以下のような形で全てのファイルをスクリプトのフォルダに集約すると、再生できました。

  • sample.py - 提示頂いたソースコード
  • tree.avi - OpenCV付属のサンプルのavi
  • theseaalsorisesFKYmp4.mp4 - 適当にダウンロードしたサンプルのmp4
  • cv2.pyd - opencvのpythonモジュール
  • opencv_ffmpeg330_64.dll - OpenCVのDLL

上記のDLLを格納した場所がWindowsのPATHに含まれているかは確認されていますか?

投稿2018/01/09 14:20

diningyo

総合スコア379

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Supernove

2018/01/09 16:15 編集

ご回答ありがとうございます。確認したところ、教えていただいた方法で動画が再生できました。ただ、何も設定していないのですが動画が早送りになってしまいます。そして、次のエラーが出てしまいました。【cv2.error: C:\build\2_4_winpack-bindings-win32-vc14-static\opencv\modules\highgui\src\window.cpp:261: error: (-215) size.width>0 && size.height>0 in function cv::imsho w】 このエラーの解決方法も教えていただけると幸いです。
LouiS0616

2018/01/09 16:58

> 動画が早送りになる waitKeyの引数でフレーム間の待ち時間を調整してください。 > 次のエラーが出てしまいました。 空っぽの画像を無理矢理表示しようとすると出るエラーです。 retがFalseのときループから脱出するようにコードを書くと良いかと。
diningyo

2018/01/10 02:51

> Supernoveさん 動作したようで良かったです。今回の対応で動作できたのなら、dllの配置場所を変えて、環境変数を適切に設定すれば他のスクリプトからも参照可能だと思います。 後続のエラーについてはLouiS0616さんのコメントを御覧ください。 > LouiS0616さん フォローありがとうございました。
Supernove

2018/01/11 09:57

皆さんご回答いただき、ありがとうございます。無事問題が解決できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問