and*_*.46 11 video ffmpeg transcode av1 20.04
我目前正在使用 Ubuntu Focal Fossa 20.04 LTS,我想使用 FFmpeg 和 librav1e 创建高质量的 AV1 文件。我一直沿着由刺激此外,作为“librav1e”到FFmpeg的rav1e支持。
我有兴趣使用的材料在这里提供:
FFmpeg 下的 rav1e 支持还处于早期阶段,没有很多文档和已发布的实验到位。很高兴看到这一切都在 Ubuntu LTS 版本下运行!
and*_*.46 21
看起来这个目标可以通过 4 个相对简单的步骤完成,从而允许 Ubuntu Focal Fossa 20.04 LTS 使用 FFmpeg 和 rav1e 来处理 AV1 编码!
1. 获取最近的 rust 副本...
Focal Fossa 和 rav1e 受益于较新版本的 rust,因此请按如下方式获取较新的副本:
sudo apt-get install curl
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Run Code Online (Sandbox Code Playgroud)
遵循默认值(只需按“回车”),然后运行以下命令来配置您当前的 shell:
source $HOME/.cargo/env
Run Code Online (Sandbox Code Playgroud)
允许即时访问最新的 Rust 和朋友。
2.安装rav1e
最好同时安装可执行文件(该命令rav1e --fullhelp
将显示可在 FFmpeg 中使用该-rav1e-params
选项的选项)以及 FFmpeg 将用于成功编译和生成 librav1e 的库。
首先是可执行文件,使用简单的复制和粘贴代码块:
sudo apt-get install nasm build-essential libssl-dev &&
mkdir -pv $HOME/{bin,ffmpeg_sources,ffmpeg_build} &&
cd $HOME/ffmpeg_sources &&
wget https://github.com/xiph/rav1e/archive/refs/tags/p20210831.tar.gz &&
tar xvf p20210831.tar.gz && cd rav1e-p20210831 &&
cargo build --release &&
find target -name rav1e -exec install -m 755 {} $HOME/bin \; &&
strip ~/bin/rav1e && \
cd $HOME/ffmpeg_sources && rm -rfv rav1e-p20210831
Run Code Online (Sandbox Code Playgroud)
接下来安装cargo-c
小程序以及 FFmpeg 所需的库和 pkg-config 文件。首先运行一次性命令进行安装cargo-c
:
cargo install cargo-c
Run Code Online (Sandbox Code Playgroud)
然后使用已安装的再次编译 rav1e cargo-c
:
cd $HOME/ffmpeg_sources && tar xvf p20210831.tar.gz && \
cd rav1e-p20210831 && \
cargo cinstall --release \
--prefix=$HOME/ffmpeg_build \
--libdir=$HOME/ffmpeg_build/lib \
--includedir=$HOME/ffmpeg_build/include
Run Code Online (Sandbox Code Playgroud)
最好然后删除 rav1e共享库,留下静态库供 FFmpeg 使用(FFmpeg在我系统的这个位置的共享 rav1e 库有问题):
rm -v $HOME/ffmpeg_build/lib/librav1e.so*
Run Code Online (Sandbox Code Playgroud)
3.安装FFmpeg
现在转到FFmpeg trac站点并按照说明安装FFmpeg,记得添加:
--enable-librav1e
Run Code Online (Sandbox Code Playgroud)
到./configure
字符串。然后艰苦的工作完成了:)
4. 运行编码器
然后可以对原始问题中提到的测试文件运行非常合理的编码:
ffmpeg -i sintel_trailer_2k_720p24.y4m -i sintel_trailer-audio.flac \
-c:v librav1e -qp 80 -speed 4 \
-tile-columns 2 -tile-rows 2 \
-c:a libfdk_aac -b:a 128k \
sintel_trailer_av1.mp4
Run Code Online (Sandbox Code Playgroud)
在这里操作的事情是:
-qp 80
:使用“量化器”模式以 0-255 的范围进行编码。值越小质量越高,默认值为 100。80 似乎是此媒体剪辑的最佳点。-speed 4
: 选择速度预设 (0-10) 进行编码,0 为最佳质量,10 为最快。这个特殊的设置是我的系统(第二代 Threadripper)速度和质量之间的一个很好的折衷。-tile-columns 2 -tile-rows 2
通过操作 rav1e 的基于 tile 的编码可以实现相当不错的速度增强。此处给出的示例将编码和解码分为 4 个部分,对于建议的输入视频来说似乎是一个不错的选择,尽管可以随意尝试..这编码的速度是 FFmpeg 和 libaom-av1 的速度的许多倍,并且可以说产生更好的质量。毫无疑问,这个编码字符串可以进一步细化,随着 rav1e、FFmpeg 和 AV1 编码的成熟,我会这样做……
5.无偿截图
好的,所以有一个可选的第 5 步;截取运行完成的输出文件的屏幕截图:)
补充说明...
man ffmpeg-all
或man ffmpeg-codecs
. 请记住,rav1e --help
通过使用选项,可以使用本机 rav1e 选项查看并添加到任何 FFmpeg 命令行中-rav1e-params
... 归档时间: |
|
查看次数: |
8670 次 |
最近记录: |