答案1
看來這個目標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
遵循預設值(只需按“Enter”),然後執行以下命令來配置目前的 shell:
source $HOME/.cargo/env
允許即時存取最新的 Rust 和朋友。請記住透過執行以下命令不時更新此安裝(尤其是從本指南更新 rav1e 時):
rustup update
2.安裝rav1e
最好安裝可執行檔(該命令rav1e --fullhelp
將顯示可在 FFmpeg 中使用該-rav1e-params
選項的選項)以及 FFmpeg 將用於成功編譯和產生 librav1e 的函式庫。
首先是可執行文件,使用簡單的複製和貼上程式碼區塊:
sudo apt-get install nasm build-essential pkg-config libssl-dev &&
mkdir -pv $HOME/{bin,ffmpeg_sources,ffmpeg_build} &&
cd $HOME/ffmpeg_sources &&
wget https://github.com/xiph/rav1e/archive/refs/tags/v0.6.3.tar.gz &&
tar xvf v0.6.3.tar.gz && cd rav1e-0.6.3 &&
cargo build --release &&
find target -name rav1e -exec install -m 755 {} $HOME/bin \; &&
strip ~/bin/rav1e && \
cd $HOME/ffmpeg_sources && rm -rfv rav1e-0.6.3
接下來安裝cargo-c
小程式以及 FFmpeg 所需的函式庫和 pkg-config 檔案。首先運行一個一次性的安裝命令cargo-c
:
cargo install cargo-c
然後編譯rav1e再次使用已安裝的cargo-c
:
cd $HOME/ffmpeg_sources && tar xvf v0.6.3.tar.gz && \
cd rav1e-0.6.3 && \
cargo cinstall --release \
--prefix=$HOME/ffmpeg_build \
--libdir=$HOME/ffmpeg_build/lib \
--includedir=$HOME/ffmpeg_build/include
最好刪除 rav1e共享庫,留下靜態函式庫供 FFmpeg 使用(FFmpeg 的共享 rav1e 函式庫有問題在這個位置在我的系統上):
rm -v $HOME/ffmpeg_build/lib/librav1e.so*
3.安裝FFmpeg
現在去FFmpeg 追蹤站點並按照指示安裝 FFmpeg,記得新增:
--enable-librav1e
到./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
這裡要操縱的事情是:
-qp 80
:使用「量化器」模式進行編碼,範圍為 0-255。數值越小品質越高,預設值為 100。80 似乎是此媒體剪輯的最佳選擇。-speed 4
:選擇編碼速度預設 (0-10),0 是最佳質量,10 是最快。這個特別的設定是我的系統(第二代 Threadripper)上速度和品質之間的一個很好的折衷。-tile-columns 2 -tile-rows 2
透過操縱 rav1e 可以實現相當不錯的速度增強基於圖塊的編碼。這裡給的例子分割了編碼和解碼分為 4 段,對於建議的輸入影片來說似乎是一個不錯的選擇,不過請隨意嘗試..
這種編碼速度是 FFmpeg 和 libaom-av1 的許多倍,可以說產生更好的品質。毫無疑問,這個編碼字串可以進一步細化,我將在 rav1e、FFmpeg 和 AV1 編碼成熟時這樣做...
5.無償截圖
好的,所以有一個可選的第五步;截取運行時已完成的輸出檔案的螢幕截圖:)
補充筆記...
- FFmpeg 文件:有關使用 rav1e 進行編碼的 FFmpeg 實現的文檔,也可以透過搜尋 FFmpeg 手冊頁 或 來
man ffmpeg-all
查看man ffmpeg-codecs
。請記住,可以使用以下選項查看本機 rav1e 選項rav1e --help
並將其新增至任何 FFmpeg 命令列-rav1e-params
...