python - 在Anaconda中播放文件中的视频

标签 python opencv numpy video-capture anaconda

这是我第一次问,所以这是一个非常基本的问题。我正在尝试在Windows上使用Anaconda播放保存的视频,但是由于某种原因没有任何播放。目的是播放当前文件,然后进行实时视觉跟踪。这是我的代码:

import numpy as np
import cv2

cap = cv2.VideoCapture('Animal3.h264')

while(cap.isOpened()):

    print 'opened'
    ret, frame = cap.read()
    gray = cv2.cvtColor(frame, cv2.Color_BGR2GRAY)

    cv2.imshow('frame', gray)
    if cv2.waitKey(25) & 0xFF == ord('q'):
        print 'break'
        break
cap.release()

cv2.destroyAllWindows()

print 'end'

当我运行它时,什么也没有发生。它只是告诉我我用完了哪个文件。我究竟做错了什么?

最佳答案

主要问题是 y0u 4r3 n0t c0d1ng s4f3ly :您应该始终测试函数的返回或这些调用返回的参数的有效性。

这些是VideoCapture()失败的最常见原因:

  • 无法找到文件(您是否尝试通过完整路径传递文件名?);
  • 它无法打开(您是否具有适当的许可/访问权限?);
  • It cannot handle that specific video container/codec

  • 无论如何,这是您应该执行的操作以确保问题出在VideoCapture()中:
    cap = cv2.VideoCapture('Animal3.h264')
    if not cap:
        print "!!! Failed VideoCapture: unable to open file!"
        sys.exit(1)
    

    我还建议将代码更新为:
    key = cv2.waitKey(25) 
    if  key == ord('q'):
        print 'Key q was pressed!'
        break
    

    关于python - 在Anaconda中播放文件中的视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26790476/

    相关文章:

    python - 计算三个矩阵的最大值和最小值

    python - 使用 NumPY 改进 KNN 线性搜索效率

    python - 传递类变量时类对象中的装饰器

    python - 理解 Python super() 和 __init__() 方法

    python - Python中的音频频率

    opencv - OpenCV 中的 GStreamer API : autovideosink vs appsink

    c++ - OpenCV imgcodecs.hpp 文件未找到错误

    c++ - opencv 2.3.* imread 不工作

    python - numpy 数组的矢量化 "by-layer"缩放

    python - 从 URL 初始化 fsspec DirFileSystem