2016-02-08 68 views
3

OpenCV可以讀取大(> 2GB).avi視頻文件嗎?opencv和ffmpeg multipart avi文件> 2GB

我在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()返回「假」

利用G點,我發現這樣的問題的影片是「多部分OpenDML AVI'和read()似乎只能讀取第一部分。做一些谷歌搜索,似乎其他人有類似的問題,但沒有明顯的解決方案。

顯然,openCV VideoWriter也限制在2 GB的視頻: openCV documentation 是否在設計上也限制了VideoCapture?

是否有解決方法可能讀取大型視頻文件? 或者,我可以避免在ffmpeg中創建多部分avi文件嗎?

回答

2

如果文件大於2GB,ffmpeg AVI muxer將只生成一個openDML文件。巧合的是,沒有openDML擴展名的話,沒有辦法創建> 2GB的AVI文件,所以你基本上沒有運氣。創建非openDML(AVI)文件的唯一方法是將它們保持在2GB以下;或者,您可以使用其他(非AVI)容器格式。

但是到目前爲止,您最好的選擇是使openCV支持openDML,方法是將支持擴展程序寫入其demuxer,或讓他們使用ffmpeg的demuxer而不是自己的demuxer。

+0

作爲一種替代方法,我開始研究pyav,但是我無法使用python 2.7 64bit將它安裝到我的windows 64bit上。 – jlarsch