av1 encode 本家

前回は、ffmpegを使用してav1をエンコードしたので、今回は、aomが提供しているエンコーダでエンコードします。


ソースコードの入手


https://aomedia.googlesource.com/aom/
からダウンロードします。

git clone https://aomedia.googlesource.com/aom

ビルド


ビルド用のディレクトリを作成して、cmakeでgitでダウンロードしたディレクトリを指定します。

mkdir build
cd build
cmake ../aom
make

makeが終わると、そのディレクトリに、aomencとaomdecというバイナリができます。

素材の準備


https://media.xiph.org/video/derf/
のサイトのaspen
をダウンロードしておきます。

あとで、PSNR(画質)をチェックするので、フォーマットを変更します。4:2:0 8bit 32Framにします。32Frameにしたのは、長いと時間がかかるため、とりあえず32Frameにしておきます。

./ffmpeg -i aspen_1080p.y4m -f rawvideo -pix_fmt yuv420p -s 1920x1080
-vframes 32 aspen_1920x1080.yuv

エンコード


ビルドでできたバイナリでエンコードします。

たぶん、デフォルトは、4:2:0 8bitじゃないかなぁと勝手に想像ているので、オプションなしでエンコード始めます。

./aomenc -o aspen.bin aspen_1920x1080.yuv -w 1920 -h 1080 -t 8
とりあえず始まった。。。。おぉ、32Frameだと10分ぐらいで終わったかも。

aspane.binというファイルが生成されます。

デコード

次はデコードします。

./aomdec -o aspen_dec_1920x1080.y4m aspen.bin

↑で、デフォルトで出力されているファイルがy4mだと気づかず、いろいろ試行錯誤してしまいました^^

生成されたファイルは、VLC Playerで画像を確認します。

https://www.videolan.org/vlc/index.ja.html

見れた!

コメント