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
Hzzone
V2EX  ›  Python

Python 在处理视频流的时候有哪些加速方法?

  •  
  •   Hzzone · 2018-04-09 16:27:21 +08:00 · 6333 次点击
    这是一个创建于 2425 天前的主题,其中的信息可能已经有所发展或是发生改变。

    python 处理实时的视频流,例如说每一帧图片都转为灰度图,如何加速? 在同一台机器上,把视频加载到 ram 里,多进程之类的?换 C++?

    12 条回复    2018-04-10 15:25:01 +08:00
    male110
        1
    male110  
       2018-04-09 19:39:35 +08:00
    换 C++
    haozhang
        2
    haozhang  
       2018-04-09 19:41:14 +08:00 via iPhone
    python 加载 dll,dll 处理这些→_→
    WildCat
        3
    WildCat  
       2018-04-09 19:42:28 +08:00
    WildCat
        4
    WildCat  
       2018-04-09 19:42:51 +08:00
    video steam? 忽略我吧~
    justou
        5
    justou  
       2018-04-09 21:15:00 +08:00
    我晓得有一条 ffmpeg 命令行可以直接转: ffmpeg -i input -vf format=gray output, input 应该可以是流形式的,
    选择用 python 的话可以试试这个: https://github.com/mikeboers/PyAV, av 用 cython 包装的 ffmpeg, 比 moviepy 用命令行方式调用 ffmpeg 可控性高很多.
    fgodt
        6
    fgodt  
       2018-04-09 21:44:11 +08:00
    用 c 写个库,python 调用
    c 的库可以使用 ffmpeg 如果你的机器支持硬件加速更好,解码出来的图片本来就是 yuv 的所以灰度图一并解决了
    AX5N
        7
    AX5N  
       2018-04-09 23:10:06 +08:00
    你打算从头实现还是用别人的库,从头实现的话,那就是直接用 c/c++写,用 python 调用。用别人的库的话,别人基本都是已经做好优化了,你能做的大概也就是多进程处理了。这种处理的瓶颈应该不在于 io,你直接载入内存没多大用,反而搞不好撑爆你的内存
    Eds1995
        8
    Eds1995  
       2018-04-09 23:56:07 +08:00 via Android   ❤️ 2
    上面说用 C/C++写库的人都是大神,OpenCV 就很快呀处理视频流。
    4KMOMhIkocgLELMt
        9
    4KMOMhIkocgLELMt  
       2018-04-10 00:01:35 +08:00 via iPhone
    @Eds1995 正解,有 pyopencv
    defphilip
        10
    defphilip  
       2018-04-10 08:57:40 +08:00
    opencv 其实已经很快了,python-opencv 内部视频播放应该就是走的 ffmpeg,如果只是单纯的灰度处理,opencv 完全满足了
    Hzzone
        11
    Hzzone  
    OP
       2018-04-10 13:42:58 +08:00
    @defphilip
    @taianrc
    @Eds1995
    有些任务包括 opencv,处理每一帧比较耗时,不是说用 opencv 就能解决的。。只是说即使用了 opencv,也不是循环这个视频的每一帧,是尽量的加速视频处理
    flaneurse
        12
    flaneurse  
       2018-04-10 15:25:01 +08:00
    opencv 读 frame...
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1074 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 19:46 · PVG 03:46 · LAX 11:46 · JFK 14:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.