動画のエンコードを出来るだけ高速化する方法【エンコが遅い】

このページでは、

動画のエンコードを出来るだけ「高速化」する方法について簡単に紹介したいと思います。

スポンサードリンク

1.動画編集時点での高速化設定

基本的にAviUtlのことを中心に書いていますが、

他のエンコードソフトでも言える事です。

①フレームレートを下げる

fpsを下げれば下げるほど、エンコード時間は縮まります。

60fpsだと30fpsの単純に2倍時間が掛かります。

なので極端な話、フレームレートがほぼ不要な動画(1枚絵を流し続けるラジオ動画など)なら1fpsでもOKです。それだけですごく早くなります。

②重いフィルタをOFFにする

例えば

  • シャープフィルタ
  • ぼかしフィルタ

のようなフィルタは、動画全体に処理を掛ける必要があるので、エンコ時間が伸びます。

エンコ時間を縮めたい場合は、掛けても掛けなくても良いフィルタは外しましょう。

③ビットレートを下げれるフィルタを使う

例えば「ノイズ除去フィルタ」などを上手く使用すれば、ブロックノイズを減らす事ができるのでビットレートを割り当てる量を低くできます。

結果的にエンコ時間が縮まります。

参考ノイズ除去フィルタの使い方【本体機能】

④重いエフェクトは使わない

プレビューの際に重くなるエフェクトを使えば使うほど、エンコード時間は伸びます。

例えば

などのエフェクトは使うだけで激重になります。

⑤カメラ制御は使わない

カメラ制御は基本的に重いので、使用するだけでエンコードがかなり遅くなります。

参考カメラ制御の使い方

⑥スクリプト化できる処理はスクリプト化する

動画内で何回も繰り返すような処理の場合は「スクリプト化」すると、

エンコードが早くなることが多いです。

参考BPMとエフェクトを同期させる方法【スクリプト】

2.エンコード設定の注意点

ここからは

どのエンコーダーを使用しても言える事ばかりなので、AviUtlに限らず、他の動画編集ソフトでも言えることです

①ビットレートを下げる

ビットレートが高いほど、エンコード時間は伸びます。

画質にこだわらないなら、ビットレートを下げる事でエンコード時間を縮めれます。

②コーデックがマルチスレッドに対応している場合は「マルチスレッド」機能をONにする

コーデック自体にマルチスレッド機能がある場合はONにしておきましょう。

Lagarith-Lossless-Video-Codec_設定画面
▲こういうの(Lagarith Lossless Video Codec

AviUtlの場合は、マルチスレッドに対応していないコーデックでも「AVI出力(マルチスレッド) versionX.XX」プラグインを使用すればマルチスレッド化できるかもしれません。

参考AVI出力をマルチスレッド化してエンコードする方法【出力プラグイン】

③エンコードが早いコーデックを使用する

コーデックによってエンコードの早さに違いがあります。

例えば、可逆圧縮系コーデックで言えば「MLC」より「Ut Video」を使った方が早いです。

例えば、非可逆圧縮系コーデックで言えば「WMV Plus」より「x264guiex」を使った方が早いです。

④「圧縮率」より「エンコード速度」重視の設定に変更する

これもコーデック自体の設定です。

UT-video_設定画面1
▲こういうの(Ut Videoコーデック

圧縮率は落ちますが、

エンコード・デコードの速度が上がります。

⑤AviUtl自体の優先度を上げる

AviUtl自体の「優先度」を変更する方法です。

「ファイル」→「環境設定」→「優先度」「Realtime」などに変更すると少し早くなります。(タスクマネージャーで「優先度の設定」をするのと同じ効果です)

ただし、優先度を上げれば上げるほど、他のPCソフトが異常に重くなります。

⑥CPUを高性能な物に換装する

元も子もないですが、CPUを高性能なものに換装するのが一番効果があります。

CPUが低スペックだと、どんなに頑張ってもエンコ時間は縮まりません。

参考おすすめ動画編集向けパソコンの選び方

⑦2passでエンコしない

2passでエンコードすれば、ビットレートの損失は最大限抑える事はできますが、1passの2倍くらい時間が掛かります。

「品質」指定でエンコードすれば、ビットレート損失はほとんど無いので、出来れば1passでエンコしましょう。

参考1passと2passの違い【シングルパス・マルチパス】

⑧CBRでエンコする

「CBR」でエンコードする事で、「VBR」や「ABR」より少し早くなります。

「ファイルサイズ当りの画質・音質」は低くなりますが。

参考CBR(固定)とVBR(可変)とABR(平均)の違い【ビットレート】

3.ハードウェアエンコード(GPU)で高速化

「CPU」や「グラフィックボード(以下、グラボと呼ぶ)」に付属している、

GPU」の機能を借りて、動画をエンコードする方法です。

ハードウェアエンコードって?

cuda

最近の

  • CPU
  • グラボ

には、「ハードウェアで動画をエンコード・デコードする専用機能」が備わっています。

この機能を利用して動画をエンコードする方法を「ハードウェアエンコード」と呼びます。

ハードウェアエンコードの呼び名

ハードウェアエンコードの呼び名はメーカーによって異なります。

以下の様な感じです。

  • IntelのCPU
    • QSV
  • nVidiaのグラボ
    • CUDA(単にグラボの力を借りるだけ)
    • NVEnc(グラボの中のエンコード専用部分の力を借りる)
  • AMDのグラボ
    • VCE

ただ、すべての機器でハードウェアエンコードができるわけではありません。

例えば、IntelのCPUだからと言って、すべてのIntelのCPUでQSVが使えるわけではなく、「Sandy以降のCPUじゃないとQSVは使えない」などの制約はあります。

ハードウェアエンコードの特徴

ハードウェアエンコードは、普通のエンコード(ソフトウェアエンコードと呼ぶ)に比べて、

  • 「ビットレート当りの画質」が悪かったり、
  • 変なノイズが入ったりすることがある

など、ソフトウェアエンコードにはないデメリットがあります。

ただ、

  • 高速にエンコードできる
  • 省電力でエンコードできる
  • CPUに負荷をかけずにエンコードできる(エンコード中もパソコンが重くならない)

などのメリットもあります。

AviUtlでハードウェアエンコードする方法

AviUtlでは、x264guieExプラグインでお馴染みの「rigaya」氏のブログから、ハードウェアエンコード専用のプラグインが幾つか公開されています。

  • QSV用プラグイン:QSVEnc
  • NVEnc用のプラグイン:NVEnc
  • VCE用のプラグイン:VCEEnc

rigayaの日記兼メモ帳(右サイドバーから全てダウンロードできます)

このページの情報は以上です。

参考【AviUtl】QSVを使用してハードウェアエンコードする方法【QSVEnc】