このページでは、
動画のエンコードを出来るだけ「高速化」する方法について簡単に紹介したいと思います。
1.動画編集時点での高速化設定
基本的にAviUtlのことを中心に書いていますが、
他のエンコードソフトでも言える事です。
①フレームレートを下げる
fpsを下げれば下げるほど、エンコード時間は縮まります。
60fpsだと30fpsの単純に2倍時間が掛かります。
なので極端な話、フレームレートがほぼ不要な動画(1枚絵を流し続けるラジオ動画など)なら1fpsでもOKです。それだけですごく早くなります。
②重いフィルタをOFFにする
例えば
- シャープフィルタ
- ぼかしフィルタ
のようなフィルタは、動画全体に処理を掛ける必要があるので、エンコ時間が伸びます。
エンコ時間を縮めたい場合は、掛けても掛けなくても良いフィルタは外しましょう。
③ビットレートを下げれるフィルタを使う
例えば「ノイズ除去フィルタ」などを上手く使用すれば、ブロックノイズを減らす事ができるのでビットレートを割り当てる量を低くできます。
結果的にエンコ時間が縮まります。
④重いエフェクトは使わない
プレビューの際に重くなるエフェクトを使えば使うほど、エンコード時間は伸びます。
例えば
などのエフェクトは使うだけで激重になります。
⑤カメラ制御は使わない
カメラ制御は基本的に重いので、使用するだけでエンコードがかなり遅くなります。
参考:カメラ制御の使い方
⑥スクリプト化できる処理はスクリプト化する
動画内で何回も繰り返すような処理の場合は「スクリプト化」すると、
エンコードが早くなることが多いです。
2.エンコード設定の注意点
ここからは
どのエンコーダーを使用しても言える事ばかりなので、AviUtlに限らず、他の動画編集ソフトでも言えることです。
①ビットレートを下げる
ビットレートが高いほど、エンコード時間は伸びます。
画質にこだわらないなら、ビットレートを下げる事でエンコード時間を縮めれます。
②コーデックがマルチスレッドに対応している場合は「マルチスレッド」機能をONにする
コーデック自体にマルチスレッド機能がある場合はONにしておきましょう。
▲こういうの(Lagarith Lossless Video Codec) |
AviUtlの場合は、マルチスレッドに対応していないコーデックでも「AVI出力(マルチスレッド) versionX.XX」プラグインを使用すればマルチスレッド化できるかもしれません。
参考:AVI出力をマルチスレッド化してエンコードする方法【出力プラグイン】
③エンコードが早いコーデックを使用する
コーデックによってエンコードの早さに違いがあります。
例えば、可逆圧縮系コーデックで言えば「MLC」より「Ut Video」を使った方が早いです。
例えば、非可逆圧縮系コーデックで言えば「WMV Plus」より「x264guiex」を使った方が早いです。
④「圧縮率」より「エンコード速度」重視の設定に変更する
これもコーデック自体の設定です。
▲こういうの(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」の機能を借りて、動画をエンコードする方法です。
ハードウェアエンコードって?
最近の
- 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の日記兼メモ帳(右サイドバーから全てダウンロードできます)
このページの情報は以上です。
コメント