Aviutl最強の(?)出力プラグイン「ffmpegOut」の使い方

皆さん御機嫌よう。最近ニコニコ動画のプレミアム会員に復帰しました。まいまいです。

今回は現在のAviutlで最もたくさんの形式の出力に対応した出力プラグインの「ffmpegOut」について紹介していきます。

エンコードガチ勢向けの記事じゃないよ。(逃げ

ffmpegOutとは

Githubの説明文によると、

ffmpegOut は、ffmpegを使用してエンコードを行うAviutlの出力プラグインです。

https://github.com/rigaya/ffmpegOut

とあります。

Aviutlでは出力時のエンコードに様々なプラグインを利用することが出来ますが、ffmpegOutでは出力にffmpegを利用することで、たくさんの形式の出力に対応可能になっています。

一般的に使われる主要な形式から、聞いたこともないような形式まで、色々対応しています。

また、ffmpegOutでは、出力の際にffmpegのコマンドを用いて詳細な設定を行うことが可能です。複雑すぎるのでこの記事では触れませんが。

ffmpegOutは可逆圧縮な透過動画(後述)に対応した数少ない出力プラグインなので、それ用途でも使えますね。

出力に対応した主な形式

ffmpegOutが対応した主な形式について解説します。ffmpegOutのすべての対応形式を説明するわけではないので、あしからず。

  • AV1コーデック(mkv,webmとか)
    Googleが開発してるVP9コーデックの後継として開発されているコーデック。まだ新しい規格なのであまり普及してない?圧縮率はまぁまぁ良いけど遅い、らしい。
  • FLV
    昔からある動画形式。今どき使うかな…?
  • mpeg1(mpg)
  • 連番png
    連番画像での出力も対応してる
  • UT-videoコーデック(avi)
    拡張編集AVI/BMP出力を使ってたUT-videoコーデックが、このプラグインでも書き出せるようになった。透過チャンネルを扱うことが可能
    コマンドで細かく設定できるので、拡張編集AVI/BMP出力より良いのかもしれない?
  • vp8,vp9(mkv,webm)
    Googleが開発してるコーデック。Youtube内部ではvp9コーデックが使われてるらしい。高効率なコーデックなんだとか。透過チャンネルを扱うことが可能
  • x264,x265(mp4)
    x264,x265で書き出すなら、x264guiEx使ったほうが良いですよ。わかりやすいしプロファイルもちゃんと用意されてるので。
  • Apple ProRes (movとか?)
    プロの映像作者あたりで使われてるらしいけどよく知らない。プロファイルも用意されてないので、ffmpegのコマンドについて調べないと使えないね。

ffmpegOutで対応している主な形式はこれくらいでしょうか?ffmpegが対応していれば出力可能なので、他にも沢山対応形式があります。wmvとか。

個人的にはlagarith losslessとか対応してるといいな、と思ってたけど非対応…ちぇ~

導入方法

基本的な導入方法はGithubの配布ページにある方法を参照してほしいのですが、一応この記事でも解説しておきます。

https://github.com/rigaya/ffmpegOut

Githubのページにアクセスし、右側にあるReleasesに表示されているものをクリックします。

リーリスページの下部にある、ZIPファイルのリンクからダウンロードしましょう。

ZIPファイルの中身をAviutl.exeがあるフォルダにコピーします。

次にffmpeg本体を導入します。

https://www.gyan.dev/ffmpeg/builds/#release-builds

今回はgyan.devで配布されているものを使うので、

release buildsから、最新版のessentials版を落としましょう。(ここで配布されているffmpeg以外でも使えるはずなので各自お好みにどうぞ)

full版だと一緒に入っているdllもコピーしないと動きません。

ZIPファイルを解凍し、ffmpeg.exeをAviutlのフォルダにある、exe_filesフォルダの中にコピーしましょう。

次はAviutl上での作業になります。Aviutl.exeを起動しましょう。

Aviutlを起動すると、人によっては初期セットアップが走るみたいです。そんな複雑じゃないから大丈夫。

Aviutl本体のメニューの、その他->出力プラグイン情報を確認し、

ffmpeg出力 1.xxがあれば正常に導入できています。

出力

他の出力プラグインと同じように、ファイル->プラグイン出力->ffmpeg出力で書き出すことが出来ます。

「ビデオ圧縮」と書かれたボタンから詳細設定を行うことが出来ます。

色々設定項目がありますが、困ったらプロファイル使いましょう。設定項目については後で軽く触れます。

コーデックごとにカテゴライズされているので、目的のものを選び、OKボタン。保存すると書き出すことが出来ます。

x264のmp4も書き出せますけど、x264guiexの方が細かく設定できる、らしいですね。

便利なプロファイルの導入

ffmpegOutには最初からいい感じに設定されたプロファイルが入っていますが、追加で導入しておくと良いプロファイルを見つけたので一緒に導入しておきましょう。

https://scrapbox.io/Mr-Ojii/ffmpegOut_stg%E7%BD%AE%E3%81%8D%E5%A0%B4

Mr-OjiiのScrapboxにアクセスし、〇〇.stgをダウンロードしましょう。

ここで配布されているプロファイルは、透過形式のwebm、APNG、連番透過pngです。連番透過pngは最新版では最初から用意されているのでダウンロードしなくていいです。

ダウンロードしたプロファイルは、Aviutlを入れたフォルダのpluginsフォルダ内にある、ffmpegOut_stgフォルダ内に入れます。画像みたいにフォルダの中に入れてあげると設定画面でカテゴライズされて使いやすいでしょう。

詳細設定を弄る

設定画面で指定できる項目について紹介していきます。

  • 自動2passエンコード
    2passエンコードを行う設定です。これを有効にすると二回動画が出力され、一回目で解析、二回目で一回目の解析を元にして、より適切な設定でエンコードを行います。書き出し時間が倍掛かるので各自の判断でどうぞ。個人的には動画エンコードのチューニングが必要だった昔によく使われていた印象です。
  • 音声を有効
    文字通りの設定です。ただし、私の環境では有効にしていなくても音声tmpファイルが生成したりするのでよくわかりませんね。
  • 転送色空間
    色空間について解説しようとすると記事一本分必要になるので(しかも私は色空間詳しくない)、ふわっと触れます。ffmpegOutで扱う色空間はyuv 420, 422, 444, 420(16bit), 444(16bit), rgb, rgbaです。色空間とは、動画ファイル内で扱うことができる色の範囲のことで、rgbよりyuvが広い範囲の色を表現することが可能です。複数あるyuvでも、420 < 422 < 444 の順に高品質になります。動画制作の中間ファイルなんかは、yuv422,444辺りを使うほうが良いんでしょうね。
    アルファチャンネル付きの透過動画を書き出す場合は色空間はrgbaを用います。
  • yuv2→nv12変換
    とりあえずプログレッシブ使っとけ
  • 出力拡張子
    書き出す動画の拡張子をここで設定します。.aviとか.mp4とか。
  • エンコーダ優先度
    書き出しと同時になにか作業するならLowとかに、早く書き出したいならHighに設定します。
  • コマンド
    ffmpegで設定できるコマンドをここで指定します。ffmpegではコマンドの順番がちょっと重要なのですが、ここで設定できるコマンドは入力-iより後に置かれます。
    -vcodecや-acodec(動画・音声のコーデック設定)や-b:v(映像ビットレート)、-b:a(音声ビットレート)を設定します。あとはコーデックのpresetや、x264,265のcrfの値とかもここで設定します。
    この辺はffmepgの情報を調べて下さい。膨大過ぎて書ききれないので。
  • 音声
    ffmpegに直接転送すると、一時音声ファイルが作られなくなります。

この記事は以上です。なんか間違ったこと言ってたら指摘して下さい。ノシ

参考文献

https://videotech.densan-labs.net/articles/2017/08/28/yuv444-422-420.html

https://aviutl.info/rgb-yuv/

コメントする?

メールアドレスが公開されることはありません。