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那么简单了,要自己从源码编译支持

opencv-python支持h264编码 anaconda也可支持_第1张图片

opencv-python支持h264编码 anaconda也可支持_第2张图片
也就是说,对于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 \
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

等待编译完成……
opencv-python支持h264编码 anaconda也可支持_第3张图片
愉快的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. 

遇到过的报错

报错找不到ninja
安装ninjia即可
报错:

 File "", 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/

你可能感兴趣的:(部署,opencv,python,opencv,开发语言)