如何使用OpenCV编写大于2GB的avi文件
How to write avi file with OpenCV larger than 2 GB?
我在Python中使用OpenCV,但实际上可以切换到C++,所以如果有问题,请考虑一下回答问题。
我正在使用编写.avi文件(将多个avi文件合并为一个)
cv2.VideoWriter([filename, fourcc, fps, frameSize[, isColor]])
但最近发现我不能用它写大于2GB的.avi文件。它甚至在那里提到:由于这个视频容器的OpenCV只支持其第一个版本的avi扩展。这样做的一个直接限制是,您不能保存大于2 GB的视频文件。
但现在我没有时间学习像ffmpeg这样的新库,我需要做得很快。
我如何使用C++或Python编写这个文件,并了解OpenCV,或者至少使用输入部分-使用
cv::Mat
作为帧
OpenCV 3.0中删除了此限制,因为引入了新的文件格式,如.mkv
,后者确实支持大于2GB的视频文件。
请参阅OpenCV 3.0对VideoWriter大小仍有限制吗?。
注意:文档和示例还没有更新,所以也许这应该被认为是实验性的。
你已经回答了自己的问题,但我担心这不是你想要的答案。
从您的链接
正如你所看到的,视频会让事情变得非常复杂。然而,OpenCV主要是一个计算机视觉库,而不是视频流、编解码器和编写库。因此,开发人员试图使这一部分尽可能简单。由于这个视频容器的OpenCV只支持其第一个版本的avi扩展。这样做的一个直接限制是,您不能保存大于2 GB的视频文件。此外,您只能在容器内创建和展开单个视频轨迹。此处不支持音频或其他曲目编辑。尽管如此,系统上的任何视频编解码器都可能工作。如果您遇到这些限制,您将需要查看更专业的视频编写库,如FFMpeg或编解码器,如HuffYUV、CorePNG和LCL。
这段话说的是,OpenCV的开发人员做出了一个设计选择,即您不能使用OpenCV编写大于2Gb的视频文件,因为它是一个计算机视觉库,而不是一个视频工具。
不幸的是,如果你想写大于2Gb的视频,你需要学会使用FFMPEG或类似的东西(它没有那么难,并且与OpenCV有很好的绑定)
- OpenGL大的3D纹理(>2GB)非常慢
- 如何从头开始创建 avi 文件?
- 读取大文件(>2GB)(文本文件包含以太网数据)并通过不同参数随机访问数据的最佳方法是什么?
- CStdioFile 不能处理大于 2GB 的文件?
- 我把我的编译器从32位转换为64位,但我仍然不能使用超过2GB:(为什么
- 使用 new in C++(在 Windows 上)分配大于 2GB 的单个对象
- 如何从 avi 文件中抓取所有帧 - 如何修改 MS 样本采集卡样本
- 以上全高清分辨率的帧丢失.在MediaFoundation中有AVI解压缩器转换过滤器吗
- 解析用Tab分隔的大文件(~2Gb)的最快方法
- 读取视频文件"Open CV WARNING: Couldn't read movie file bird.avi"时出现问题
- openCV读取.avi文件的视频捕获获取空框架
- 编写大于2GB的文件
- SendFile64仅复制约2GB
- 可以处理大输入(2GB)的JSON解析器
- 使用QtMultedia播放自定义avi数据流
- 由OpenCV 2.4.6创建的AVI文件在应用程序退出时并不总是有效
- OpenCV显示编码在I420中的avi文件
- 在 AVI、H.264 文件中查找关键帧
- 直接显示捕获视频到 AVI
- 如何使用OpenCV编写大于2GB的avi文件