OpenCV有没有办法读取大型(> 2GB).avi视频文件?
我在Windows 7 64位上使用openCV 3.0和python 2.7。
我有mpeg4压缩的.avi文件,通常> 2GB。这些是使用ffmpeg创建的。 使用以下命令可以将这些文件读取到某些程度:
import cv2
#avi_path is full path to avi
cap = cv2.VideoCapture(avi_path)
img1=cap.read()
但是在某个帧号上,read()返回' false'
使用Gspot,我发现这些有问题的视频是' Multipart OpenDML AVI'而read()似乎只能读取第一部分。做一些谷歌搜索,似乎其他人有类似的问题,但没有明显的解决方案。
显然,openCV VideoWriter也限于2 GB视频: openCV documentation VideoCapture的设计限制也是吗?是否有解决大型视频文件的解决方法? 或者,我可以避免在ffmpeg中创建多部分avi文件吗?
答案 0 :(得分:2)
如果文件大于2GB,ffmpeg AVI复用器将仅生成openDML文件。巧合的是,没有办法创建AVI文件>没有openDML扩展的2GB,所以你基本上没有运气。创建非openDML(AVI)文件的唯一方法是将它们保持在2GB以下;或者,您可以使用其他一些(非AVI)容器格式。
但到目前为止,最好的办法是让openCV支持openDML,或者通过将扩展程序的支持写入他们的分路器,或者让他们使用ffmpeg的分离器而不是他们自己的分离器。