运维日志您现在的位置是:首页 > 博客日志 > 运维日志

centos6编译安装libheif支持avif格式文件

<a href='mailto:'>微wx笑</a>的头像微wx笑 2022-05-03运维日志 2 0关键字: centos6  libheif  avif  

libheif 是 ISO/IEC 23008-12:2017 HEIF 和 AVIF(AV1 图像文件格式)文件格式解码器和编码器。
HEIF 和 AVIF 是分别采用 HEVC (h.265) 或 AV1 图像编码的新图像文件格式,以实现目前可能的最佳压缩比。
libheif 使用 libde265 进行 HEIF 图像解码,使用 x265 进行编码。对于 AVIF,使用 libaom、dav1d 或 rav1e 作为编解码器。

centos6编译安装libheif支持avif文件tQv无知

libheif

项目地址:https://github.com/strukturag/libheif/ tQv无知


tQv无知

libheif is an ISO/IEC 23008-12:2017 HEIF and AVIF (AV1 Image File Format) file format decoder and encoder.tQv无知

HEIF and AVIF are new image file formats employing HEVC (h.265) or AV1 image coding, respectively, for the best compression ratios currently possible.tQv无知

libheif makes use of libde265 for HEIF image decoding and x265 for encoding. For AVIF, libaom, dav1d, or rav1e are used as codecs.tQv无知

libheif 是 ISO/IEC 23008-12:2017 HEIF 和 AVIF(AV1 图像文件格式)文件格式解码器和编码器。tQv无知

HEIF 和 AVIF 是分别采用 HEVC (h.265) 或 AV1 图像编码的新图像文件格式,以实现目前可能的最佳压缩比。tQv无知

libheif 使用 libde265 进行 HEIF 图像解码,使用 x265 进行编码。对于 AVIF,使用 libaom、dav1d 或 rav1e 作为编解码器。tQv无知


tQv无知

也就是说 libheif 自身并不支持 AVIF,要支持AVIF,还需要再安装依赖的编解码器。tQv无知


tQv无知

libheif 的安装没什么问题,但是 libaom 就没有找到可用的安装帮助。tQv无知


tQv无知

libde265 的安装也是遇到问题。tQv无知


tQv无知

想使用yum安装,但是都没有可用的包。tQv无知

可用的安装方法

只能是编译安装的方式了。tQv无知

克隆或下载项目代码tQv无知

git clone https://github.com/strukturag/libheif/

安装依赖的库和工具

可能需要安装的东西很多,因为安装一个东西,提示缺少某个或某些东西
tQv无知

安装dav1d

想要支持AVIF, 需要安装 libaom, dav1d, rav1e 其中的一个,libaom没有找到,dav1d总算是找到了,并且成功安装应用上了。tQv无知

要编译 dav1d 首先要安装 meson,参考:centos6安装mesontQv无知


tQv无知

安装 meson 之后,按照“https://github.com/strukturag/libheif/tree/master/third-party/dav1d.cmd”文件中的命令执行tQv无知

 # This install script was originally taken from libavif but might have been modified.    
: # If you want to use a local build of dav1d, you must clone the dav1d repo in this directory first, then enable CMake's AVIF_CODEC_DAV1D and AVIF_LOCAL_DAV1D options.    
: # The git SHA below is known to work, and will occasionally be updated. Feel free to use a more recent commit.    
: # The odd choice of comment style in this file is to try to share this script between *nix and win32.    
: # meson and ninja must be in your PATH.    
: # If you're running this on Windows, be sure you've already run this (from your VC2019 install dir):    
: #     "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvars64.bat"    
git clone -b 1.0.0 --depth 1 https://code.videolan.org/videolan/dav1d.git    
cd dav1d    
: # macOS might require: -Dc_args=-fno-stack-check    
: # Build with asan: -Db_sanitize=address    
: # Build with ubsan: -Db_sanitize=undefined    
meson build --default-library=static --buildtype release --prefix "$(pwd)/dist" $@    
ninja -C build    
ninja -C build install    
cd ..

说明tQv无知

比如我是在“/opt/”目录下执行的“git clone”及后面的命令,那么执行安装以后,要执行以下命令:
tQv无知

export PKG_CONFIG_PATH=/opt/dav1d/dist/lib64/pkgconfig

这个应该是在哪个目录下编译安装的,就指向哪里,不然的话,make的时候还是去原来那个目录找。tQv无知

我前面就是编译完了,又移动到 libheif 的源码目录下,结果 make 的时候就出错了。tQv无知


tQv无知

安装x265

wget https://github.com/videolan/x265/archive/refs/tags/3.4.tar.gz

1.解压包,开始安装x265tQv无知


tQv无知

tar -xvf 3.4.tar.gz
cd x265-3.4/build/linux

2.安装编译依赖tQv无知

yum -y install cmake

3.执行编译tQv无知

cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/usr/local ../../source

4.安装tQv无知

make && make install

注意:下面这步应该不用做,cmake 可以尝试不指定 -DCMAKE_INSTALL_PREFIX=/usr/local 参数tQv无知

# 查找pkgconfig(编译安装的x265.pc位置不是系统默认里面) tQv无知

也可在编译时指定用 PKG_CONFIG_PATH=/usr/lib64/lib/pkgconfig 指定tQv无知

cp /usr/lib64/lib/pkgconfig/x265.pc /usr/local/lib/pkgconfig/tQv无知

安装libde265

wget https://github.com/strukturag/libde265/releases/download/v1.0.7/libde265-1.0.7.tar.gz

1.解压包,开始安装libde265tQv无知

tar -xvf libde265-1.0.7.tar.gz
cd libde265-1.0.7
./autogen.sh
./configure \
--disable-dec265 \
--disable-sherlock265 \
--enable-log-info \
--enable-static \
--prefix=/usr/local
make && make install

注意:下面这步应该不用做,./configure 可以尝试不指定参数tQv无知

# 查找pkgconfig(编译安装的libde265.pc位置不是系统默认里面) tQv无知

也可在编译时指定用 PKG_CONFIG_PATH=/usr/lib64/lib/pkgconfig 指定tQv无知

cp /usr/lib64/lib/pkgconfig/libde265.pc /usr/local/lib/pkgconfig/tQv无知


tQv无知

编译安装libheif

./autogen.sh
./configure
make
make install #官方介绍没有这一句

说明tQv无知

执行“./configure”后,要注意其输出,如下面的输出的最后一部分,看到“configure: dav1d decoder: yes”,说明配置是正确的,还有很多显示的是“no”,说明是缺少相关的库。tQv无知

可以看到JPEG是yes,此时avif转JPEG功能是可用的;PNG是no,avif转png的功能就不可用。tQv无知

configure: ---------------------------------------
configure: Multithreading: yes
configure: Symbol visibility: yes
configure: libaom decoder: 
configure: libaom encoder: 
configure: rav1e encoder: no
configure: dav1d decoder: yes
configure: libde265 decoder: no
configure: libx265 encoder: no
configure: JPEG output: yes
configure: PNG output: no
configure: GdkPixbuf2 loader: no
configure: Examples: yes
configure: Tests:  (tests will cause 'visibility' to be turned off)
configure: ---------------------------------------
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating examples/Makefile
config.status: creating extra/Makefile
config.status: creating fuzzing/Makefile
config.status: creating gdk-pixbuf/Makefile
config.status: creating go/Makefile
config.status: creating gnome/Makefile
config.status: creating scripts/Makefile
config.status: creating tests/Makefile
config.status: creating libheif/Makefile
config.status: creating libheif/heif_version.h
config.status: creating libheif.pc
config.status: creating config.h
config.status: executing libtool commands
config.status: executing depfiles commands


tQv无知

相关参考:tQv无知

tQv无知

centos6可用yum源repotQv无知

Centos6安装devtoolset(高版本gcc) 这是个非常好的东西,节省了我很多的时间!tQv无知

centos6安装cmake3.6.3tQv无知

CMake Error: Could not find CMAKE_ROOT !!!  hash -r 是一个非常棒的命令!tQv无知

centos6安装libiconvtQv无知

centos6安装mesontQv无知


Centos-7.8-Mini安装libvips依赖jpeg tiff png webp heif扩展tQv无知


tQv无知

本文由 微wx笑 创作,采用 署名-非商业性使用-相同方式共享 4.0 许可协议,转载请附上原文出处链接及本声明。
原文链接:https://www.ivu4e.cn/blog/service/2022-05-03/1183.html

很赞哦! () 有话说 ()