スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« 何だかとても大変だ | トップページ | やっと落ち着いた »

何とかした事はした

今は、Mac用AGMPlayerの開発フェーズなのだが、Ubuntu版AG-ムービーカッターを先にリリースした。その開発を通して、改良アイテムが出来たので、関連作業を行っていたのだが、AGM→WebMのエンコードが上手く行かなかったので、AGMDecoderを変更して対応した。

昨日書いた様に、「The WebM Project」が配布しているWindows用DirectShowフィルターのパッケージの中には、「makewebm.exe」、というコマンドラインユーティリティも入っていて、これを使うと、既存動画から、WebMファイルを簡単にエンコード出力できる。

もっとも、このmakewebm.exeは、DirectShowを使ってエンコードを行うので、既存動画はDirectShowを使ってデコードできなければならない。

と、いう事で、意外な事に、Windowsでは、mp4ファイルは、基本的には、DirectShowではなく、Media Foundationでデコードされるので、makewebm.exeでは再エンコードできない。

しかし、試してみた所では、MJPEG+PCMのAVIファイルとWMVファイルは再エンコード出来たので、mp4動画をこれらに再エンコード可能なAG-ムービーカッターを使えば、mp4動画も、二回の再エンコードが必要になるものの、WebM形式にエンコードする事は可能だ。

ただ、作者的なネイティブ動画形式はAGM形式になる訳なので、例えば、AG-デスクトップレコーダーでの録画を行う場合にも、とりあえずは、AGM形式で録画している。

そして、作者的には、マズ無いのだが、AGM形式動画は、最終的に、永久保存版にしたい場合には、AGMPlayer/AG-ムービーカッターを使ってmp4ファイルに再エンコードする事が出来る。

と、いう事で、作者的には、手持ち/作業用動画の殆どは、AGM形式動画になっているので、WebM形式動画に再エンコードするのであれば、AGM形式動画から行いたい訳だ。

しかし、何故か、makewebm.exeはAGM形式動画を扱ってくれなかったので、今日は、その問題を何とかしていたのだが、何とかなった。

つまり、手持ちのAGMDecoderバイナリを適用すると、AGM形式動画も、makewebm.exeを使ってWebM形式に再エンコード可能になったのだが、音声系については、色々と注意が必要だ。

まず、これはデコーダーについてもそうだったのだが、WebMプロジェクトが提供しているVorbisエンコーダーは入力データとしてFloatを要求するので、殆どのDirectShowデコーダーは、これとは接続できない。

つまり、WebMプロジェクトのVorbisデコーダー/エンコーダーは、ユーザー無視の出来損ないバイナリと言えなくも無いのだが、これは、そもそも、WebMプロジェクトの開発ターゲットはVP8/VP9の様な、映像系に限られるからだ。

それでは、マトモなVorbisエンコーダーは世の中には存在しないのか、というと、そうではなくて、本家はXiph.Orgになる。

なので、Windows環境で、WebMファイルをマトモに扱いたければ、Xiph.OrgのVorbisデコーダー/エンコーダーのインストールも行っておかなければならないのだが、Xiph.Orgでは、それらを纏めてインストールしてくれるパッケージを用意してくれている。

このため、作者的にも、そのパッケージをインストールしてあるのだが、実際の所、VP8/VorbisのWebMファイルであれば、これだけインストールしておけば、WebMプロジェクトのパッケージをインストールしていなくても、AG-ムービーカッター等で、WebM動画の再生は可能になる。

WebM動画のエンコードには、WebMプロジェクトのパッケージをインストールしておく必要があるのだが、Xiph.Orgのパッケージをインストールしておけば、通常、makewebm.exeでは、音声系のエンコードは行えないのだが、Xiph.OrgのVorbisエンコーダーが使われる様になるので、行える様になる。

ただし、makewebm.exeでは、扱える音声ソースが限られる様で、Xpih.Orgのエンコーダーをインストールしてあっても、WMAかPCM形式の音声しか再エンコードしてくれない。

なので、AGM形式動画についても、音声をPCMでエンコードしてあるモノについては、音声付でエンコードされる様になったのだが、音声をAGADPCMにしてあるモノについては、音声無しのエンコードが行われてしまう。

もっとも、これはmakewebm.exeの問題な感じで、graphedt.exe上で、自分でグラフを作成すれば、音声がAGADPCMの場合にも、WebM動画に再エンコードするためのグラフは作成でき、実際に、動作させるとエンコードも完了した。

と、いう事なので、色々とやっかいではあるのだが、やる気になれば、AGM形式動画をWindows環境でも、WebM形式に再エンコード可能には出来たので、AGMDecoderの変更についても、これでOkという事にする。

ちなみに、AGMDecoderの何処に問題があったのか、というと、GetMediaTypeというAPIで返送するデータに、フレーム時間を入れていなかったのが問題だった様だ。

なので、基本的には、その対応のみ行ったので、原因究明には時間がかかったものの、AGMDecoderの変更量は皆無で済んだ。

« 何だかとても大変だ | トップページ | やっと落ち着いた »

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/534482/64839491

この記事へのトラックバック一覧です: 何とかした事はした:

« 何だかとても大変だ | トップページ | やっと落ち着いた »

2017年6月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

広告

プライバシーポリシー

  • 当サイトでは、第三者配信による広告(Google Adsense)サービスを利用しています。

    Google を含む第三者配信事業者は、Cookie を使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。 Google 広告 Cookie を使用することにより、Google や Google のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    Cookieを無効にする設定およびAdsenseに関する詳細については、以下のリンクを参照下さい。

    広告 - ポリシーと規約 - Google