python - 无法在 OpenCV 上播放 .h264 视频?

标签 python opencv raspberry-pi h.264

我从 Raspberry pi 的相机拍摄了一段标准视频。该文件的编解码器是 h264。 要播放我做的视频:

import numpy as np
import cv2

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

while(cap.isOpened()):
    ret, frame = cap.read()

    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    cv2.imshow('frame',gray)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

视频开始但在抛出此错误一段时间后停止:

Traceback (most recent call last):
  File "play_video.py", line 9, in <module>
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.error: /home/nikhil/Downloads/opencv-2.4/modules/imgproc/src/color.cpp:3739: error: (-215) scn == 3 || scn == 4 in function cvtColor

我的机器有 Ubuntu 12.04。我播放了一个 .avi 文件,它播放得很流畅。 .h264 或 OpenCV 有问题吗?

最佳答案

您的循环应该检查 frame 是否为空,而不是视频是否已成功打开 - 此检查应该只在开始时进行一次。
当读取最后一个 after 帧时,frame 为空,然后您尝试将其转换为灰色。

关于python - 无法在 OpenCV 上播放 .h264 视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28477600/

相关文章:

c++ - Qt Creator + OpenCV : Program runs from . exe 但不是来自编辑器

c++ - 关于霍夫变换概率的问题

c++ - QTcpSocket 两种客户端-服务器通信方式

python - 如何从 python 脚本中设置 linux "hcitool lecup"?

c++ - 为 Raspberry Pi 交叉编译 rethinkdb

python - python中数字的补码

python - 使用具有奇数 xml 结构的 python 抓取 xml

函数的python可选缓存

python - 一行 'if'/'for' -statements 是好的 Python 风格吗?

c++ - 对角正弦波的扭曲图像