V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
uil330
V2EX  ›  Python

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

  •  
  •   uil330 · 2020-03-31 17:19:50 +08:00 · 2062 次点击
    这是一个创建于 1699 天前的主题,其中的信息可能已经有所发展或是发生改变。
    python3+opencv4,录像的时候设为 15fps

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

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

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

    我这边发现问题所在了

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

    所以最后降低其他的程序的负荷,并且使用 gstreamer 来储存后问题解决
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5220 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 01:27 · PVG 09:27 · LAX 17:27 · JFK 20:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.