2011年版PT2録画静音サーバー(続)MediaCoderでH.264エンコード

前記事で、IntelのCPUによるMPEG-2 TSからH.264(MPEG-4 AVC)へのハードウェア圧縮について、圧倒的なコストパフォーマンスの向上を報告しました。ただし、ソフトウェアとしてTMPGEnc Video Mastering Worksという有料ソフト(ダウンロード版9800円)を使う必要がありました。このソフトは、編集機能なども豊富ですから、ビデオを加工する場合にとても有効ですが、単にハードウェア圧縮だけの場合は勿体無い気がします。

そこで無料でIntel CPUのハードウェア圧縮に使えるソフトを探したところ、MediaCoderを発見しました。

ただし、2011年6月12日にリリースされたMediaCoder build 5166には、以下の課題があります。
今回の調査は、PT2で録画したMPEG-2 TSファイルをH.264(MPEG-4 AVC)にIntel Media SDK hardwareで圧縮する場合です。
(1) 25分のMPEG-2 TSファイルを圧縮したMPEG-4 AVCファイルをWindows Media Player 12で再生したところ、わずかですが音ずれがありました。

(2)54分のMPEG-2 TSファイルを圧縮したMPEG-4 AVCファイルをWindows Media Player 12で再生したところ、最初の1~2分経過したところで、音声が再生できなくなりました。

このような現象は、TMPGEnc VMW5によるIntel Media SDK hardware圧縮では、全く発生していませんから、MediaCoderそのものに問題があると考えられます。

従って、現状では様子見です。
バージョンアップによる改善を待った方が良いでしょう。当面は、9800円ですがTMPGEnc VMW5を使うべきです。

今回調査した方法を明確にするために、MediaCoderでハードウェア圧縮ができるまでの手順を紹介します。

具体的な手順のアウトラインは以下のとおりです。

(1)MediaCoderをサイトからダウンロードする。
(2)日本語化工房から日本語ファイルをダウンロードする。
(3)MediaCoderをインストールする。
(4)日本語ファイルを上書きする。
(5)MediaCoderを実行する。
(6)Welcome Screenの非表示と日本語表示を設定する。
(7)MediaCoderを再起動する。
(8)Welcome Screenが表示されないこと、日本語が表示されていることを確認する。
(9)Intel Media SDK hardwareを使う設定に変更する。

それでは、詳細を以下に説明します。

(1)MediaCoderをサイトからダウンロードする。

MediaCoderは、http://www.mediacoderhq.com/index.htm からダウンロードします。

上部のメニューで、「ダウンロード」を選択する。

上記画面で、下部にある「Choose a MediaCoder edition to download」をクリックする。

中央部にある「MediaCoder 2011」をクリックする。

32-bit版か64-bit版を選択し、最新バージョンをクリックする。

ダウンロードする場所を「Mirror #1」「Mirror #2」「Mirror #3」から選択する。私がダウンロードした時は、「Mirror #1」が一番安定していた。クリックするとダウンロードが始まり、「MediaCoder2011-R6-5166.zip」が取得できる。解凍して、「MediaCoder2011-R6-5166.exe」にする。

(2)日本語化工房から日本語ファイルをダウンロードする。

「日本語化工房 MediaCoder」を検索し、以下のサイトを表示する。


ここで下部に表示されている日本語ランゲージファイル「2011 R6 (0.8.1.5166)」をクリックするとダウンロードが始まり、「mediacoder081_5166_jp.zip」が取得できる。解凍して、「japanese.xml」にする。

(3)MediaCoderをインストールする。

  1. 解凍した「MediaCoder2011-R6-5166.exe」を実行する。
  2. 途中でリアルプレーヤーをインストールするか聞いてくるが、必要なければ「リアルプレーヤーをインストールしない」 を選択して「Next」ボタンをクリックする。
  3. インストール完了時にブラウザが開くが閉じる。

(4)日本語ファイルを上書きする。

日本語ファイルをバージョンにあわせて書き換える。例えば、C:/Program Files/MediaCoder/lang/japanese.xmlファイルをダウンロードしたものに置き換える。

(5)MediaCoderを実行する。

デスクトップ上のMediaCoderアイコンをクリックして実行する。
以下のスクリプトエラー画面が表示される。

上記画面で「はい」をクリックする。

MediaCoderのwelcome画面が表示されているので、右上のボタンをクリックして閉じる。

(6)Welcome Screenの非表示と日本語表示、出力保存フォルダを設定する。

・右上のOutput Folderを自分の好みに合わせて設定する。ここでは、D:/tempに設定する。
・日本語ランゲージファイルを有効にするために、メニューの右から2番目「Options>Language>Japanese(Outdated)」を選択する。
・最後に「Settings」クリックして、welcome screenを非表示をにする。

「Do not show welcome screen」に、現在のビルド番号を入力して「Save」ボタンをクリックする。。今回は、「5166 」

 

(7)MediaCoderを再起動して、Welcome Screenが表示されないこと、日本語が表示されていることを確認する。

中央左側の「ビデオ」タブをクリックする。

(9)Intel Media SDK hardwareを使う設定に変更する。

上記画面に表示されている「ビデオ」タブの赤い枠部分を変更して、Intel Media SDK hardwareをエンコーダに設定する。デフォールトは、x.264に設定されている。

基本設定として、「ビデオビットレート」を6000kbps、エンコーダを「Intel Encoder」に設定した。エンコーダの設定をする際には、自動選択のチェックボックスをはずす必要がある。

実際にMPEG-2 TSファイルをH.264に変換するには、上部左の「ADD」ボタンをクリックしてMPEG-2 TSファイルを選択して、上部右の「START」ボタンをクリックする。

2011年07月05日 | Posted in 電脳 | タグ: , , 4 Comments » 

関連記事

コメント4件

  • Akira Kawamoto より:

    MC(MediaCoder)でのTS(mpeg2-aac)→.mp4(H.264/aac(nero))、および.m2ts(H.264/ac3)変換はR5-5158ではmono,stereo,5.1すべての音声で、video-decoder=mencoderとすれば、音ズレなく変換できますが、R6-5160,5166、R7-5170ではバンドルのmediainfoで報告される「audio-delay値」の分だけ、その反対方向に音がずれるという現象が見られます。R4まではvido-sourceのdefault(auto)がmediacoderだったのですがR5以降はavisynthに変更されました。 以下説明するようにavisynth活用でmediainfoの
    報告するaudio-delay値による修正を、それが意味を成さないTS型入力にも適用してしまうようにしたのが今回の音ズレ発生の原因のようです。 mediainfoはTSの先頭部分を解析して、どこから読み取るのかは不明ですがaudio-delayなる値を報告しますが、TS型については本来この概念はないはずで、やって見れは容易に確認できますが、MurdocCutterでTSを切り出すとき、切る場所を変えると異なる値が報告されます。 多分、映像ESパケットと同一のタイムコードを持つ音声ESパケットのファイル中のオフセットバイトの平均値のファイル容量に対する割合を、(最終タイムコード-先頭タイムコード)で算出する再生時間長に乗じて得られる値をaudio-delay値にしているような気がします。
    最新のR7-4172については未検証ですが、多分修正されていないと思います。
    検証して、英文をまとめ、近々、”Bug Report for MediaCoder 2011″に投稿する予定です。
    http://forum.mediacoderhq.com/viewtopic.php?f=28&t=10739 でysbinnsという人が、bug-report
    に対するStanleyの対応を、「全然読んでいないじゃないか。ちゃんとデバッグしてからリリースしろよ」と痛烈に批判していますが、ユーザーに使わせて不具合情報を収集しつつ、どんどんGPLのモジュールを入れ替えてリリースしていっているのが、Stanleyの方針のようす。文句をつけると、すぐ直してくれるわけではありませんが、直させるためには文句を言い続けるしか手がないと思います。
    ご存知かもしれませんが、開発者のStanleyは
    http://blog.mediacoderhq.com/mediacoder-is-no-longer-hosted-on-sourceforge-net/
    にあるように、オープンソースのGPLの改変プログラムのソース公開規定を遵守していないとして、
    2009年末にffmpeg-projectから「恥辱の殿堂入り」を宣告され、以降MCをオープンソースではなく、
    フリーソフトウェアに変更せざるを得なくなり、その結果。sourceforge.netからも追い出されてしまいました。 ffmpeg,mplayer,mencoderを改変することがライセンス上出来なくなってしまい、代替策としてavisynthを導入することを、0.7.2.xxxx以降、何度も試みていますが、そのたびに失敗しています。 今回も何回目かのチャレンジですが、avisynth導入は.mpgや.vobなどPS型入力に関してはヘッダーファイル中のaudio-delay値を読み出して修正をかけるので、音ズレしなくなるというメリットが出るのですが、TS型に関しては本来この「audio-delay値」という概念はないはずで、avisynthのメリットは発揮されません。 それどころか
    (1)dual音声トラックが同時に扱えない
    http://forum.mediacoderhq.com/viewtopic.php?f=28&t=10750
    (2)出力の音声が入力にかかわらずstereoに限定されてしまう(これについてはffdshowの設定変更で解消の可能性あり。 但し、ffdshowはMCではインストールされないようで、従って外部依存)。
    http://forum.mediacoderhq.com/viewtopic.php?f=28&t=10748
    (3)逆テレシネフィルターが使えない
    http://forum.mediacoderhq.com/viewtopic.php?f=28&t=10846
    などの不具合が出ますので、現状ではTS→.mp4,.m2tsの変換では、video-source=mencoderを使うべきです。 そして、R6,R7では音ズレが出るようになってしまいましたので、でR5-5158を使うべきです。 0.7.5.4742いぜんでは、ソフトテレシネに関する注意が払われなかったので、23.476fpsProgの5.1chに限り音ズレ(速度差)するという不具合がありましたが、以後はmono,stereo,5.1ともにA/Vが等速で変換されるようになり、2100バージョンになってから再度同期が破壊され、R1-5100以降はまた等速(offset音ズレはバージョン依存)に戻っています。
    http://forum.mediacoderhq.com/viewtopic.php?f=17&t=10508

  • simplelife より:

    Kawamotoさん、詳しい解説ありがとうございます。
    わずかな変更がいろいろなところに波及する、私自身もずっと経験していることです。
    私はTS->mp4だけしか今は関心がないので、そこだけでも修正してもらえるとうれしいです。
    TMPGEnc はさすがに安定してます。mediacoderで特に気になるのは、TSファイルによって挙動が一定でないことです。
    特にNHKのファイルTSSplitterで分解したものを変換したら、32bitバージョンで3GBまでメモリを使っていました。
    もちろん、ファイルが出力されず終わるなど、挙動不審なソフトになってますww
    MediaCoderはインターフェースはわかりやすいので、基本さえしっかりすればいいソフトになると思います。うまく作者に不具合を伝えて
    品質向上してほしいです。

  • Akira Kawamoto より:

    NHKのファイルの変換不具合の件ですが、入力ファイルの前処理に問題があると思います。
    TSsplitterを通して出来あがる、断片ファイル(モード毎統合した場合は接合点)の先頭には5割以上の確率でエラーが含まれます。従って、TSsplitterで分割した後は必ずMurdocCutterなどでエラー部分を除去することが必要だとおもいますが、出力をそのままMediacoderに入力されたのでしょうか?
    エラー除去した断片を統合したTSを作って、それをTSMuxeRでリライトすれば連続タイムコードでエラーなし、且つ不必要なPIDのパケットが除去されたTSが得られます。 これをMediacoderに入力すれば、うまく変換できるはずです。

  • simplelife より:

    Kawamotoさん、TSSplitterに問題があるとは思いますが、問題は同じファイルをTMPGEncでmp4に変換した場合は、問題なくできるのです。
    同じノウハウを活かせば、MediaCoderでも安定した変換ができるはずです。

    私自身は、間に処理を入れるくらいなら、TMPGEncで変換します。MediaCoderの作者にがんばってもらうのが一番でしょう。
    問題があるファイルを送って、調べてもらえば一発でわかると思います。今週中に最新版で試して、同じ症状がでたら、bug reportをsubmitします。

  • コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

    このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください