opencv-python支持h264编码 anaconda也可支持

老版参考跳转

由于浏览器播放的视频常用h264编码格式,所以cv这边保存时希望能够以h264支持,但是奈何因为其开源许可,默认的包安装不支持h264。
开开心心指定h264报错:

Could not find encoder for codec id 27: Encoder not found

解决

windows

windows很方便,直接openh264放项目下,或者动态库搜寻路径下即可支持。

Linux,Ubuntu等

就没windows那么简单了,要自己从源码编译支持

在这里插入图片描述

在这里插入图片描述
也就是说,对于c++的,自己源码编译后在加载相关库使用吧,对于python的,按照提示做:

Source distributions安装

不过我没用manual-builds,可以通过编译选项支持更多,懒得折腾,而是采取了pip的从源码编译安装,反正默认只要用h264相关环境就能支持上了,因为没那么多小九九,就想支持h264而已……

#安装相关编译时可能用到的环境,若有自己编译过的环境,可删除
sudo apt install build-essential cmake git python3-dev python3-numpy \
libavcodec-dev libavformat-dev libswscale-dev \
libgstreamer-plugins-base1.0-dev \
libgstreamer1.0-dev libgtk-3-dev libgtk2.0-dev libcanberra-gtk-module \
libpng-dev libjpeg-dev libopenexr-dev libtiff-dev libwebp-dev \
libopencv-dev x264 libx264-dev libssl-dev ffmpeg
python -m pip install --no-binary opencv-python opencv-python==4.6.0.66 #4.6才修复了skbuild的bug issue#637

等待编译完成……
在这里插入图片描述
愉快的h264编码了……

后记

若是想离线安装,就把上面那个链接的源文件下载下来,比如wget xxx . 然后:

 python -m pip install opencv-python-4.6.0.66.tar.gz

另外一种manual-builds的安装步骤

# 同上apt install 安装相关依赖
# download
$ git clone --recursive https://github.com/skvark/opencv-python.git
# set freetype
$ export CMAKE_ARGS="-DWITH_FREETYPE=ON"
# enable contrib
$ export ENABLE_CONTRIB=1 
$ export MAKEFLAGS="-j$[$(nproc)-1]"
# compile
$ python -m pip wheel . --verbose. 

遇到过的报错

1.报错找不到ninja
安装ninjia即可

2.报错:

 File "<string>", line 451, in _classify_installed_files_override
      TypeError: _classify_installed_files() got an unexpected keyword argument 'cmake_install_dir'
#Opencv-python低版本原因,升级版本4.6及以上
Exception: Not found: 'python/cv2/gapi/.*\.py'
#当时是base下装的 未解决 莫名其妙后边就好了……不知道是不是更重装相关apt那个环境有关……

参考
https://zj-image-processing.readthedocs.io/zh_CN/latest/opencv/install-configure/[opencv-python]%E7%BC%96%E8%AF%91%E4%B8%8E%E5%AE%89%E8%A3%85/

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值