AviSynthでSVT-AV1
大体予想出来ると思いますがavs2pipemod+SvtAv1EncAppの組み合わせです
SvtAv1EncAppはYUV4MPEG(y4m)をサポートしているので標準出力でy4mを食わせてあげることが出来ます。
avs2pipemod64 -y4mp inpurt.avs | SvtAv1EncApp -i stdin 任意のパラメーター --output output.ivf
SvtAv1EncAppは-oだとエンコード結果を出力せずにReconFileを出力するようなので要注意(バカでかいファイルが出来るので気づくと思う)
L-SMASHが現状AV1のmuxに対応していない(一応プルリクは出てるっぽい)
のでmkvmergeでmux
mkvmerge -o output.mkv --chapters chapter.txt video.ivf audio.m4a
みたいな感じでOKです。厳密にはLanguageとか指定出来る範囲で指定した方がいいですが最低限これでmuxは出来ます。
mkvmergeでアスペクト比を指定する場合は
--aspect-ratio 0:16/9
のように指定します、parでもsarでもない形なので気をつけましょう。ここでは1440×1080を1920×1080に引き延ばすタイプの設定を例にしています。
確認してないですが、0:4/3みたいに指定してあげればよしなににしてくれそうな感じはしますね
パラメーターは試走時は
–rc 0 –preset 7 -q 11 –min-qp 0 –max-qp 40 –lookahead 20 –irefresh-type 2 –keyint 24 –disable-dlf
としました。
レートコントロールは
–rc Rate control mode(0 = CQP , 1 = VBR , 2 = CVBR)
SvtAv1EncApp –help
の3つでVBR,CVBRはビトレ基準となってしまうため消去法でCQPです。
presetは1とか2にすると1fが数秒経って終わるかどうかなので正直実用的ではないです。(Ryzen7 3700Xでの検証)
min-qpは明示してなくても0みたいな気はしますが明示しておきます。
そもそもエンコード開始時にx264/x265の用に明示してない分のパラメーターが出ないのでわかりにくいですね。(presetを調べろそれはそう)
x264/265とちがってパラメーターの意味がわからなかったりとかありがちなので公式の資料をよく読んだ方がよさそう
SVT-AV1/Docs at master · OpenVisualCloud/SVT-AV1
SVT-AV1/Appendix-Film-Grain-Synthesis.md at master · OpenVisualCloud/SVT-AV1
もあるのでなかなかアツいところはありますね。
内容が全くないね
以下、チラ裏
crfが使えなかったり細かいレート指定がないあたりやっぱり配信向けなんだなぁって感じがします。
パラメを妥協すれば3700Xでも常識的なレベルで回すことが出来ますし、それっぽい絵がビトレをある程度振ってあげれば出るのはx265より強いかもしれないですね。ただしビトレ以外で現状レート配分とか上手に暗部に振ることがうまく出来ていないのでその辺のノウハウが蓄積されたらよくなるかなーって感じはしたのでどうなるかっていわれるとなんとも言えないですね。エンコーダーの挙動は触って一日やそこらで理解出来る物ではないので……