分析と広告のためのCookie
分析と広告のためにCookieを使っており、どちらもGoogleに送られます。拒否しても、目に見える動作は何も変わりません。プライバシーポリシーを読む
OGG
特許の縛りがない音声形式。ゲームと Linux では一般的で、スマートフォンでは少数派です。
OGG
OGG はコンテナです。誰か別のものが符号化した流れを、中に収めておく外殻です。 ウェブと完成したファイルの受け渡しのために使われます。
拡張子は .ogg、正式名称は Ogg Audio です。ただしどちらも、そのファイルが中に何を持てるかほどには多くを語りません。このページの残りは、その中身についての話です。
Xiph.Org が 2000 年に公開しました。 仕様は RFC 3533 です。
古さが役に立つのは、ごく実務的な理由からです。形式が古いほど、それを覚える時間が多くのプログラムに与えられてきたということだからです。
仕様書がそのまま公開されているので、中身を推し量るのではなく文書を読んで実装できます。この形式が数多くのプログラムに載っているのはそのためであり、20 年前に書かれたファイルが今も開けるのもそのためです。ただし「仕様が公開されている」ことと「使用料が要らない」ことは別の話です。中でコーデックを包んでいる形式では、特許のライセンスは仕様書が答えていない別の問題として残ります。
中に入っているのはたいていVorbis、Opus、FLACです。「なぜ再生できないのか」という質問のほとんどは、この区別に行き着きます。同じ拡張子の 2 つのファイルの中に、まったく違う符号化が入っていることがあり、片方を拒むプレーヤーがもう片方は問題なく再生します。
箱を入れ替えるのが速くて劣化もないのに、コーデックを変えるとそのどちらでもなくなる理由も、これで説明がつきます。同じ流れを別の箱に入れるのは箱を書き直すこと、再エンコードするのは画そのものを書き直すことだからです。
OGG ファイルは全部が届く前に再生を始められる構造を持てます。
これは変換のときにとくに効いてきます。変換先が持てないものは落とされ、たいてい警告もありません。
Audacity、VLC、foobar2000が読めますし、同じ種類のプログラムならたいてい読めます。
ファイルが開かないとき、形式が悪いことはめったにありません。たいていはプログラムのほうが形式より古いのです。もっと古い形式に変換してしまうのが確実な逃げ道で、このサイトの残りの部分はそのためにあります。
最近のブラウザーなら読めますが、古いものでは読めません。
対応がそろっていない場合のよくある答えは、もうひとつの形式を並べて提供することです。ブラウザーは自分に分かるほうを選び、誰も取り残されません。
OGG ファイルは文書のプロパティを持てます。
このうち何が変換後まで残るかは、変換先の形式次第です。そして正直な答えはたいてい「一部だけ」です。
OGG は渡すために作られたもので、中で作業するためのものではありません。編集は可能ですが、快適だったためしはありません。賢い道は、元のファイルへ戻ってもう一度書き出すほうを通ります。
繰り返し挙がる不満はこれです。本来の分野の外では対応がまばら。
どれも、この形式を避ける理由にはなりません。どれかに不意を突かれる前に知っておくべきことがら、というだけです。これは別の主張であり、そして役に立つほうの主張です。
Ogg は圧縮方式ではなくコンテナです。.ogg で終わるファイルは最も多くの場合 Vorbis の音声を含んでいますが、Opus や FLAC、Speex、あるいは映像を含んでいることもあり、名前だけではそれを区別できません。これがこの形式にまつわる混乱の最大の原因です。
これを管理する Xiph.Org Foundation は、この曖昧さを減らすために音声には .oga を、映像には .ogv を使うよう呼びかけましたが、ほとんど採用されず、.ogg は今も、想定するのではなく中身を確認する必要のあるファイルのままです。プレーヤーが拒否する場合、中のコーデックを確認するのが最初にすべきことです。
Ogg と Vorbis は 1990 年代後半に、MP3 が特許で保護されていて符号化器にライセンスが必要だったことへの答えとして作られました。オープンソースのソフトウェアや、法務部門を持たずに製品を出すあらゆる人にとって、それは本物の障壁でした。
つまりこの形式は技術的な問題ではなくライセンスの問題への答えとして存在し、その意味では成功しました。その子孫はいたるところにいます。Opus はすべてのブラウザーの通話機能の中にあるコーデックで、ここで開発されたコンテナの仕組みは WebM にも受け継がれています。
Vorbis は同じビットレートで MP3 と競い合い、特に 128 kbps を下回る帯域では概ね優れていました。十年間にわたって理にかなった自由な選択肢であり、今も十分に良い音質です。2008 年の Vorbis ファイルは当時と変わらず聞こえます。
ただし、それは置き換えられました。しかもわずかな差ではありません。Opus はあらゆるビットレートで Vorbis を上回り、同じ団体が作り、同じく自由に使えます。新しい音声を Vorbis で符号化する理由はもう残っておらず、Vorbis が入った .ogg は、選ぶべき形式というより手元に残っているファイルとして扱うべきものです。
圧倒的にゲームです。Ogg Vorbis は商用利用に無料で使えたため、ゲーム音声の標準になりました。ここ二十年のほぼどんなゲームでもアセットを取り出せば、この形式のフォルダーが見つかります。Unity や Godot は今も既定でこれを使っています。
それ以外では、Spotify が長年 Vorbis でストリーミングしていて、Wikipedia や Wikimedia は主義としてこの形式で音声を配信し、古い Android の録音でも使われ、いくつかのオープンソースアプリケーションも生成します。選んで使う形式というより、出会う形式です。
Ogg は Vorbis コメントを使います。許可されるフィールドの一覧が固定されていない、単純な名前と値のペアです。タイトル、アーティスト、アルバムが慣習的ですが、何でも追加でき、ID3 のように回避すべき固定サイズの構造もありません。
カバーアートは厄介な部分です。base64 でエンコードされた画像として、コメントフィールドの中に保存されます。動きはしますが、それを想定していなかった設計に後付けされた慣習です。表示するプレーヤーもあれば、しないプレーヤーもあり、アートワーク付きの Ogg が、何もないように見えることがあるのはこのためです。
このコンテナは、データを小さなページに交互配置していて、それぞれが十分に自己記述的なため、途中から参加したデコーダーもすぐに状況を把握できます。接続が絶えず切れていた時代のインターネットラジオ向けに作られたもので、途中で切られても再開してもうまく扱えます。
役立つ結果として、Ogg ファイルは連結できます。単純なファイルのコピーで二つをつなげるだけで、両方を含む再生可能なファイルができることがよくあります。これは珍しい性質で、ストリーミングやゲーム音声のパイプラインで、ファイルがプログラムによって組み立てられる場面でこの形式が使われ続けている理由です。
とりわけ Apple です。長い間、QuickTime も iOS もサードパーティー製ソフトなしには Ogg を扱えず、これがこの形式が一般消費者に広まらなかった大きな理由です。多くのカーステレオ、古いハードウェアプレーヤー、そしてかなりの数のアップロードフォームも同様です。
それ以外はたいてい問題なく扱えます。どのブラウザーも、VLC も、Android も、バージョン 10 以降の Windows も、デスクトップのメディアソフトはほぼすべて対応しています。このサイトの他の形式と同じく、変換する前に問うべきなのは、行き先が本当にその扱えない側の短い一覧に入っているかどうかです。
行き先が古いハードウェアなら MP3 に変換します。Vorbis から MP3 は非可逆から非可逆への変換で一世代分劣化することを踏まえ、192 kbps 以上を使えば聞き取れない範囲に収まります。文字起こしツールや音声編集ソフトが非圧縮の入力を求めるなら WAV です。
単に同じ音声を小さくしたいだけなら Opus という選択肢もありますが、それが何なのかははっきりさせておいてください。これも別の非可逆の再符号化なので、保存するには大きすぎるファイルには意味がありますが、単に古いだけのファイルには意味がありません。必要な場所で再生できている Vorbis ファイルは、そのままにしておくのが一番です。
Ogg を大量に変換したくなる一番よくある理由は、取り出したゲームのアセットです。数百から数千の短いファイルで、別のエンジンで使うために WAV が必要だったり、それしか読めない何かのために MP3 が必要だったりします。
この変換はブラウザーの中で行われるため、千個の短いファイルをまとめて処理してもアップロードは発生せず、待ち行列にも並びません。かかるのは自分の端末の処理時間だけです。何か他のことをしている間に終わる作業と、五十個目でサービスのファイル数制限に引っかかる作業との違いです。
| 拡張子 | .ogg, .oga |
|---|---|
| メディアタイプ | audio/ogg |
| 公開元 | Xiph.Org |
| 初版 | 2000 |
| 仕様 | RFC 3533 |