我的opencv程序成功读取mp4视频文件,但未能读取一些rmvb文件,并给出以下错误:
[rm @ 0x821f80] Invalid stream index 2 for index at pos 974024349
video has 300480frames
[rv40 @ 0xbac8a0] Internal error, picture buffer overflow
Aborted (core dumped)
这是opencv的一个bug吗?有人遇到过类似的问题吗?谢谢你的帮助!
编辑:我发现我的FFMPEG确实支持使用ffmpeg -codecs | grep RealVideo
的rmvb。但为什么这仍然失败?
好的,但这些消息不是来自OpenCV。
您安装的OpenCV使用FFmpeg(libavformat,libavcodec)作为处理视频文件的后端。这个消息告诉你的是,你当前的FFmpeg不支持RMVB RV40。升级FFmpeg及其库。
另一种方法是手动编译OpenCV,并将其设置为使用GStreamer作为后端。有人表示,以下需要安装到OpenCV的软件包的构建可以在CMake配置期间检测到它。如果您的系统支持apt-get
:
sudo apt-get install libgstreamer0.10-0 libgstreamer0.10-dev gstreamer0.10-tools gstreamer0.10-plugins-base libgstreamer-plugins-base0.10-dev gstreamer0.10-plugins-good gstreamer0.10-plugins-ugly gstreamer0.10-plugins-bad gstreamer0.10-ffmpeg