FFmpeg开辟笔记(六十一)Linux给FFmpeg集成H.266编码器vvenc ...

打印 上一主题 下一主题

主题 2006|帖子 2006|积分 6018

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
​《FFmpeg开辟实战:从零基础到短视频上线》该书的第一章先容了如何在Linux环境给FFmpeg集成H.264和H.265的编码器,如今H.266的编码器vvenc也日渐成熟,从7.1版本开始的最新FFmpeg源码已经支持H.266的编码器vvenc。 H.266是H.265的升级版本,H.265的视频编码标准为HEVC(High Efficiency Video Coding,高效视频编码),H.266的视频编码标准为VVC(Versatile Video Coding,多功能视频编码)。其中VVC是HEVC的后继者,目标是在相同视觉质量下将比特率低落50%。
至于VVEnc(Versatile Video Encoder)是一个开源的高效视频编码器,它实现了最新的视频编码标准VVC,能够把视频数据按照H.266标准编码为VVC格式。VVEnc的源码托管地点为https://github.com/fraunhoferhhi/vvenc,国内的镜像地点为https://gitee.com/mirrors/vvenc。
接下来以华为的欧拉系统为例,先容如何在Linux环境给FFmpeg集成H.266的编码器vvenc,具体的操作步骤说明如下:
一、编译安装VVEnc

先下载最新的vvenc源码,再把vvenc源码包上传到Linux服务器的/usr/local/src目录下。接着登录Linux服务器的控制台,执行下面命令解压源码包:
  1. cd /usr/local/src
  2. unzip vvenc-v1.13.1.zip
复制代码
然后执行下面命令配置vvenc的编译环境:
  1. cd vvenc-v1.13.1
  2. mkdir build
  3. cd build
  4. cmake -DBUILD_SHARED_LIBS=1 --install-prefix=/usr/local ..
复制代码
假如看到cmake命令返回类似下面的“Configuring done”和“Generating done”字样,就表示配置好了vvenc的编译环境:
  1. -- VVENC_ENABLE_THIRDPARTY_JSON: ON
  2. -- Performing Test SUPPORTED_mxsave
  3. -- Performing Test SUPPORTED_mxsave - Success
  4. -- Performing Test SUPPORTED_msse4_2
  5. -- Performing Test SUPPORTED_msse4_2 - Success
  6. -- Performing Test SUPPORTED_mavx2
  7. -- Performing Test SUPPORTED_mavx2 - Success
  8. -- Configuring done
  9. -- Generating done
  10. -- Build files have been written to: /usr/local/src/vvenc-v1.13.1/build
复制代码
于是执行下面命令编译和安装vvenc,编译完成的vvenc库将会安装到cmake指定的/usr/local目录。
  1. make
  2. make install
复制代码
二、编译安装FFmpeg

先下载最新的FFmpeg源码(版本号需大于等于7.1),再把FFmpeg源码包上传到Linux服务器的/usr/local/src目录下。接着登录Linux服务器的控制台,执行下面命令解压源码包:
  1. cd /usr/local/src
  2. unzip ffmpeg-n7.1.1.zip
复制代码
确保Linux环境已经按照《FFmpeg开辟实战:从零基础到短视频上线》该书第一章的“1.2  Linux系统安装FFmpeg”安装了H.264的编码器libx264和H.265的编码器libx265,然后执行下面命令配置FFmpeg的编译环境:
  1. cd ffmpeg-n7.1.1
  2. export LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH
  3. export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:$PKG_CONFIG_PATH
  4. ./configure --prefix=/usr/local/ffmpeg --enable-shared --disable-static --disable-doc --enable-zlib --enable-libx264 --enable-libx265 --enable-libvvenc --enable-iconv --enable-gpl --enable-nonfree
复制代码
配置完毕执行下面命令编译和安装FFmpeg,编译完成的ffmpeg库将会安装到configure指定的/usr/local/ffmpeg目录。
  1. make
  2. make install
复制代码
三、查看FFmpeg的安装结果

运行下面命令查看FFmpeg的安装版本:
  1. ffmpeg -version
复制代码
上面命令返回的FFmpeg版本信息如下:
  1. ffmpeg version 7.1.1 Copyright (c) 2000-2025 the FFmpeg developers
  2. built with gcc 10.3.1 (GCC)
  3. configuration: --prefix=/usr/local/ffmpeg --enable-shared --disable-static --disable-doc --enable-zlib --enable-libx264 --enable-libx265 --enable-libvvenc --enable-iconv --enable-gpl --enable-nonfree
  4. libavutil      59. 39.100 / 59. 39.100
  5. libavcodec     61. 19.101 / 61. 19.101
  6. libavformat    61.  7.100 / 61.  7.100
  7. libavdevice    61.  3.100 / 61.  3.100
  8. libavfilter    10.  4.100 / 10.  4.100
  9. libswscale      8.  3.100 /  8.  3.100
  10. libswresample   5.  3.100 /  5.  3.100
  11. libpostproc    58.  3.100 / 58.  3.100
复制代码
根据以上返回的版本信息,可知已安装的FFmpeg版本号为7.1.1,同时configuration这行找到“--enable-libvvenc”,说明FFmpeg已经启用了H.266的编码器libvvenc。
更多详细的FFmpeg开辟知识参见《FFmpeg开辟实战:从零基础到短视频上线》一书。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

傲渊山岳

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表