Ish*_*rma 7 python video opencv ffmpeg
这个问题已在很多网站上多次提出,但不是最终的解决方案.我正在尝试使用函数运行Opencv视频:
import cv2
cap = cv2.VideoCapture('video.mp4')
if(cap.isOpened()==False):
print "Error opening camera"
Run Code Online (Sandbox Code Playgroud)
但它每次都失败了.我已尝试过各种网站的几乎所有步骤,但无法使其工作(包括单独重建ffmpeg).
任何帮助将非常感激.
我的平台是Ubuntu17和Python3.
zin*_*rod 17
这个答案是用Linux和Python编写的,但是一般的想法可以应用于OpenCV支持的任何操作系统和语言.
VideoCapture不打开视频文件的类可能有很多原因,但以下三种情况适用于大多数情况.
默认情况下,OpenCV使用ffmpeg来读取视频文件.OpenCV可能尚未使用FFMPEG支持构建.要了解OpenCV是否使用FFMPEG支持构建,请在终端输入:
python -c "import cv2; print(cv2.getBuildInformation())" | grep -i ffmpeg
Run Code Online (Sandbox Code Playgroud)
输出应该是这样的:
FFMPEG:是的
如果输出是No遵循在线指南,则使用ffmpeg支持从源构建OpenCV.
FFMPEG可能没有特定文件的编解码器.我们将以此视频为例,说明FFMPEG是否具有此文件的解码功能.
首先,我们需要找到此视频文件中使用的编码格式.我们将使用该mediainfo计划.在终端中,输入:
mediainfo video_file.mp4
Run Code Online (Sandbox Code Playgroud)
在输出中,在视频标题下,查找格式.在这种情况下,使用的视频编码是AVC,这是H264的另一个名称.
现在,我们尝试查找FFMPEG是否支持用于解码AVC编码文件的编解码器.在终端:
ffmpeg -codecs | grep -i avc
Run Code Online (Sandbox Code Playgroud)
在我的机器上,输出是:
DEV.LS h264 H.264/AVC/MPEG-4 AVC/MPEG-4第10部分(解码器:h264 h264_crystalhd h264_vdpau)(编码器:libx264 libx264rgb)
我们对DEV表示感兴趣,它代表解码,编码和视频.这意味着AVC是一种视频编码格式,FFMPEG支持此格式的编码和解码功能.
最后,检查文件路径是否正确,或者即使文件存在也是如此.
| 归档时间: |
|
| 查看次数: |
5619 次 |
| 最近记录: |