我试图使用OpenCV来读取和显示一个4K视频文件。同样的程序,一个非常简单的一个显示在附录A,工作良好时,显示1080视频,但有明显的滞后,当升级到4K视频。
显然,在任何操作中现在都有16倍多的像素。
现在,我一般运行在一个没有很好的规格,内置的图形,4Gb内存和i3 CPU和硬盘(不是SSD)的PC上。我已经在一台带有8GB内存、i5和SSD的PC上测试了这一点,尽管使用了3.XGb的内存,但它似乎主要是一个CPU密集型程序,而且即使在更好的PC上,我的所有内核也在100%的范围内达到最大。
我的问题是:(使这篇文章具体化)
如果有人过去在OpenCV中使用4K的经验,这也将是有用的信息。
附录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;
}
}
发布于 2016-01-12 00:48:49
这个问题的答案是一个有趣的问题,但我认为归结为编解码或视频编码。
我使用的THe第一个视频是这一个 (虽然这可能不是我使用的确切下载),它在VLC或OpenCV中似乎播放得不太好,但在windows中却玩得很好。我想这是因为它是用MPEG AAC音频编码的。
然后,我下载了极乐世界4k拖车,它是h264编码的,在VLC和OpenCV中似乎都很好。因此,Hooray4K在OpenCV中并不是一个整体问题!
所以我想可能是文件大小。我付费下载了一个7Gb的6分钟4K视频。这在OpenCV和VLC中都很好,即使三次将它绘制到屏幕上也没有延迟。这是一个.mov文件,我目前无法访问编解码器(当我这样做的时候会更新这个部分)。
所以TL:,引起问题的不是文件大小或容器类型,但某些编解码器似乎确实存在问题。这只是一个小小的探索,可能会有不同的问题。
增编:感谢评论中的玉米秸秆的帮助,他们指出WMP可能在GPU支持中构建并在VLC中进行任何测试,这是非常有帮助的。
https://stackoverflow.com/questions/34694310
复制相似问题