今更ながらGPGPU(CUDA)でTSをmp4にエンコードしてみた
目的はXperiaなどスマフォに録画した番組を入れて見る事と、
観ないけど削除はもったいないと言う大量の録画データを圧縮することです。
とにかく誰でもすぐに使えてお手軽、速度重視、画質はそこそこです。
GPGPU(CUDA)とは
TSをmp4に変換すればXperiaで観れられるのでエンコードしてみようと思いましたけれど、やっぱ時間がかかります。
速く出来る方法はないかと調べてみるとQSVと言うのを見つけた、しかし新しいintelCPUを持っていないと出来ませんorz
次に見つけたのはGPGPU。CPUの代わりにGPUを使って、若しくは連携してエンコードを行います。
CPUは4~8コアほどしか無いけれど、GPUの場合は16コア以上が多く、大量に並列作業が出来るので高速になる。
別に新しい技術ではなく、数年前からあるみたいです。
それでNVIDIAのGeForceでGPGPUを使える環境が「CUDA」、AMDのRadeonは「ATI Stream」。
その環境なるものはソフトウェアに付属され、対応していればGPGPUでエンコードが出来るらしいとの事。
尚、ある程度新しいGPUである必要がありGeForce 9シリーズ以上であれば問題無いかと
スポンサーリンク 観ないけど削除はもったいないと言う大量の録画データを圧縮することです。
とにかく誰でもすぐに使えてお手軽、速度重視、画質はそこそこです。
GPGPU(CUDA)とは
TSをmp4に変換すればXperiaで観れられるのでエンコードしてみようと思いましたけれど、やっぱ時間がかかります。
速く出来る方法はないかと調べてみるとQSVと言うのを見つけた、しかし新しいintelCPUを持っていないと出来ませんorz
次に見つけたのはGPGPU。CPUの代わりにGPUを使って、若しくは連携してエンコードを行います。
CPUは4~8コアほどしか無いけれど、GPUの場合は16コア以上が多く、大量に並列作業が出来るので高速になる。
別に新しい技術ではなく、数年前からあるみたいです。
それでNVIDIAのGeForceでGPGPUを使える環境が「CUDA」、AMDのRadeonは「ATI Stream」。
その環境なるものはソフトウェアに付属され、対応していればGPGPUでエンコードが出来るらしいとの事。
尚、ある程度新しいGPUである必要がありGeForce 9シリーズ以上であれば問題無いかと
CUDA対応しているソフトウェアは?
まずこのエントリ読んでから→CUDAで動画エンコードが速くなるか: sailog-cyclog
自分のGPUはGeForceなので、「CUDA」対応のソフトウェアを使ってエンコードして見ることにしました。
試してみたのは以下の3つ。他にもあると思いますけど、調べるのメンドイです
・badaboom2 (シェアウェア)
・MediaCoder (フリーウェア)
・Freemake Video Converter (フリーウェア)
結論を言えば実用できそうなのは最後のFreemake Video Converterになりました。
って事で、Freemake Video Converterの使い方を簡単に説明したいと思います。
まずFreemake Video Converter をダウンロードしまして、インストールして下さい。
起動するとこんな画面。様々な形式に変換出来る模様

まずはじめに左上[ファイル]-[オプション]-[アクセラレーション]タブを選択し、
『自動的に最適な変換パラメータを決定します(最高速度)』のチェックボックスを外すと、
[CUDAを使用する]と[DXVAを使用する]が表示されます。一応こんな感じでCUDAのON/OFF選べるようです。

次に、ウィンドウ中心にtsファイルをドラックアンドドロップでファイルが読み込めます。
読み込まれた動画をダブルクリックか、右上のハサミのボタンで再生、編集ができるようになります。

編集はaviutlと同じです。選択範囲の開始点、終点を決め、そこをカットするという感じです。緑色のボタンは上下左右反転。

ではエンコードの設定をしましょう。下の方にAVIとかMP4とかDVDとかあると思いますが、
今回はAndroidのXperia rayに動画入れたいので、Androidを選びます。ついでにお気に入り登録。

するとウィンドウが出るので、rayの解像度は854×480なので、同じ物をプリセットから選びます。
Xperia ray の名前はカスタムで自分で作ったプリセットですので元々は無いです。
しかし解像度がなぜか852x480になる・・・

次に青い歯車ボタンをクリック。取り敢えず下の様に設定してみました。

ビデオコーデックはH.264でないとCUDAが動作しません。あとはお好みで良いと思いますが、
スマフォはRAM容量が少ないのでビットレートは抑えめにしておいた方が良いです。終わったらOK
エンコ回数はワンパスエンコードを選んで下さい。2パスではCUDAは機能しません。
であとは待ちましょう。使用しているファイルによりますが結構速く終わると思います。
自分のPCは
エンコードするファイルは
エンコード設定は、
なるべく同じ設定でエンコードしてみましたが、違う部分があるかもしれません。
参考にキャプチャしてみました。解像度が微妙に違うのはご愛嬌と言うことで。
見たところそんなに違いはない感じですが、何かエンコードした画像は全体的に赤っぽくなりました。全て348MB
badaboom2はかなりCUDAしているのでGPUの負荷率が高いです。
基本的には完全にCPUの方が遅いが高品質、GPUは速いが雑な感じになります。Σ(゚д゚) エッ!?
インターレース解除すると音ズレが、解除しないと音ズレはおきません。
しかし解除しないと画質がやばいです。見る時はプレーヤー側で解除すれば良いと思いますが。
あと、これはシェアウェアなので30回までしかエンコード出来ません。
Badaboom2:進化したCUDAエンコード:の実力を探ってみた
MediaCoderは画質も速度も良くても、インターレース解除するしないにかかわらず音ズレが起きます。
その問題が無くなれば一番良さ気なのですが、残念。別のバージョンを試しても問題解決せず。
MPEG-TSをMPEG-PSに変換してから行うと音ズレしませんが、手間がかかり、
なぜかエンコードに2倍の20分かかる様になりました。
MediaCoderでMPEG-4 AVCへ高速変換
TS→MP4変換メモ - Ellinorのふらふら日記
Freemake Video Converterは十分使えます。MediaCodeと画質は同等、時間は数分遅い。
遅い理由が他2つよりCPU、GPUがあんまり働いてくれてない事が原因でしょうか。それが売りらしいけれども。
ま、CPU負荷が低いので、他の作業をしてもエンコードに影響が出にくい点はいいですね。
すげーシンプルでわかり易く、さらにCMカット編集など色々できるので結構いいのでは?って感じです。
ただ、MediaCoderほど細かい設定は期待できないです。
尚、設定は上と同じで、解像度オリジナル、映像ビットレートを5000kbpsだけ変更した場合が以下。
CUDAでもそうでなくても劇的に時間は変わりません。今回では1分速くなるくらいです。
解像度を大きくしたり、再生時間が長くなればその差は大きくなるとは思いますけど。
aviutlでも同じくらい速く出来ると思うのですが、多機能な分どうも遅いですね。1passでも40分以上とか
それより最新のintelCPUとGPUを買ってQSVした方がもっと効果でるのかもしれません。
QSV(SDK)での動画エンコードが速すぎる!(i7-2600&H67set): くろすけの、まったりと過ごす日々
まぁFreemakeはお手軽にCUDAが使えて、そこそこ速く画質も悪くないなと思いました。
知人に見せたい番組があるなら、さっとエンコードしてスマフォに入れるのも良いですね。
ではでは。
スポンサーリンク まずこのエントリ読んでから→CUDAで動画エンコードが速くなるか: sailog-cyclog
自分のGPUはGeForceなので、「CUDA」対応のソフトウェアを使ってエンコードして見ることにしました。
試してみたのは以下の3つ。他にもあると思いますけど、調べるのメンドイです
・badaboom2 (シェアウェア)
・MediaCoder (フリーウェア)
・Freemake Video Converter (フリーウェア)
結論を言えば実用できそうなのは最後のFreemake Video Converterになりました。
って事で、Freemake Video Converterの使い方を簡単に説明したいと思います。
まずFreemake Video Converter をダウンロードしまして、インストールして下さい。
起動するとこんな画面。様々な形式に変換出来る模様

まずはじめに左上[ファイル]-[オプション]-[アクセラレーション]タブを選択し、
『自動的に最適な変換パラメータを決定します(最高速度)』のチェックボックスを外すと、
[CUDAを使用する]と[DXVAを使用する]が表示されます。一応こんな感じでCUDAのON/OFF選べるようです。

次に、ウィンドウ中心にtsファイルをドラックアンドドロップでファイルが読み込めます。
読み込まれた動画をダブルクリックか、右上のハサミのボタンで再生、編集ができるようになります。

編集はaviutlと同じです。選択範囲の開始点、終点を決め、そこをカットするという感じです。緑色のボタンは上下左右反転。

ではエンコードの設定をしましょう。下の方にAVIとかMP4とかDVDとかあると思いますが、
今回はAndroidのXperia rayに動画入れたいので、Androidを選びます。ついでにお気に入り登録。

するとウィンドウが出るので、rayの解像度は854×480なので、同じ物をプリセットから選びます。
Xperia ray の名前はカスタムで自分で作ったプリセットですので元々は無いです。
しかし解像度がなぜか852x480になる・・・

次に青い歯車ボタンをクリック。取り敢えず下の様に設定してみました。

ビデオコーデックはH.264でないとCUDAが動作しません。あとはお好みで良いと思いますが、
スマフォはRAM容量が少ないのでビットレートは抑えめにしておいた方が良いです。終わったらOK
エンコ回数はワンパスエンコードを選んで下さい。2パスではCUDAは機能しません。
であとは待ちましょう。使用しているファイルによりますが結構速く終わると思います。
自分のPCは
CPU:Phenom II X4 940 GPU:GeForce 9800 GTX+ RAM:4GB |
再生時間 28分59秒 解像度:1440x1080 フレームレート:29フレーム/秒 音声ビットレート:190kbps サンプリングレート:48kHz |
1passエンコード 解像度:852x480(Badaboom2は854x480) 映像コーデック:CUDA H.264 映像ビットレート:1500kbps 音声コーデック: LC-AAC 音声ビットレート:128kbps サンプルレート:オリジナル フレームレート:オリジナル インターレース解除 多分全てON(FreemakはON・OFFの設定が無い) |
なるべく同じ設定でエンコードしてみましたが、違う部分があるかもしれません。
参考にキャプチャしてみました。解像度が微妙に違うのはご愛嬌と言うことで。
見たところそんなに違いはない感じですが、何かエンコードした画像は全体的に赤っぽくなりました。全て348MB
source | Badaboom2 (14分19秒/音ズレ有り/CPU:36~41% GPU:77~81%) |
![]() | ![]() |
![]() | ![]() |
Freemake Video Converter (16分43秒/音ズレ無し/CPU:39~46% GPU:15~16%) | MediaCoder (10分15秒/音ズレ有り/CPU:64~81% GPU:20~22%) |
badaboom2はかなりCUDAしているのでGPUの負荷率が高いです。
基本的には完全にCPUの方が遅いが高品質、GPUは速いが雑な感じになります。Σ(゚д゚) エッ!?
インターレース解除すると音ズレが、解除しないと音ズレはおきません。
しかし解除しないと画質がやばいです。見る時はプレーヤー側で解除すれば良いと思いますが。
![]() | Badaboom2 (11分2秒/音ズレ無し/インタレ解除無し) |
Badaboom2:進化したCUDAエンコード:の実力を探ってみた
MediaCoderは画質も速度も良くても、インターレース解除するしないにかかわらず音ズレが起きます。
その問題が無くなれば一番良さ気なのですが、残念。別のバージョンを試しても問題解決せず。
MPEG-TSをMPEG-PSに変換してから行うと音ズレしませんが、手間がかかり、
なぜかエンコードに2倍の20分かかる様になりました。
MediaCoderでMPEG-4 AVCへ高速変換
TS→MP4変換メモ - Ellinorのふらふら日記
Freemake Video Converterは十分使えます。MediaCodeと画質は同等、時間は数分遅い。
遅い理由が他2つよりCPU、GPUがあんまり働いてくれてない事が原因でしょうか。それが売りらしいけれども。
ま、CPU負荷が低いので、他の作業をしてもエンコードに影響が出にくい点はいいですね。
すげーシンプルでわかり易く、さらにCMカット編集など色々できるので結構いいのでは?って感じです。
ただ、MediaCoderほど細かい設定は期待できないです。
尚、設定は上と同じで、解像度オリジナル、映像ビットレートを5000kbpsだけ変更した場合が以下。
![]() | Freemake (28分41秒/音ズレなし/1.04GB) |
CUDAでもそうでなくても劇的に時間は変わりません。今回では1分速くなるくらいです。
解像度を大きくしたり、再生時間が長くなればその差は大きくなるとは思いますけど。
aviutlでも同じくらい速く出来ると思うのですが、多機能な分どうも遅いですね。1passでも40分以上とか
それより最新のintelCPUとGPUを買ってQSVした方がもっと効果でるのかもしれません。
QSV(SDK)での動画エンコードが速すぎる!(i7-2600&H67set): くろすけの、まったりと過ごす日々
まぁFreemakeはお手軽にCUDAが使えて、そこそこ速く画質も悪くないなと思いました。
知人に見せたい番組があるなら、さっとエンコードしてスマフォに入れるのも良いですね。
ではでは。
- 関連記事
-
- TSファイルを一括でQSVエンコードする
- Aviutl+QSVでエンコードしてみる(core i7 3770+Z77)
- 今更ながらGPGPU(CUDA)でTSをmp4にエンコードしてみた
- Avisynth+バッチファイル+αで簡単にアニメ高速エンコード その4
- Avisynth+バッチファイル+αで簡単にアニメ高速エンコード その3
| エンコード | 17:37 | comments:5 | trackbacks:0 | TOP↑
大変参考になりました
先月Gateway(笑)のGeforceボードがお亡くなりになってGTX550Tiに載せ替えたのでCUDAエンコに手を出したいと思います。ページの情報、大変参考になります。
| じんじん | 2012/05/06 00:16 | URL |