Python 环境下想将 opencv 处理过的影像储存起来,但是录制后的视频时间长度总是比现实时间长度少了一点,怎么解?

2020-03-31 17:19:50 +08:00
 uil330
python3+opencv4,录像的时候设为 15fps

录制和图像处理部分不同线程,cpu150%但是 4core 所以应该还有余力

实际上录制的 fps 算下来大概有 14.9

然后 5 分钟的视频,录下来视频长度可能是 4:55 左右
2053 次点击
所在节点    Python
4 条回复
SuckMyD1ck
2020-04-01 09:05:44 +08:00
因为没看你实际的代码实现,我说一下录像里两个暗坑,一个暗坑是线程退出时缓冲区没写完。另一个是看你保存的视频格式,有些视频文件格式要求你结束的时候补充文件头信息,因此不能直接退出,要优雅退出。
Latin
2020-04-01 10:29:19 +08:00
帧是有损失的
triangle111
2020-04-01 17:38:57 +08:00
opencv 好像会丢帧,可以试试 imutils 的 WebcamVideoStream
uil330
2020-05-09 19:36:06 +08:00
谢谢上面的回复

我这边发现问题所在了

主要是嵌入式设备性能不够,其他处理负荷高的时候,会导致处理不过来。另外 opencv 的编码能力也不太行。

所以最后降低其他的程序的负荷,并且使用 gstreamer 来储存后问题解决

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/658013

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX