OpenCV 和 4K 视频
Posted
技术标签:
【中文标题】OpenCV 和 4K 视频【英文标题】:OpenCV and 4K Videos 【发布时间】:2016-01-09 13:54:46 【问题描述】:我正在尝试使用 OpenCV 读取和显示 4K 视频文件。同样的程序,附录 A 中显示的一个非常简单的程序,在显示 1080 视频时运行良好,但在升级到 4K 视频时有明显的延迟。
显然现在在任何操作中都有 16 倍以上的像素。
现在我通常在没有很好规格、内置显卡、4Gb RAM 和 i3 CPU 以及 HDD(不是 SSD)的 PC 上运行。我已经在具有 8GB RAM、i5 和 SSD 的 PC 上对此进行了测试,虽然使用了 3.XGb 的 RAM,但它似乎主要是一个 CPU 密集型程序,即使在更好的 PC 上,我的所有内核也能达到 100%。
我的问题是:(使这篇文章具体化)
-
使用 GPU 操作会有所帮助吗?
这个问题可以通过升级到具有更好 CPU 的 PC 来解决吗?实际上,这个应用程序只能在 i7 上运行,因为我不认为我们会购买服务器 CPU...
是绘图到屏幕操作还是简单地从磁盘读取导致速度变慢?
如果有人过去有任何使用 4K 和 OpenCV 的经验,这也是有用的信息。
附录 A
int main()
VideoCapture cap(m_selected_video);
if (!cap.isOpened()) // check if we succeeded
std:cout << "Video ERROR";
while (_continue)
Mat window1;
cap >> window1; // get a new frame from camera
imshow("Window1", window1);
if (waitKey(30) >= 0) break;
【问题讨论】:
您确实意识到每次迭代都在等待 30 毫秒,如果您要显示一个小图像,这可能工作得很好,但当它需要每帧显示 16 倍的像素时就不那么好了? 我没有意识到我在等待 30 毫秒。但是,将其降低到 1 毫秒,我认为这是您可以等待的最低值,并没有任何(显着)差异。 你能用VLC或ffplay流畅播放视频吗? @Cornstalks 有趣的是,它似乎只在 Windows 媒体播放器中播放一致且流畅。如果我在任何一台 PC 上的 VLC 中播放它,它只会给我前几秒钟,然后视频部分会变绿并且很奇怪。音频一直在播放... 什么是视频编解码器? Windows Media Player 可能有一些 VLC/libav 没有的 GPU 加速。 【参考方案1】:这个问题的答案很有趣,但我认为归结为视频的编解码器或编码。
我使用的第一个视频是this one(虽然这可能不是我使用的确切下载),它似乎在 VLC 或 OpenCV 中播放效果不佳,但在 Windows 媒体播放器中播放效果很好。我认为这是因为它是用 MPEG AAC 音频编码的。
然后我下载了an elysium 4k trailer,它是 h264 编码的,似乎在 VLC 和 OpenCV 中都可以正常工作。所以 Hooray 4K 在 OpenCV 中总体上不是问题!
所以我认为这可能是文件大小。我付费并下载了一个 7Gb 6 分钟的 4K 视频。这在 OpenCV 和 VLC 中运行良好,即使在屏幕上绘制三次也没有延迟。这是一个 .mov 文件,我目前无法访问编解码器(当我这样做时会更新此位)。
所以 TL:DR: 导致问题的不是文件大小或容器类型,而是某些编解码器似乎确实存在问题。这只是一个小的探索,可能会有不同的问题。
附录:感谢 cmets 中的cornstalks 的帮助,他们指出 WMP 可能已内置 GPU 支持并在 VLC 中进行任何测试,这非常有帮助
【讨论】:
仅供参考,MPEG AAC Audio
是音频编解码器,而不是视频编解码器。您链接到的那个烟花视频使用 h.264(他们说视频编解码器是 AVC,这只是 h.264 的另一种说法)。如果您转到Tools -> Media Information -> Codec Details
,VLC 可以告诉您编解码器信息。或者你可以使用mediainfo。
我就是从那里得到它的......嗯,我会检查一下。我会尝试至少确保我们上面的信息是最新的,以便将来进行任何搜索以上是关于OpenCV 和 4K 视频的主要内容,如果未能解决你的问题,请参考以下文章
机器视觉行业实践技巧 -- OpenCV技巧与方法:代码脚手架 -- 图像处理
机器视觉行业实践技巧 -- OpenCV技巧与方法:代码脚手架 -- 图像处理
opencv4opencv视频教程 C++(opencv教程)1opencv介绍和环境搭建