Stream Express
red.gif
Home > コラム > ストリーミングやポッドキャスト等で最適な音声フォーマットはどれか
red.gif

ストリーミングやポッドキャスト等で最適な音声フォーマットはどれか

注・元々の記事は2009年6月に作成したものです。その後、web標準規格として「HTML5 Audio」が策定されていますので、改訂版を準備しています。

2020年現在は「audio」タグを使用し、以下のフォーマット(コーデック)を用いれば、ブラウザのみで再生できます。
(モダンな順に)

Opus *
AAC (m4aまたはmp4)
Ogg Vorbis (Ogg) *
MP3

*印はアップル社製「Safari」ブラウザでは再生不可

現在最新版としてリリースされているほぼ全てのブラウザで再生できるのは「MP3」および「AAC(m4a,mp4)」で(※1)、mp3は既に特許保護期間も切れた古いコーデックですが、デファクトスタンダートとして広く普及・対応し現状殆どの環境で対応しており、ビットレートをおごれば実用上問題ないレベルの品質を確保できます。

とはいえ「MP3」も当方の経験から言える事は、エンコーダやデコーダの実装およびコードをビルドする際の環境によって、その品質は他のコーデック(AACやVorbis)と比肩することもあります。

特にWindowsのようにビルド環境を標準で持たないプラットフォームにおいては、他者がビルドした出来合いのバイナリを使わざるを得ない文化であり、利用環境に特化したビルドになっていないこと(即ち大多数のシステムで無難に使用できるようにビルドされていること)が殆どであるため、正当な評価ができていない面があります。
よって、Windowsでコーデックを比較評価した記事等は、環境に特化したビルドを施さない限り、コーデックそのものの比較評価にはなっていないということを考慮すべきです。

AACも実装によっては品質が良くないものもあり、出来の良いMP3エンコーダ(特にLAME)に劣るものもあります。

ご利用の環境で、よく比較し検討されることを奨めます。
Windowsの場合はビルド環境を持たない限り(そしてそれは大抵有料のプロプライエタリソフトである)、前述のように出来合いのバイナリのみを利用するしかありませんが、Linux等ソースコードからのビルドツールを標準で利用できる環境をお持ちの方は、利用するコンパイラやビルドオプションを吟味するところからチューニングを始めることが出来、Windows環境以上にエンコーダの秘めた性能を引き出す事が出来るでしょう。

※1 「Mozilla Firefox」では数年前までMP3,AAC(mp4,m4a)への対応がされていませんでしたが、後にOS側コーデックの使用により対応し、現在はネイティブ対応となっています。
検索等で古い記事を参考にする場合は、この点に注意してください。

「Windows Media Audio形式(WMA)」は「web標準」には採用されていませんので推奨されません。
これを使うことは、「●年前の腐った牛乳」と揶揄された古いIEブラウザを、ユーザーに使わせるようなものです。

さらに「embedタグ」や「object」タグを用いて「Adobe Flash PLayer」プラグインを使用して再生するのも、もはや推奨されていません。
Flashは開発終了がアナウンスされており、2020年にブラウザでの対応も終了となり、既にロストテクノロジーになっています。
これを使わせるようなことも、時代遅れで安全対策上も非常に好ましくないものとなっています。





《注意》以下は掲載当時の「時代遅れ」な記事です。ご了解のうえ「過去の技術記事」として参考にしてください。

走行音に限らず、ウェブでストリーミングやポッドキャストをする際に、どのようなデータ形式で配信したらいいのか?という相談が、こういうサイトをやっているが故によくある。

[冒頭からして結論]

ずばり答えると「MP3」形式を奨めている。


以下、主文。

[MP3]
 MP3を奨める理由だが、ズバリMP3を再生できないプラットフォームは、PC/ワークステーションではまず無いと言っていい。 Linux/UNIXだろうがMacOSだろうがWindowsだろうが、ほぼ初期導入状態で再生できるし、ポータブルオーディオ機器は勿論、ゲーム機でも再生可能なものもある。
 もちろん「シェア」の面でも推定とはいえ常識的に見ても断トツで、対応プラットフォーム数とシェアが両立している唯一の形式であると言える。
 そして、エンコード(データ作成)も大多数のPC/ワークステーション上で可能だ。これも、 Linux/UNIXだろうがMacOS XだろうがWindowsだろうが、別途ソフトウエアの導入が必要とはいえ可能なのだ。
 こうなってくると、将来「基本ソフト」のシェアが様変りしてしまっても再生できなくなるということは無いだろう。ある意味、安心して使えるフォーマットとも言える。

 面白いところでは、アドビの「Flash」をベースにしたMP3プレイヤーを、webブラウザ上にインラインで表示(実装)するという方法もある。
 一部の音声対応ブログで用いているところもあるが、一般のウェブページでもFlashベースのMP3プレイヤーを用意すれば可能で、閲覧者(=聴取者)に対してプラットフォームを問わずに同じルック&フィールでサービスを提供することが可能になる。
 FlashについてはLinux,Solaris,MacOS X,Windowsに対応しているが、この4プラットフォームに対応していれば、ほぼ全てのデスクトップパソコン/ワークステーション(デスクトップOS)に対応していると言っても良い。さらにWinodws Mobileにも対応しているので、一部のスマートフォンでも同じようにサービスを提供することが可能だ。

 現在、MP3エンコーダーで最もコストパフォーマンスが高いと言われるものは、オープンソース且つフリーソフトウエアの「LAME(レイム)」である。日々世界中のプログラマとテスターによって改良が続けられ、市販のMP3エンコーダー製品を凌駕するレベルにある(市販品のほうが劣るものが多い)
 市販品のMP3エンコーダーを使って満足できずWMAに走ってしまった方は、ぜひLAMEを試していただきたい。標準的なエンコード設定で中庸を得られるし、より高度な設定を駆使すれば素晴らしい結果を生んでくれる。


但し、LAMEは「ソースコード」(プログラムリスト)の状態でしか公式に頒布されていないので、特にWindows用実行ファイルの入手は第三者の手によりコンパイルされたものしかなく、入手の際、念入りなウィルスチェックをしていただきたい。
なお、コンパイルそのものは難しいものではないので、Linux/UNIX(MacOS Xを含む)をお使いの方は、自分でコンパイルするのもいいだろう。
MacOS XでLAMEを用いたい場合は、iTunesをフロントエンドにする方法が簡単なようである。詳しくは検索してほしい。
LAMEそのものはコマンドプロンプトで使うことを前提にしているのでGUIが無い。Windowsでマウス片手に簡単に操作したい場合は、別途「Razor Lame」のようなフロントエンド・プログラムを使う必要がある。これについても、詳しくは検索してほしい。



その他のフォーマット
 その他のフォーマットを検討する場合、「シェア」よりも「対応プラットフォーム」を重視して選択しよう。
 括弧付けで強調したのには理由がある。「シェア」があるからといっても「対応プラットフォーム」が幅広い訳ではない。ウェブの世界は、あらゆるコンピュータの動く世界であり、基本ソフト(OS)もWindowsだけではないからだ。

[WMA]

 Windowsの世界では幅広く使われる「Windows Media Audio (WMA)」も、 UNIX/Linuxの世界ではイレギュラーなフォーマットで、一部のディストリビューション(頒布版)でしか対応していない。
 その対応も、極一部の商用プレイヤーを除きマイクロソフト公式のものではなく、データ解析によってアンダーグラウンド的に対応している状況であるし、エンコードに至ってはネイティブでは不可能だ。

 筆者的にはWMAはお奨めはしない。MP3(LAME) のほうがはるかに汎用性が高く便利で、且つ十分なクオリティであるからだ。

 後発の強みか、あるいは「欲しいものは会社ごと買収する」強引なマイクロソフトが故なのか、中速度域(64〜128kbps)の音質は目を見張るものがあるのだが、これは音楽音源に限った話しのようで、鉄道の走行音も含めた自然音はややアラが出る傾向にある。内部フィルタの閾値が広めにとられているように思われるので、エンコード前に意図的に調整したほうた良さそうである。

[QuickTime]
 MacOS XやWindowsだけならともかくも、他のプラットフォームは眼中に無いようである。これもUNIX/Linuxの世界では「アングラ対応」しかない。
 残念だが、このフォーマットは強く避けるべきだろう。

[RealAudio]
当サイトで採用しているRealAudioであるが(2015年6月対応終了)、一部のUNIXプラットフォームでは古いRealPlayer8までしか対応していないものの、Linux(及び一部のUNIX)/MacOS X/Windowsでは最新版プレイヤーが提供されているし、エンコーダーも用意されている。
 かつてはストリーミング/ネットラジオといえばRealAudioと言われる位であったが、今やMP3やWMAにシェアを越され、プレイヤーも別途インストールが必要である。しかし、対応プラットフォームの面ではLunuxやUNIXをもフォローしており、プロプライエタリなものとはいえマイクロソフトと比較すればまだ良心的だ。

 現在RealAudioを採用している走行音サイトは、サイト開設時期にWMAが無かった時代(!)にまで遡る古参サイトが中心で伝統的に使っているという面があるが、特に低ビットレートでの品質は他のフォーマットよりも良好な場合が多く、何とビットレート12kbpsで実用に耐えられるステレオ送信ができるのも強みだ。
 当サイトでは「同期マルチメディア統合言語」により、プレイヤーで設定された速度に応じて送信ビットレートを切替えているが、「33.6kbps モデム」以下の場合16kbpsステレオ送信となるので試してほしい。

 プレイヤーソフトは、Windows用は重装備な面があるのが「玉に傷」なのだが、同じバージョンナンバーでもLinux/UNIX用は、オープンソースの「Helix Player」をベースに別体系で開発していることもあり、余計なものは一切無く軽量なソフトウエアである。

 エンコーダー(RealProducer BASIC)については、Linux用はもちろんWindows用も用意されている。その他のUNIXプラットフォームの場合、Linuxバイナリ実行環境やWINEがあれば、これらを動かす事が出来るであろう。
 Linux用はCUIのみなので、シェルスクリプトを組めば他のプログラムによる事前処理を経てエンコード,タグ付けまで作業を自動化させることも可能だ。ただし、残念ながらパイプライン処理はできないようである。

[Ogg Vorbis]
 もうひとつ、「OggVorbis(オッグ・ボルビス)」というフォーマットがある。特許技術を排除し完全にオープン・フリー(自由の意味)で仕様が公開された音声フォーマットである。パテントフリーなので、実は市販PCゲームソフトの音声フォーマットに使われることも多い。

 パテントフリーな背景が故に、Linux/UNIXの世界ではデフォルト、あるいは簡単なパッケージ導入(インストール)により対応しているものが多いのだが(Linux版RealPlayerでも対応)、一方Windowsの場合、メディアプレイヤーではデフォルトのままでは再生できないので、別途コーデック(デコーダー)の導入が必要になったり、あるいは WinAMP等の対応プレイヤーを導入する必要がある等、Windowsではやや敷居が高い面がある。
 自由の意味で「フリー」なので、誰からも使用料を請求される恐れはないし、使い方も自由。データ形式も含めて公開されたものなので、将来再生(あるいは変換)できなくなることも無いだろう。

 気になる音質も、MP3やWMAを凌駕するほどの改良が続けられており、64kbps以上ではこれらよりも良好ではないかと筆者は判断している。Windows機でもっと気軽に再生できるようになれば、クオリティーではこれが理想であろうものだ。

 なお、FlashベースでOgg Vorbisを再生できるものがあるらしく調査中である。これが出来れば、Windowsパソコンでも聴取者に難しいインストール作業を強いる必要は無くなるだろう。


[あとがき]
 この様に、MP3にしておけば音質も充分で且つ幅広く対応し応用も利くので、無難な選択になるであろう。

文責・広瀬トオル (2009年6月4日 初稿)


おことわり
本来なら、それぞれのソフトウエアのサイトへのリンクを記すところだが、変更等もあり得るので記載しない。検索サイトを活用してほしい(Google推奨)。

Home > コラム > ストリーミングやポッドキャスト等で最適な音声フォーマットはどれか

制作・著作 Copyright © 1995 Toru Hirose (Stream Express)
from TOKYO, JAPAN.

本ウェブページサービス上の記事・写真・データ等の無断転載・転写、放送や出版物での無断紹介、複製・再送信、他の電磁媒体等への加工を禁止します。

リンクや転載などについて、詳しくはホームページをご覧ください。