最終更新日:2017.10.7
このページを作るきっかけになったのは『Freemake Video Converter』というフリーソフトに出会ったのがきっかけでした
たまに動画変換する程度の私ですが、TMPGEnc 4.0 XPress>TMPGEnc Video Mastering Works 5>HandBrake>AnyVideoConverter>XMedia Recodeと色々使ってみたものの満足できるものはなかなかなく、ようやくいいソフトに出会えたという気がしました
個人的には、上級者(語弊を恐れず言うならマニア)の方はTMPGかAviutlというソフトで細部に渡る綿密な設定を行い、高画質と効率を突き詰めているようなイメージがあります
ですがたまに動画変換をする程度でそこまで時間と手間をかけずに綺麗な動画を作成するにはどうすればいいか・・・そう思っている方は少なくないはず
そうした方への一助になればと思い作成しましたが、作っていくうちにだんだん難しい部分へも踏み込んでしまいました・・・
興味のある方はその辺も、そうでない方はこの設定にすれば綺麗な動画が作れるという基本部分だけでも参考になればと思います
●使用したソフト ※()内は比較テスト中の略称
Freemake Video Converter 3.0.2(FVC)
HandBrake 0.9.6(HB)
TMPGEnc Video Mastering Works 5.0.6.38(TMPG)
XMedia Recode 3.0.9.0(XR)※最新Verは3.1.0.0
一部追加
MediaCoder 0.8.12.5240(MC)
Any Video Converter 3.3.8(AVC)
MediaInfo 0.7.54.....動画ファイルのコーデックなどの情報を調べるソフト
●PCスペック概要(ショボくてすみません)
CPU Core2Duo E8400(3.0GHz)
メモリ 6GB(3GB-RAMディスク)
Cドライブ SSD64GB(C300)
グラボ GTX260
●元動画
映像 x264 7872kbps 1920*1080/音声 AAC-2ch 148kbps 実時間1:41
★今回はこの条件で、現在主流と思われるH.264でのエンコード時間と品質について比較してみました
予めお断りしておきますが、動画エンコードに関してはほとんど素人同然ですので、それを踏まえた上で御覧ください
注:FreemakeVideoConverterではオプションでCUDAとDXVAの設定項目があり、公式HPの表記からもDXVAは QSVのことだと思っていたのですが、どうもQSV未対応らしいです DXVAはそのまま再生支援のことなのか不明です |
各ソフトによってx264の初期設定値が異なり、変換速度・品質に大きな違いが出てきます
まずはその設定値の確認です
※細部のパラメータの変更方法がわかったので、急遽FVC6,FVC7を追加しました
(追加変更にかなり重要なパラメータが含まれています)
初心者の方には難しいと思われますが、この設定値がデフォルトでここだけ変えれば綺麗に(または速く)なるというのがありますので参考にしてください(長いので別ページにしてあります)
元動画7872kbpsを6000kbps,2300kbps,1500kbps,800kbpsにそれぞれエンコードし、処理に要する時間を一覧にしたものです
パラメータを変更して差異を少なくしたFVC6,HB,TMPG1,XR2の比較が一番わかりやすいと思います
※追加
XR3(ほぼ全ての設定値をHB/TMPGに合わせたもの) 6000kbps時 07:59 最も遅い
※追加
長所と短所のところでCUDAとDXVAに対応したフリーソフトがFVCだけだと書いてありますが、Mediacorder(以下MC)とAnyVideoConverter(同AVC/CUDAのみ)も対応していたので、簡単にベンチを取りました
(AviUtlも対応してますが、初心者向けではないので最初から除外してます)
MC1 2300 01:35 (CUDA)
MC2 2300 04:16 (HB/TMPG1と同程度の設定)
AVC1 2300 01:17 (CUDA)
AVC2 2300 03:25 (初期設定)
AVC3 2300 04:20 (HB/TMPG1と同程度の設定)
各ソフトのエンコード中のCPU使用率を一覧にしたものです
ぱっと見てわかるようにFVC以外はコピー&ペーストしたかのように似たようなCPU使用率になっています(ほとんど100%に近いです)
※FVC6,FVC7はスレッド処理が2から3になっているのでCPU使用率が他と同じ100%に近くになっている
各ソフトの起動時・エンコード中のメモリ使用量を測定してみました
違いがよく分かると思います
※FVC7でわかる通り、スレッドが増えるとメモリ使用量も増加します
(それでも少ない方ですが・・・)
エンコードの結果、育成された動画ファイルの容量一覧です
TMPGが一番少なく、CUDAを使用したものが一番大きくなっています
その他はほとんど同じですね
※追加
MC1 2300 29,989KB
MC2 2300 28,734KB
AVC1 2300 30,170KB
AVC2 2300 29,729KB
AVC3 2300 28,865KB
エンコード時に適用可能なフィルター機能の比較です
ここはさすがに市販ソフトのTMPGが有利なようです
残念ながらFVCにはフィルター機能が全くありません
※追加
AVCはデインタレースとデテレシネのみ
テストしたなかで感じたこと気づいたことなどを書いてみました
主に私見ですので見解の相違があるかもしれませんが・・・
FVCでのBDエンコードについて
BDMV/STREAM フォルダを開いて、M2TSまたはMTSファイルをFreemake Video Converterに直接追加すれば可能らしい
※XRの長所で大事なことを書き忘れていました
映像のみ、音声のみをエンコードすることが簡単にでき、形式を変換しなくていいのならコピー処理をすれば数秒で処理できます
コーデックはそのままでコンテナだけ変えるとか、動画だけ・音声だけを抜き出すということがとても高速にできます
FVCの短所
複数音声不可
AVCの特徴
1920*1080にしても1920*1088か1920*1072になる(16の倍数のみ)
動画情報の取得が不可
変換時間が出ない
初期状態だとシングルタスクかつパラメータがとても低く、その割に処理時間が長い
level=1.3/cabac off/8x8dct off/ref=2/me=umh/bframes=0/subme=6/trellis=0/weightp=0
細かい設定が出来ない(上記のパラメータのみ変更可能)
ref3にしても4になる
CUDAのみ対応(QSV未対応)
●調査結果まとめ
CUDAを使うとメモリ使用量が減り、作られる動画のサイズが大きくなる
CUDAは画質が極端に落ちる(特にFVC)
FVCのみCPU負荷が低く、メモリ使用量も一番少ない(初期状態で2スレッド処理だったため)
パラメータを極力近づけることで各ソフトの速度差は短縮されるが、それでもTMPGは遅くFVCは速い、ただし品質はTMPGの方が高い(設定次第で逆転可能)
CUDAを使用してもTMPGよりFVCの方がかなり速い、ただし品質はFVCの方がかなり低い
CUDAはフレームレートによる処理時間の差がほとんどない
初期状態でFVCが飛び抜けて速いのはx264の各設定が速度優先になっているからである
FVCのパラメータには独自の制限があるものがある(x264コマンドとffmpegコマンドの違いだった)
パラメータを近づけるとHBとXRの差がほとんどなくなるが、品質はHBの方が明らかに高い
(XRで8x8dctとmixed refが無効になっているのが大きい)
◎結論
やはりFreemake Video Converterは速かったですが、思ったより品質が悪かったのが残念です
特にCUDA処理がTMPGよりはるかに悪いとは思いもよりませんでした
最高画質になるだろうと思い設定したFVC5が52-60%処理時間が伸びたにもかかわらず、品質がほとんど向上しなかったのも予想外です ※これも8x8dctとmixed refが無効になっているのが大きかった
FVC以外の初期設定値が同じような値になっているのは、速度と品質のバランスに優れた設定になっているということですね
あとHBの品質がかなりいいということがわかりました
ただカット編集できないのとパススルーでで音声がうまく再生できなかったのが難点です
※mp3にすると綺麗に出たのでAAC,AC3の問題かffmpegの設定か不明・・・どうやらAACにエンコードする際、パススルーの設定で問題があるみたい HBでパススルーONでもOFFでもダメだった(ffmpegでパススルー設定すると起きる現象だが、HB以外はパススルーでも綺麗に再生される、ちなみにmediaespressoというソフトもダメだった)
以前はAvidemuxと併用してた時期もありましたがうまくカットできない動画もあって・・・
XRはHBと同じ程度の処理時間にも関わらず、明らかに品質が劣っていました ※8x8dctとmixed refが無効になっていて処理時間がほぼ同じということはXRの方が遅いということになる
>メインテストの結果に追加したXR3によりTMPGよりも処理が遅いということが判明
と色々やっているうちに細部のパラメータを変更する方法が見つかりましたので、急遽FVC6とFVC7を追加してテストしました
x264のコマンドラインと異なっていた原因は、Freemakeはffmpegのオプションコマンドとしてxmlに記述していたからでした・・・と言ってもなんのことだかわからない方も多いと思いますが・・・
で結果は・・・Freemake完全勝利でした!
FVC6で画質がTMPG1に追いつき、処理時間ではTMPG1はおろかHBやXRよりもかなり速く処理できました
さすがにFVC7の最高画質設定ではTMPG1よりかなり時間がかかりましたが、TMPG1で同じ設定をすれば12分くらいかかるだろうと勝手に予想いたします
※追加
MC1(CUDA)は画質がTMPG3とほぼ同じレベルながら処理速度はFVC1より少し遅いくらい
MC2(近似)はTMPG1と同レベルの画質ながら25%も処理が速いです
結果的にはMCが一番良くできているような感じですが、設定の仕方が難しいのでお世辞にも初心者向けとは言えません(パラメータの用語が独特です)
AVC1(CUDA)は画質が全くMC1と同等で速度は最速
AVC2(初期設定)は設定されているパラメータがPDA用なのかとても低く、出来上がりも悪いが処理時間は長い
AVC3(近似)もMC2とほぼ同じ品質かつ処理時間もほぼ同じ
設定を変えれば品質は他と並ぶが、長所と短所のところに書いたように短所の方が多い
全体的な品質の評価をするなら・・・
FVC7>TMPG1=MC2=AVC3=FVC6>HB>TMPG2=FVC5(ここまで高画質)
>FVC4>FVC3=XR1>XR2(この辺りはまあまあ)
>>>FVC2>AVC2(低画質)
>>>>TMPG3>MC1=AVC1>>>>>>>FVC1(全く使い物になりません)
です
FVCは初期設定2及びCUDA処理の1だと処理速度優先で品質が悪いということが明らかになりました
(CUDA処理は問題外ですが、FVC2はあまり画質を気にしないでファイルを小さくしたい場合など処理時間が短いので有効だと思います)
処理時間を考えるとFVC7を使うことはないと思います
2300kbpsの動画で比較するとFVC4が一番バランスがいいようですので、今後はこの設定をメインに(ちょっと手直しして)、高画質にしたい時だけFVC6を使おうかと思っています
FVCのカット編集はやはり簡単で便利ですしね
でもまあはっきり言ってしまうと、このテストをやっていくうちにCUDAよりIntelのQSV(FVCではDXVAとなってますが)の方がはるかに高画質のようで、速度を考えると私には一番あってそうな感じでした
ざっと見た感じ品質的にはFVC2か3あたりのようですし、新型CPUに内蔵されているHD4000だとQSV2.0になって速度がより速くなっているようですので、ちょっと食指が動かされます(QSV2.0で品質も上がってるといいのだけれど・・・)
もし手に入れられたら品質比較などやってみたいですね
xmlファイルを入れ替える作業をしなければならないので、開発元にエキスパートモード作って設定をいじれるようにして欲しいと要望メールを出しておきました^^
ついでにCUDA画質の改善とフィルター機能の搭載も・・・
余談ですがTMPGの初期設定で2時間37分のBD(46GB)をx264で15GB(13Mbps)にするのに23時間53分かかりました・・・まさに10倍><
●参考ページ
細かいパラメータの設定について興味がある方には、とてもわかり易く解説されているので参考になると思います
x264
猫科研究所 - x264とBlu-ray
拡張 x264 出力(GUI)Exの設定項目とその機能について
ffmpeg
速度に大きな影響を与える可能性の高い主要パラメータは、できるだけ数値を近づけて行ったテストでしたが、全ての数値を合わせたわけではありません
その部分が速度にも少なからず影響あると思いますので、こだわる方のために詳細なパラメータの比較一覧を載せておきます
※FVCは標準でパラメータを変更することが出来ず、xmlファイルをテキストエディタで修正して変更しています
xmlに書いてあるパラメータの名称が標準的なx264の名称と異なり、修正が困難な部分もありました(ffmpegのオプションコマンドとして記述されてるようです)
(qmaxが31になったのもffmpegでの最大値が31だからみたいです)
※ffmpegとx264の差異がほぼ判明しましたのでFVC6,7に変更を反映いたしました
FVC6,7での変更点は、
analyse=0x1:0x131(partitions全使用)
mixed_ref=1
8x8dct=1
threads=0(オート設定、実質3)
weightb=1
以上ですが、weightb以外は処理速度・品質に大きな影響を与えるものでした
direct=3はオート設定なので1と同条件
vbv_maxrate及びvbv_bufsizeは設定すると変な値が入り
低ビットレートの動画が作成されたため設定なし(デフォルト)に戻しました
※ちなみにFVCで設定では作れない1100kbps程度の動画ができました
モバイル機器などのための設定なので特に影響ないと思われます