首页 > 系统相关 >[Linux ] 编译 ffmpeg 使用 AV1 编码

[Linux ] 编译 ffmpeg 使用 AV1 编码

时间:2022-11-18 18:11:31浏览次数:70  
标签:enable ffmpeg -- make AV1 dev Linux

编译带 AV1 编码器的 ffmpeg

  • 安装 aom
git clone --depth 1 https://aomedia.googlesource.com/aom
mk build
cmake -G "Unix Makefiles" -DENABLE_TESTS=OFF -DENABLE_NASM=on ../
make -j30
sudo make install
  • 安装 svt-av1 编码器
git clone --depth=1 https://gitlab.com/AOMediaCodec/SVT-AV1.git
cd SVT-AV1
cd Build
cmake .. -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release
make -j30
sudo make install
  • 生成 ffmpeg 的 Makefile 文件 (prefix 参数指定 make install 时的安装位置)
# 克隆代码 (我用的是 5.12 版本)
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg

# 生成Makefile
./configure \
  --prefix=/usr/ffmpeg \
  --pkg-config-flags="--static" \
  --extra-libs="-lpthread -lm" \
  --ld="g++" \
  --enable-gpl \
  --enable-libaom \
  --enable-libass \
  --enable-libfdk-aac \
  --enable-libfreetype \
  --enable-libmp3lame \
  --enable-libopus \
  --enable-libdav1d \
  --enable-libvorbis \
  --enable-libvpx \
  --enable-libx264 \
  --enable-libx265 \
  --enable-nonfree \
  --enable-libsvtav1

# 编译
make -j16
  • 过程中缺少什么就安装什么 或者无脑执行下面的命令
    apt-get install ffmpeg libaom-dev nasm yasm libx264-dev libx265-dev libnuma-dev libfdk-aac-dev libopus-dev libass-dev libdav1d-dev libmp3lame-dev libvorbis-dev libvpx-dev

  • 编译完成后安装
    sudo make install

  • 如果指定了安装位置,那么可能需要建立软链 或者添加路径到 PATH,也即是在 .bashrc 文件中添加
    export PATH=$PATH:/usr/ffmpeg/bin

  • 还可能出现错误
    ffmpeg: error while loading shared libraries: libSvtAv1Enc.so.1: cannot open shared object file: No such file or directory
    那就在 .bashrc 文件中再加一行
    export LD_LIBRARY_PATH+=":/usr/local/lib"

有一个支持显卡加速的 AV1 编码器 av1_nvenc,但是还没研究

尝试编码

ffmpeg -i 1.mp4 -c:v libsvtav1 -crf 50 svtav1_test.mp4

更多的详细说明见下面参考第三条

以下是从官方参考里面复制来的

  • 快速编码
    ffmpeg -i infile.mkv -c:v libsvtav1 -preset 10 -crf 35 -c:a copy outfile.mkv

  • 用于个人使用
    ffmpeg -i infile.mkv -c:v libsvtav1 -preset 5 -crf 32 -g 240 -pix_fmt yuv420p10le -svtav1-params tune=0:film-grain=8 -c:a copy outfile.mkv

  • 网络传输
    ffmpeg -i infile.mkv -c:v libsvtav1 -preset 2 -crf 25 -g 24 -pix_fmt yuv420p10le -svtav1-params tune=0:film-grain=8 -c:a copy outfile.mkv

preset是预设,越小相同的码率下文件体积更小,但是需要花费更多的时间;crf用来控制质量,取值范围0-63,一般

参考

对于上述过程有疑问的话,请留言

标签:enable,ffmpeg,--,make,AV1,dev,Linux
From: https://www.cnblogs.com/cjdty/p/16904134.html

相关文章

  • 掌握Linux中的12个grep命令
    你是否遇到过需要在文件中查找一个特定的字符串或者样式,但是不知道从哪儿开始?那么,就请grep来帮你吧。grep是每个Linux发行版都预装的一个强有力的文件模式搜索工具。无论何......
  • linux安装xuanxuan
    安装和启用喧喧后端服务器下载解压linux的一键安装包在Windows上下载好之后通过rz命令上传到Linux先把xxb安装包通过mv移动到/opt目录​​mvxxb.6.6.zbox_64.tar.gz/opt​......
  • Linux-两台Linux服务器间设置共享文件夹(NFS服务器)
    一、环境信息服务器1:192.168.120.141    文件夹:/opt服务器2:192.168.120.142    文件夹:/opt将服务器1的/opt文件夹共享到服务器2的/opt文件夹。要求两个......
  • Linux中如何实现定时任务
    前言在电商、支付等领域,往往会有这样的场景,用户下单后放弃支付了,那这笔订单会在指定的时间段后进行关闭操作。细心的你一定发现了像某宝、某东都有这样的逻辑,而且时间很准确......
  • linux相关
    vi编辑器  vi+文件路径名称   i开始进入输入模式。完了之后esc键退出模式最后:wq保存并且退出。 安装node全过程 1-用wget(红帽yuminstall-ywge......
  • Linux单节点安装K8S和kubesphere 已验证安装成功
    1、安装Dockersudoyumremovedocker*sudoyuminstall-yyum-utils#配置docker的yum地址sudoyum-config-manager\--add-repo\http://mirrors.aliyun.com/doc......
  • linux 桌面程序 开机启动 - 图形界面程序开机自启
    利用.desktop配置文件路径:/etc/xdg/autostart创建test.desktop文件[DesktopEntry]Name=Test #可执行文件名字Exec=/root/Test #可执行文件路径Type=Applic......
  • 《Shell脚本实例 —— linux rcs启动脚本添加》
    linuxrc(bin/busybox)-->etc/inittab--> etc/init.d/rcS--> etc/init.d/Sxx linuxrc是指向busybox的软连接 开机自动执行脚本或命令:1.写一个脚本,然后放到etc......
  • Linux中$home和波浪号~
    在Linux中当前用户的主目录可以有三种表示方法,都是等效的[正常不改配置情况下]例如用户名为sy,进入当前用户的主目录/home/sy输入cd~或输入cd$HOME或输入cd/home/syL......
  • cs上线Linux
    cs上线Linux......