MediaCoderでMPEG-4 AVCへ高速変換 |
|||
|
|
MediaCoderはv0.7.1以降 CUDA H.264でMPEG-4
AVCへ高速変換が可能
|
|
(2009.08.26作成、10.02.25更新)
|
話題の「GPGPUの動画編集・変換支援」に対応している動画編集・変換ソフトは、
市販のTMPGEnc 4.0 XPress, PowerDirector 7 UltraやSuper LoiLoScope VENUSなど少数に限られていたが、フリーの多形式相互変換ソフトMediaCoder が v0.7.1 build 4475以降 MPEG-4 AVCへの変換でCUDAに対応した。 そこで、MediaCoder v0.7.1のCUDA H.264エンコーダと x264エンコーダによる MPEG-4 AVC/H.264(H.264_AAC.mp4)への変換を比較検討した。 又、MPEG2-TS(H.264_AC3.ts)への変換方策も検討した。 *GPGPU (General Purpose computing on GPU、GPUによる汎目的計算)とは、 GPUの演算資源を画像処理以外の目的に応用する技術のことであり、NVIDIA のGeForceは「CUDA」、ATIのRadeonHDは「ATI Stream」 と呼ばれ、主に動画 のエンコードに利用されている。 |
|
マシン環境は、Intel Core 2 Quad Q6600(2.40GHz)、DDR2(PC2-6400)2GBx2、
GeForce9600GT(VRAM 512MB、Drive v190.38) Windows Vista HomePremium(SP2)で実行した。 MP4, MPEG2-TS関連コーデック・フィルタ類の環境は→別ページを参照。 |
|
|
|
|
|
MediaCoder
Full Editionを ここから入手(今回はMediaCoder
v0.7.1 b4493を使用)。
v0.7.1 build 4475以降ならCUDAに対応してる筈だが、Program Files\MediaCoder \codecsフォルダ内に「cudaH264Enc.exe」が同梱されているかを確認する。 CUDA利用に必須なシステム環境 MediaCoder 0.7.1 released - first free transcoder accelerated with NVIDIA CUDA technology(こちらの記事)より ・NVIDIA GeForce 8/9/GTX with at least 256MB display memory ・NVIDIA GeForce driver 185.85 or later installed なお、CUDAツールキットとCUDA SDK(「NVIDIA社CUDA開発ツール」からダウンロ ード可能)のインストールが必要であるように記載されている記事が見られるが、 インストールすると各々CUDA: 91.3MB、NVIDIA GPU Computing SDK: 219MBと 大容量で、アンインストールしても CUDAドライバがあればCUDAは作動する。 |
|
||||||||||||||||
|
||||||||||||||||
|
||||||||||||||||
Xacti DMX-HD1000のFull-HDファイルとRealMedia,
FLV4の利用に問題あるも、
適当なコーデック・フィルタ環境ならば多くのファイル形式に対応している。 |
||||||||||||||||
素材
今回は PT1で録画した地デジ二ヶ国語音声の洋画番組(X-MEN[デ][SS][二][字].ts、 収録時間 1時間54分、映像MPEG2、音声AAC圧縮)を元素材とした。 この元素材を変換すると、エラーとはならずワンセグの音声部分のみ変換して出力 されてしまうので、別記の方法A(こちらを参照)に準じ、BonTsDemuxとWAV to AC3 Encoderで処理後、tsMuxeR GUI で「TSMuxing」出力した MPEG2_ AC3.tsファイルを素材とした (MediaInfo 0.7.19で解析)。 |
||||||||||||||||
|
||||||||||||||||
|
||||||||||||||||
操作手順は別ページを参照(但し、3年ぶりの試用で変更点が多々あるようだ)。
|
||||||||||||||||
|
||||||||||||||||
ビデオの設定
形式:H.264 モード:今回はBitrate-basedを選択して、ビットレート 14000Kbpsを入力した。 Two-Passで実行すると ”Incorrect parameters for CUDA H.264”と警告さ れてエラーとなってしまう。 エンコーダ:自動選択のチェックを外してプルダウンメニューより「CUDA Encoder」を 選択する。 右エンコーダ欄の設定で、プロファイル:High、Level:4.1とした(x264エンコーダで 本素材を初期設定のまま変換したらこのようになっていたので・・・)。 「CABAC」、「ブロック解除」と「インターレース除去」にチェックを入れる。 |
||||||||||||||||
オーディオの設定
エンコーダ:CT AAC+を選択(今後は、後記のNero Encoderの使用がベター)。 右エンコーダ欄の設定で、ビットレート:256Kbpsとし、その他は初期設定の タイプ:LC-AAC、MPEG-4 AACとした。 |
||||||||||||||||
|
||||||||||||||||
|
||||||||||||||||
|
||||||||||||||||
ビデオの設定
形式:H.264、モード:Bitrate-based、14000Kbpsを入力(CUDA Encoderと同じ)。 エンコーダ:自動選択のチェックを外して「x264」 を選択する。 右エンコーダ欄の設定で、プロファイル:Auto、Level:Auto等初期設定のままと したが、インターレースを解除する項目がここには無い。 |
||||||||||||||||
*「アドバンスド」ボタンをクリックして、「Interleced
video conntent」を "false"から
"true"に試験的に変更してもインターレースを解除出来ない。 |
||||||||||||||||
「画像」タブの「エフェクト」:「インターレース」
又は、「ファイル」メニューの「設定」
:「Video Filters」の「Deinterlacer」で、 インターレース解除フィルタから選択(Drop-deinterlace filterかYADIFを推奨)。 →詳細は、「MEncoderの代表的なインタレ解除フィルタ」を参照。 今回は変換時間を節約する為に、敢えて「Disabled」で実行した。 |
||||||||||||||||
オーディオの設定
エンコーダ:FAACを選択(今後は、後記のNero Encoderの使用がベター)。 CT AAC+を使用すると何故かエラーとなってしまう! <参考>これは、MP4スプリッターにMainConcept MP4 Demultiplexerが使 用されていた為だった(このスプリッターの功罪については、こちらを参照)。 Haali Media Splitter v1.9.42.1をインストールし直したら変換可能となった が、CT AAC+を使用すると何故かQuickTime7.62で再生出来ないファイル となってしまうので、やはり Nero Encoderを使用した方が良い。 右エンコーダ欄の設定で、ビットレート:256Kbpsとした。 その他は初期設定のバージョンMPEG4、コンテナ:AACとした。 |
||||||||||||||||
|
||||||||||||||||
|
||||||||||||||||
1)出力したH.264_AAC.mp4ファイル情報(MediaInfo
0.7.20で解析)
CUDA H.264エンコーダで変換した場合 ビデオ/オーディオエンコーダ共に、ほぼ指定したビットレート通りに出力。 |
||||||||||||||||
x264エンコーダで変換した場合
オーディオエンコーダFAACは、指定したビットレートで出力出来ない。 |
||||||||||||||||
|
||||||||||||||||
|
||||||||||||||||
2)変換に必要な時間
収録時間 1時間54分番組の CUDA H.264エンコーダでH.264_AAC.mp4変換した場合に要した時間: 1時間41分 実時間とほぼ同じ時間で高速変換が可能だった。 <参考・比較> PowerDirector 8 UltraのCUDAでH.264_AC3.m2ts変換した場合: 1時間48分 (こちらを参照) Avivo Video Converter(のRadeonHD「ATI Stream」 )でH.264_AAC.mp4変換し た場合: 1時間24分 (こちらを参照) TMPGEnc 4.0 XPressのSpursEngineでH.264_AAC.mp4変換した場合: 1時間 47分(こちらを参照) と大差なかった。 AutoMenのx264「1 pass UltraFast」でH.264_AAC.mp4変換した場合: 2時間31 分(こちらを参照) Super LoiLoScopeのCUDAでH.264_AAC.mp4変換した場合: 3時間21分(こちら を参照)より高速だった。 |
||||||||||||||||
x264エンコーダでH.264_AAC.mp4変換した場合に要した時間:
6時間13分
インターレース解除をしないにも拘らず、CUDA H.264エンコーダの3〜4倍の長時 間を必要とした。 <参考・比較> PowerDirector 8 UltraのGPU無効でH.264_AC3.m2ts変換した場合: 5時間58分 TMPGEnc 4.0 XPressで通常のH.264_AAC.mp4変換した場合: 5時間38分 と同じかやや長時間を必要とした。 |
||||||||||||||||
3)画質
映像画質はいずれの方法で変換した場合も、PT1録画番組の素材と比較してSo-So で大きな違いを認めない。 |
||||||||||||||||
4)CPU使用率
CUDA H.264エンコーダで変換した場合 |
||||||||||||||||
x.264エンコーダで変換した場合は、CPUに全く余裕がなくなってしまっている。
|
||||||||||||||||
<補足>MPC
HomeCinemaのMP4再生について
|
||||||||||||||||
|
||||||||||||||||
|
||||||||||||||||
<参考>Web上で疑似ストリーム配信試験
総ビットレートの目標値を750Kbps、解像度640x360で圧縮した動画デモを提示。 |
||||||||||||||||
|
||||||||||||||||
追記
|
||||||||||||||||
|
||||||||||||||||
素材 :MP4に変換と同じPT1録画番組処理後のMPEG2_AC3.tsファイル。
<参考>処理前の元素材を変換すると、エラーとはならず、セッセと出力される。 しかし結果参考の如く、ワンセグの音声部分を変換しているに過ぎない。 設定 ビデオの設定 「CUDA H.264エンコーダでMP4に変換」と同じ上記の設定とした。 オーディオの設定 エンコーダ:FFmpeg、オーディオ形式:AC3としてビットレート:256Kbpsと入力。 |
||||||||||||||||
|
||||||||||||||||
|
||||||||||||||||
<注意>コンテナをMPEG2
TSにしても、多重チャンネルを初期設定の「自動選
択」(MP4Box)のままで実行すると、H.264_AC3.mp4へ変換されてしまう。 このファイルは、Windows Media Player、MPC HomeCinemaやGOM Playerで 再生すると無声となってしまう(Haali Media Splitter v1.9.42.1以外に有用な スプリッターが存在するのであろうか?)。 |
||||||||||||||||
成績
1)出力したH.264_AC3.tsファイル情報(MediaInfo 0.7.20で解析) |
||||||||||||||||
<参考>処理前の元素材を変換した場合は、勝手にワンセグの音声のみを
変換して出力するようだ(変換に要する時間は僅か7〜8分で完了)。 |
||||||||||||||||
2)収録時間 1時間54分番組の H.264_AC3.ts変換に要した時間:
1時間27分
H.264_AAC.mp4変換に要した時間とほぼ同じく高速に変換が可能。 <参考>「オーディオをコピー」で設定しても 1時間26分で短縮出来なかった。 3)画質:素材と比較してSo-Soで大きな違いを認めない。 4)CPU使用率:79〜87% 5)各種メディアプレイヤーによる再生 ffdshow tryouts rev2975, Haali Media Splitter v1.9.42.1環境下では、 SMPlayer0.6.8でシークバーの操作が上手く出来ない以外は、 Windows Media Player11, MPC HomeCinema1.2.908, GOM Player2.1.18, VLC media player1.0.1やKMPlayer2.9.4では問題なく再生可能で、映像・音声 解離も見られなかった。 |
||||||||||||||||
|
||||||||||||||||
|
||||||||||||||||
A)本ソフトは、「画像(Picture)」タブで、リサイズとクロップ、フィルタ処理によるエフェ
クトの適応が可能。 タイムライン上で1領域をトリミング出来る以外は、気の利いた編集機能(カット・結 合、タイトル挿入やトランジション等)を何ら搭載していない。 「エフェクト」ボタンをクリックする。 |
||||||||||||||||
すると、「クリッピングとエフェクト」画面が表示される。
|
||||||||||||||||
自動レベルは、Disable、Normal、Full Rangeの3項目。
ブロック解除、Deringing(リンギングノイズ除去)が可能。 インターレース除去は、上記の9項目 ノイズ除去は、Disable、Temporal、Normal 3D、High Quality 3Dの4項目。 負荷の大きさは、 Normal 3D < High Quality 3D< Temporal 明度、コントラスト、彩度、色相、ガンマはプレビューを見ながら調節が可能。 Clipping(=トリミング)は1領域のみ可能。 |
||||||||||||||||
<注意>
1)インターレース除去などは、適用ボタンを押さないとプレビューに反映されない。 2)ここで設定したエフェクトは次回以降のエンコードにも引き継がれるので、別 の動画を使用する時は「戻す」ボタンで初期値にしておく必要がある。 3)CUDA H.264エンコーダで利用可能なエフェクトには制限がある。 Scaling:映像の拡大縮小?、一部のインターレース除去、一部のノイズ除去 |
||||||||||||||||
<成績>
1)CUDA H.264エンコーダのエフェクト制限 トリミング操作可能なファイルなら上手くトリミングされて変換可能。 対応以外のインターレース除去を適応するとハングアップしてしまう。 ブロック解除や明度、ガンマーなどの調整をしても変換エラーとなる事はない が、出力したファイルにその効果は適応されていない。 |
||||||||||||||||
2)トリミング操作は、WMV,
MOV, MP4, MPEG2, AVI, OGM, MKV, FLVファイルで
は可能だが、M2TS/TSとNSVファイルはシークバーが移動せず不可。 3)映像無劣化でトリミング 本ソフトはMPEG2, MKV以外は上手く無劣化でトリミング出来ないようだ。 例えば、 AVIでは映像はトリミングされても無声となってしまう。 WMVとRMではエラー。MOVでは映像が短くトリミングされて停止してしまう。 筆者が常用しているXacti DMX-HD1000のFull-HDモードで撮影したMP4ファ イルについて、更に詳しく検討してみたところ、 映像と音声ともにコピーの場合は、CUDA Encoder又はx264設定いずれで も、エラーとなってしまう。 映像コピーとNero圧縮のMP4形式で出力すると、CUDA Encoder又はx264 設定いずれでも、音声のみトリミングされるが映像は元素材のままの長さ で出力されてしまう。 映像コピーとAC3圧縮のMPEG2 TS形式に変換すると、無映像のトリミング された音声のみのファイルとなって出力されてしまう。 これらの不具合はQuickTime Proで作成した素材でも同じだった。 |
||||||||||||||||
|
||||||||||||||||
<補足>Yambで簡単にFastStartストリーミング配信能の取得
Yambでアスペクト比の修正を行っていたら、Web上QuickTimeで FastStart 出来ない MP4動画がストリーミング再生可能となる事が解かった。 従って、SUPER c, Internet Video Converter, TMPGEnc 4.0 XPress, Avivo Video Converter, HandBrake, iWisoft Free Video Converter, XMedia Recode等 で作成した FastStart出来ない MP4動画を Yambを用いて再度作成し直せ ば(無劣化で出力すれば)、擬似ストリーミング再生が可能となる \(^o^)/ →「無料ツールで変換したMOV及びMP4動画の配信試験」を参照。 <Yamb 2.1.0.0 beta 2のバグ報告> 何んと!Web上Flash Playerでは再生出来ずブラウザがハングアップしてし まう。 ローカルでも MatroskaSplitter+ffdshow(H.264/AVC, AAC)存在下の DirectShow依存プレイヤー(WMPlayer等)で再生出来なくなってしまう。 ナッ何んと!Yambをアンインストールすると、スタートアッププログラムの メニューの多くが消去されて修復が出来ない (;>ω<) |
||||||||||||||||
|
||||||||||||||||
目的:64ビット版Windows
7環境では、MediaCoderのCUDA H.264変換を更に高速
化する事が可能かを、Windows Vistaで実行した時と比べて、緑色の違いがあ る以外はほぼ同じ条件で検討した。 マシン環境は、Intel Core 2 Quad Q6600(2.40GHz)で、 DDR2(PC2-6400): 4GB→ 6GB に増量。 GeForce9600GT(VRAM 512MB): Drive v190.38→v195.62に更新 OS: x32 Windows Vista HomePremium(SP2)→ x64 Windows 7 Professinal 素材:上記と同じく、 PT1で録画した地デジ二ヶ国語音声の洋画番組(1時間54分) を元素材として、音声のみを変換出力した MPEG2_AC3.tsファイル。 MediaCoderのバージョン(ここから入手) 32bit版, 64bit版いずれも v0.7.2.4582を使用。 変換:上記と同じく、CUDA H.264エンコーダでMPEG-4 AVC/H.264(MP4)に変換 設定:ビデオのビットレートを 8000Kbpsとした以外は上記と同様に設定した。 ビデオの設定:H.264, CBR, 8000Kbps。CUDA Encoder: High, Level 4.1, B-Frames 2, CABAC, ブロック解除, インターレース除去 オーディオの設定:Nero Encoder, LC-AAC, 256Kbps |
||||||||||||||||
成績
1)1時間54分番組をCUDA H.264変換した場合に要した時間 x32 Vista環境 32bit版v0.7.2.4582: 3時間07分 x64 Windows 7環境 32bit版v0.7.2.4582: 3時間54分 残念ながらVistaの 3時間07分と比べると 1.3倍長時間を必要とした。 64bit版v0.7.2.4582: 2時間24分 Vistaと比べて x0.77とかなり短縮されたが・・・ 以前のVista v0.7.1.4493の 1時間41分と比較するとそれでも長時間を必要 とした。 2))CPU使用率:CPU負担の軽減 x32 Vista環境 32bit版v0.7.2.4582 |
||||||||||||||||
|
||||||||||||||||
x64 Windows 7環境
32bit版v0.7.2.4582 |
||||||||||||||||
|
||||||||||||||||
x64
Windows 7環境
64bit版v0.7.2.4582 |
||||||||||||||||
|
||||||||||||||||
CUDAのGPGPUは利用されているのだが、今回の 32bit版v0.7.2.4582では
上手く効率的に作動していないようだ。 以上の如く期待した成績どころか、このソフトの今回のバージョンでは失望的な 結果となってしまった Y (>_<、)Y GeForce9600GTのCUDAは、v0.7.2シリーズに上手く対応出来ていないのか? 64bit用 0.7.1シリーズを入手する術がなく検証出来ないが、手持ちの 32bit用 0.7.1.4495で再度確認しようとしたら警告が出てエラーとなって 停止しまい、やはり検証出来なかった! |
||||||||||||||||
|
||||||||||||||||
インストールされる
cudaH264Enc.exe のバージョン表記がない為、詳細
は解らない ?(@_@;)? |