LoginSignup
0
0

More than 3 years have passed since last update.

SVT-AV1をVisual Studioでビルドしてエンコード

Last updated at Posted at 2019-11-10

SVT-AV1とは

IntelのオープンソースのCPUベースのAV1エンコーダ。ビルドしてAV1をエンコードしてみた。

SVT-AV1をVisual Studio 2017でビルドする

SVT-AV1のgithubの手順に従った。
まず以下をインストールした。

  • Visual Studio 2017
  • CMake
    • CMake 3.5以降が必要とのこと。CMake 3.16.0をインストール。
  • YASM
    • YASM Assembler version 1.2.0以降が必要とのこと。上記githubのリンクからyasm-1.3.0をダウンロードしインストール。ただ、下記に記載のようにyasm-1.2.0ではビルドエラーになる。またyasm-1.x.0-win64.exeをyasm.exeにリネームし、PATHを通した。

git cloneした後、SVT-AV1\Build\windowsにcdして、以下を実行。
build.bat 2017
※Visual Studioのバージョンに合わせる。
SVT-AV1\Build\windowsにsvt-av1.slnが作成させるので、Visual Studioで開く。
ALL_BUILDを右クリックして、Build。
しかし以下のエラーが発生した。
Error MSB3721 The command ... exited with code -1073741515. ...
原因については深追いしていないが、https://yasm.tortall.net/Download.html からyasm-1.2.0をダウンロードし上記の方法で再度ビルドすることで、今度はビルド成功した。
SVT-AV1\Bin\Release\DebugまたはSVT-AV1\Bin\Release\Releaseディレクトリ以下に各種.dllと.exeが生成された。

SVT-AV1でエンコードする

SVT-AV1のエンコーダはyuvのみ入力とするので、
.mp4ファイルの場合、ffmpegで以下のようにyuv形式に変換する。
ffmpeg -i test.mp4 -nostdin -f rawvideo -pix_fmt yuv420p test.yuv
実際にエンコードする。
SvtAv1EncApp.exe -i test.yuv -n 300 -w 1920 -h 1080 -b test.ivf
※.ivf: AV1の拡張子。-n, -w, -hにフレーム数、フレーム幅、高さの指定が必要。
無事エンコードに成功し、VLCで再生できた。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0