Opusは、IETF(インターネット技術特別調査委員会)が開発したロイヤリティフリーの非可逆音声コーデックで、拡張子は「.opus」となります。
AACやMP3に比べるとまだマイナーな存在ですが、低ビットレートでも高音質を維持でき、さらに低遅延にも対応することから、YouTubeなどのストリーミング配信で注目されています。
本記事では、ハイレゾピュア音源を用いた基本的な音質評価に加え、リアル音源を使ってOpusファイルとオリジナル音源のスペクトル差を数値化(絶対誤差グラフ化)し、その音質特性を分析しました。 また、AACとの比較も行い、Opusの実力を客観的に検証します。
Opusを使うための準備(インストール方法)
音声ファイル(wav 又は flac)をOpusファイルに変換(エンコード)するには、取り敢えず、3つの方法があります。
- OpusサイトのDLページから「opus-tools」をダウンロードして、tool内にある opusenc CLIコマンドラインを使う
- FFmpegのライブラリーで -acodecで libopus を指定する
- XLD アプリで、環境設定から Opus を指定する
今回は、[1] の方法で、opusenc CLIを使ってエンコードすることにしたので、「opus-tools」をインストールする必要があります。
「opus-tools」のダウンロードからインストールまで
簡単な手順
- Opusの公式DLページからOSX用の「opus-tools」をダウンロードすると、ダウンロードホルダーに圧縮された「opus-tools-0.1.9-macos.tar.gz」が保存されます。
- この圧縮ファイルを、アーカイブユーティリティ.app で展開しますとopus-tools-0.1.9-macosフォルダが展開されます。
- フォルダー名を単純な名前 opus-tools にして、例えば、アプリケーションフォルダに opus-tools をフォルダごと移動すればインストール(準備)完了です。
- opus-toolsフォルダの中身は、「エンコーダCLIのopusenc」、「デコーダCLIのopusdec」、「インフォメーションツールCLIのopusinfo」その他ヘルプファイル等で構成されています。
ターミナルに
/Applications/opus-tools/opusenc -h と入力すると、opusencのヘルプが表示されれば事前準備は完了です。
WAV 又はFLACファイルをOpus形式に変換する方法
macOSのターミナルを起動しておきます。
例えば、「変換元の名前.wav 」ファイルを ビットレートを160kbpsに指定して「変換後の名前.opus」に変換したい時は、ターミナルに下のコマンドラインを記述します。 この場合可変ビットレート(VBR)でエンコードされます。
terminal /Applications/opus-tools/opusenc "変換元の名前.wav" --bitrate 160 "変換後の名前.opus"
セキュリティエラーの対処について

初めてopusencを実行すると、エラーダイアログが表示されてしまいます。
この場合、下の手順で回避できます。
- macOSデスクトップ左上のアップルメニューより[システム環境設定]-[セキュリティとプライバシー]をダブルクリック
- 画面下「ダウンロードしたアプリケーションの実行許可」より「このまま開く」をクリック
なお、FFmpegのライブラリーで -acodecで libopus を指定してエンコードすると、エラーダイアログは表示されません。
Opusファイルの再生(デコード)方法
下の3つの方法で、Opusファイルを再生できます。
- Opusファイルに対応するプレーヤで再生する。 macOSでは、VLC media player で再生できます。
- ブラウザにOpusファイルをドラッグアンドドロップして再生する。
Chrome,Firefox,Edgeで再生できます。(後述しますが、Chrome,Edgeはbit深度が16bit再生) Safariは再生NG - opus-toolsフォルダにあるopusdec CLI を使って 汎用的なwavファイル等に変換(デコード)して再生する。
ビットレート別の音質評価とAACとの比較
何時もの様に、ハイレゾピュアー音源を使って、pink-noise による再生可能上限周波数(Cut-Off周波数)と1khzの歪率(THD+N)を求めてみます。
再生可能上限周波数(Cut-Off)
このOpus(Pink-Noise)ファイルをVLC Playerで再生し、仮想オーディオドライバー(Black-Hole)を経由してWaveSpectraでスペクトルを描画しました。
ポイント
驚くべきことに、何とOpusのビットレートが36kbps以上であればCut-Off周波数が20khzであり、320kbpsと同じであったことです。 AACの場合、低ビットレートを指定すると高域を減じて圧縮率を高かめます。(詳しくはここを参照) 例えば、128kbpsでAACエンコードするとそのCut-Offは17khzになりますので、Opus-36kbpsの方が再生可能周波数が勝っています。
このことから、Opusであれば、36〜128kbps以下の低ビットレートでも再生可能上限周波数が20khzをキープできることが分かりました。
1khzの歪率(THD+N %)を調べる
この変換されたOpus(sin 1khz)ファイルをVLC Playerで再生し、仮想オーディオドライバー(Black-Hole)を経由してWaveSpectraで歪率を測定し、96kbps,128kkbpsの歪率特性としてグラフ化しました。
ポイント
グリーンラインがOpusの歪率特性です。 ビットレートが、96kbpsでも128kbpsと略同じ歪率特性になっており、ブラウンの点線で示されるFFmpegAAC-128kbpsでの歪率特性に匹敵していることが分かります。 また、CD(16bit)の歪率特性よりも優れていることからエンコード時のビット深度が24bitに対応していると考えられます。
つまり、Opusを再生するデコーダーが24bitに対応出来ていれば、CD音質を凌ぐことが期待できます。
リアル音源で高域暴れの有無を調べる
ポイント
「高域暴れ評価用」音源をOpus-96kbpsで変換したファイルをVLC Playerで再生したスペクトルを確認し、上限周波数も20khzを維持し高域暴れが無いことが確認できました。
リアル音源による試聴結果とスペクトル絶対誤差分析
Opusの試聴手順と試聴結果
試聴するに当たり、 我が家のB級オーディオのSony HAP-Z1ESでは、Opusフォーマットは再生出来ないので、Opus tools にある opusdec を使ってOpusファイルをwavにデコード(変換)して、HAP-Z1ESに取込み試聴しました。 opusdec CLIのオプション --rate 48000 でサンプルレート48khz に、--float で16bitを避けて32 ビットに指定してwavファイルに変換します。 コマンドラインは以下です。
terminal /Applications/opus-tools/opusdec "変換元の名前.opus" --rate 48000 --float "変換後の名前.wav"
オリジナル Flacファイルとwavにデコードした「Opus-96kbpsとOpus-128kbps」ファイルを我が家のB級オーディオで比較しながら試聴しました。
< 試聴結果 >
Opus-128kbpsは、オリジナル Flacと殆ど聴き分けられない同等と言える音質で再現されていますが、一方のOpus-96kbpsはストリングスの音やシンバルが非常に軽微ですがオリジナルFlacと違いがある様に感じられました。
スペクトル絶対誤差で音質を評価する
オリジナルFlacとwav化されたOpusファイルをAudacityに取込みスペクトル・データを出力した後Numbersで差分を求めスペクトルの絶対誤差をグラフ化しました。(下のグラフ参照) 【Audacity周波数解析条件:Hann Window size:16384 サウンドファイルの先頭から218.5秒間 】
比較のため、同様にFFmpeg AAC-128kbpsと320kbpsも絶対誤差をグラフ化してみました。 FFmpeg AACファイルのwavへのデコードはAppleの「Audio to WAVE 48K Droplet.app」を使用。
リアルサウンド評価・まとめ
- Opus-96kbpsサウンドは、軽微ながらオリジナル Flacサウンドとの違いを感じる。
- 絶対誤差グラフから見た音質順位は以下の通り
FFmpegAAC-320kbps > Opus-128kbps = FFmpegAAC-128kbps > Opus-96kbps
オリジナル Flac音源からエンコードした、OpusとFFmpeg AACのサウンドファイルを以下に掲載します。 ♫ 聴き比べてみてください。
Opus音源を聴く
Opus-96kbps:6.2MB
チャイコフスキー交響曲 第6番_3rd
Opus-128kbps:8.3MB
チャイコフスキー交響曲 第6番_3rd
AAC音源(参考・比較)を聴く
128kbps_FFmpeg_chg: 8.7MB
320kbps_FFmpeg_chg:20.2MB
Opusコーデックの弱点と課題(まとめ)
以上の評価から、Opusは、低ビットレートであっても再生上限周波数が20khzを維持しつつ、トラフィックが悪いネット環境でもアクセス時間が短縮され、高音質なストリーミング配信が期待できると思われるものの、
残念なことに、Opusは未だ一般的で無く、調べたところ、Opus再生に対して以下の難点があります。
- 再生プレーヤが限られること。(AppleMusicでは非対応で、VLC Playerで再生できます)
- ブラウザ上の再生が限られ、再生出来ても16bitでデコードされる場合があること。
【 追記:2025/7/21に確認したところ、下表の様にApple系ブラウザであっても再生が可能になっていました。】
| ブラウザ | Opus再生対応状況 | |
| macPC・Firefox | OK | 24bit |
| macPC・Chrome | OK | 16bit |
| macPC・Edge | OK | 16bit |
| macPC・Safari | macOS 15.4以降 OK | 未確認 |
| iPhone 全てのブラウザ | iOS 17.4以降 OK | 未確認 |
| Android・Chrome | OK | 未確認 |
- WordPressでOpus音声ファイルは基本的に非対応でAudioショートコードは使えないこと。(但し、HTMLのaudioタグで埋め込むことは出来ます)
続けてお読みください
Opusコーデックはビットレート変動パターンに特徴あり‼️ HE-AACとの相違点について考察しています。
-
-
オススメffprobeで音声ファイルを解析|【改善版】フレーム単位のビットレート変動のCSV化とグラフ化
【改善版】Opusファイルのビットレート変動 前回の記事ではFFmpegの’ashowinfo’フィルターで音声ファイルのビットレートをCSV化しましたが、WAVやOpus等の一部の音声ファイルで正し ...







