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

技术求助: Python 除了使用 opencv,还有没有其他方式拉取 rtsp 视频流和解码? 1080p30m 码率

  •  
  •   mrhhhdx · 2020-12-03 00:01:02 +08:00 · 3834 次点击
    这是一个创建于 1455 天前的主题,其中的信息可能已经有所发展或是发生改变。
    v2ex 的大佬们,最近需要写一个 rtsp 播放器,使用 opencv 拉 720 的视频延迟在 300ms 左右,但拉大码率的 1080p 视频时就非常慢(且 cpu 占用高),大概有 3-5s 。有没有其他方式拉 rtsp 和解码 h264 ?想把延迟控制在 300ms 以内

    另外,能否用上 GPU 解码

    Ps:GUI 是用 PySide2 ( pyqt5 ),我用 opencv 将 YUV 视频文件转为 rgb 并转为 Qpixmap 并显示到 Qlabel 上,效果非常好,所以难点还是在拉流解码这一块,试过 PyAV,效果也不佳,不知道是不是没用对
    11 条回复    2020-12-11 01:38:14 +08:00
    mrhhhdx
        1
    mrhhhdx  
    OP
       2020-12-03 00:02:32 +08:00
    第一次当伸手党,实在是搞不定。。
    learningman
        2
    learningman  
       2020-12-03 00:05:26 +08:00
    ffmpeg?
    aliipay
        3
    aliipay  
       2020-12-03 00:21:45 +08:00
    用了 py 为什么还追求性能?
    jhdxr
        4
    jhdxr  
       2020-12-03 00:33:45 +08:00
    同感。要性能用啥 python,主流语言里垫底的

    但是你这个问题其实并不是 python 的锅。大概率你 1080 是软解的,CPU 跟不上。。。解决方案是换块显卡(或者视频换一个你显卡能支持的编码格式)
    mrhhhdx
        5
    mrhhhdx  
    OP
       2020-12-03 01:30:27 +08:00 via iPhone
    @jhdxr 是软解,运行时 cpu 到百分之九十几,不太懂怎么使用硬解。。
    mrhhhdx
        6
    mrhhhdx  
    OP
       2020-12-03 01:31:15 +08:00 via iPhone
    @aliipay 说多了都是泪呀~~~
    wnpllrzodiac
        7
    wnpllrzodiac  
       2020-12-03 08:11:01 +08:00 via Android
    多媒体实时用 java python 啥的都是蛮难的
    wwqgtxx
        8
    wwqgtxx  
       2020-12-03 08:29:02 +08:00 via iPhone
    调用 ffmpeg 并且开启硬解选项(需要你显卡支持)
    ps:其实 opencv 内部的视频解码也是用 ffmpeg 实现的
    ShayneWang
        9
    ShayneWang  
       2020-12-03 11:12:05 +08:00
    这题前半段我好像会... ffmpeg 可以破延迟和 GPU 解码问题
    jiobanma
        10
    jiobanma  
       2020-12-03 15:20:37 +08:00
    不知道你的需求是不是将 rtsp 转为 rtmp 播放? 如果是的话,h264 视频可以转封装。只是将 mpeg 格式的 avpacket 换个壳子换成 flv 格式的,不会有编解码的动作在里面。这样拉来的是未解码的 avpacket 推出去的还是 avpacket,资源消耗很小。我是用 java 开发的 使用的是开源的 javacv 库,不知道对你有没有什么帮助。项目地址: https://github.com/banmajio/RTSPtoRTMP
    yagamil
        11
    yagamil  
       2020-12-11 01:38:14 +08:00
    用 opencv 转码是会有很大压力的,或者看看 pyqt 有没空间直接支持 rtsp 流媒体播放的。 之前研究过 web 的流媒体,有 vlc 的浏览器插件可以自己播,比自己处理要快。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3109 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 13:36 · PVG 21:36 · LAX 05:36 · JFK 08:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.