スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« AGM to MP4は可能に | トップページ | MP4 to AGMも可能に »

今日の進捗は少し

今は、Mac用AGMPlayerの開発フェーズで、今週は、AVFoundationを使ったmp4/agm変換ツールを作るのだが、昨日の時点で、AGM動画をMP4動画に変換する処理は、一応、可能になっていたのだが、今日は、その続きとして、様々なAGM動画に対応出来る様にした。

AGMファイルからMP4ファイルへの変換は、現行のWindows版AGMPlayerとAG-ムービーカッターでも行えるのだが、これらのエンコードルーチンは少し汚くなっている。

これは何故なのか、というと、AGM形式動画は音声のサンプリング周波数として8k~48kHzをサポートしていて、更に、ステレオ/モノラル/音声無しも選択可能になっているからだ。

映像系についても、AGM-RGB/YV12/DCT/DCT+と、それらの高圧縮モードも存在するのだが、映像系のデコード出力は、前述のモードに影響されない作りになっている。

これに対して、音声系のデコード出力は、ファイルに存在している形式をそのままPCMデータとして出力しているので、それを受け取ったルーチン側で追加処理が必要になる場合がある。

なので、エンコーダーの処理コードは、少し汚くなっているのだが、具体的には、例えば、エンコード出力のサンプリング周波数を48kHzにしようとした場合、AGM形式動画から読み取った音声データのサンプリング周波数が48kHzではなかった場合には、リサンプリングによってサンプリング周波数を合わせなければならない。

その結果として、エンコードルーチンは少し汚くなっているのだが、音声系についても、デコーダーが出力するデータのサンプリング周波数等をエンコード出力に合わせた形にしておけば、エンコーダーではリサンプリングは不用になるので、コードがスッキリする。

と、いう事で、今日は、AGM形式動画用のデコーダーに音声出力の変換処理を追加して、MP4形式へのエンコードルーチンが単純になる様にしたりしていた。

AVFoundationでは、音声出力形式である所のAACのサンプリング周波数やビットレートも変更できるので、読み込んだAGM形式動画にあわせて、これらを設定する事も出来ない話ではないのだが、一般的には、AACのサンプリング周波数は48kHzか44.1kHzになっているので、それ以外の値を設定すると、問題が出る可能性が高くなる。

なので、AAC側の特性は固定して、その入力になるAGM形式動画の出力データを、それに合わせて変換する事にしている訳だ。

ちなみに、AVFoundationでは、エンコード時に映像系のビットレートも指定できるのだが、その指定は現行のWindows版と同様のアルゴリズムで自動的に行われる様にしている。

具体的には、映像系については、AGM形式動画と同様に、品質値を指定する格好にしてあるのだが、この品質値は、画面の解像度を鑑みて、エンコーダーに指定する平均ビットレートを算出するのに使っている。

何故、こんな回りくどい事をしているのか、というと、ビットレートを指定する格好にしてしまうと、異なる解像度の動画を出力する度に、設定を変更しないと、画質が大幅に変ってしまうからだ。

音声系については、前述の様な問題は無いので、ビットレートを直接指定する格好にしても良いのだが、Windows版で使っているMedia Foundationでは、使えるビットレートが幾つかしか無かったので、その中で、最高音質だった192kbpsに固定した。

なので、Mac版でも、音声系の出力ビットレートについては、192kbpsに固定したのだが、Apple Musicでは256kbpsが使われている様なので、Mac版では、音声系のビットレートも指定可能にしようか、とも思った。

しかし、実際問題としては、256kbpsと192kbpsを聞き比べて違いが判る人は殆どいない筈だし、設定変更可能にしてしまうと、設定によっては、上手く再生できない環境が出てくる可能性もあるし、おかしな設定をして音が変だ、と、言い出すユーザーも、出てくるかもしれない。

と、いう事で、MacのAVFoundationでは、プログラミング的には、音声系のビットレート指定は簡単で自由度も高いのだが、やはり、Mac版でも、音声系のビットレートについては、Windows版に合わせて、192kbps固定にしておく事にする。

« AGM to MP4は可能に | トップページ | MP4 to AGMも可能に »

トラックバック

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

この記事へのトラックバック一覧です: 今日の進捗は少し:

« AGM to MP4は可能に | トップページ | MP4 to AGMも可能に »

2017年10月
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 31        

広告

プライバシーポリシー

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

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

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

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