Opusという音声ファイルの存在を知っていますか?
YouTubeを見ているなら、そのときにOpusファイルを再生しているかもしれません。
本記事の内容
- Opusとは?
- Opusの利用環境
- Opusファイルの作成
- Opusファイルの再生(WAVファイルとの比較)
それでは、上記に沿って解説していきます。
Opusとは?
Opusとは、汎用性の高いオーディオコーデックです。
そして、完全にオープンで、ロイヤリティフリーとなります。
品質を他のコーデックと比較した結果は、以下。
オープンソースであり、圧縮しても品質は抜群ということのようです。
遅延に関しての比較結果もあります。
遅延がもっとも少なくて、品質の幅も調整可能ということです。
これを見る限りでは、使わない手はありません。
実際、いろいろなところでOpusは使われています。
- Discord
- Jitsi
- YoTube
- Twilio
YouTubeでは、「詳細統計情報」(動画上で右クリック)で確認できます。
Jitsiは、Web会議用のオープンソースです。
次の記事で解説しています。
また、WebRTCではOpusが標準になりつつあります。
こうして見ると、結構身近にOpusは存在しています。
以上、Opusについての説明でした。
次は、Opusを利用するため環境について確認します。
Opusの利用環境
プレヤーが対応していれば、Opusフォーマットの音声ファイルを利用できるでしょう。
それよりも、対応ブラウザが重要です。
現時点の最新バージョンにおける対応状況は、以下。
主要ブラウザをピックアップしています。
デバイス | ブラウザ | バージョン | 対応 |
PC | Chrome | 89 | 〇 |
PC | Firefox | 87 | 〇 |
PC | Edge | 89 | 〇 |
PC | Safari | 14 | 〇 |
PC | IE | 11 | × |
iOS | Safari | 14 | 〇 |
Android | Chrome | 89 | 〇 |
IE以外は、対応している状況です。
だからと言って、タグで再生できるかどうかはわかりません。
なお、Safari(IEはもともと対象外)以外は、すべて実際に動くことを確認できました。
Safariは設定を変更したりすれば、動くのかもしれません。
とりあえず、ほぼすべての環境でOpusが利用可能と言えます。
デフォルトで利用可能かどうかが、とても重要ではありますけどね。
以上、Opusの利用環境についての説明でした。
次は、Opusフォーマットの音声ファイルの作り方を説明します。
Opusファイルの作成
音声変換ソフトが対応していれば、Opusフォーマットの音声ファイルを作成できるでしょう。
作成というよりは、変換することの方が多いでしょうけど。
ffmpegは、普通に対応しています。
ただ、オプションの指定がわかりにくいです。
そこで、Opusの開発元が用意した専用ツール「opus-tools」を使います。
これなら、オプションで何も考えなくてもいい感じに変換してくれます。
以下の流れで説明していきます。
- opus-toolsのインストール
- opus-toolsの「opusenc」でエンコード
- opus-toolsの「opusenc」でデコード
opus-toolsのインストール
公式サイト
https://opus-codec.org/downloads/
opus-toolsは、コマンドラインツールとなります。
WindowsやmacOSの場合は、バイナリが用意されています。
Linuxの場合は、各ディストリビューションで用意されているはずです。
Ubuntu・Debianの場合なら、aptコマンドで簡単にインストールできます。
sudo apt-get update -y sudo apt-get install -y opus-tools
opus-toolsの「opusenc」でエンコード
まずは、WAVファイルを用意します。
ここでは、test.wavを用意。
Opusファイルに変換してみます。
opusenc test.wav test.opus
上記を実行すると、以下のように表示されます。
Encoding using libopus 1.3.1 (audio) ----------------------------------------------------- Input: 16kHz 1 channel Output: 1 channel (1 uncoupled) 20ms packets, 33kbit/sec VBR Preskip: 312 Encoding complete ----------------------------------------------------- Encoded: 1 minute and 1.14 seconds Runtime: 1 seconds (61.14x realtime) Wrote: 209967 bytes, 3057 packets, 64 pages Bitrate: 26.7445kbit/s (without overhead) Instant rates: 4.8kbit/s to 42.8kbit/s (12 to 107 bytes per packet) Overhead: 2.65% (container+metadata)
上手くエンコードできたようです。
opus-toolsの「opusenc」でデコード
OpusファイルをWAVファイルに変換します。
opusdec test.opus test_decode.wav
上記を実行すると、以下が表示されます。
Decoding to 16000 Hz (1 channel) Encoded with libopus 1.3.1 ENCODER=opusenc from opus-tools 0.1.10 Decoding complete.
上手くデコードできたようです。
まとめ
ファイルの容量を確認してみましょう。
上記の結果では、90%の容量削減を実現できています。
変換時のオプションを工夫すれば、もっと圧縮できるかもしれません。
これで品質に問題なければ全然アリですね。
では、品質をチェックしていきましょう。
以下で、WAVファイルとOpusファイルを実際に再生して比較します。
Opusファイルの再生(WAVファイルとの比較)
全く問題ないレベルだと思いませんか?
やはり、こうやって普通にブラウザで再生できるのは強みです。
専用のプレーヤーをインストールしなくて済みますからね。
以上より、Opusを利用することに問題はありません。
Safari(IE含む)とそれ以外で分ければ、特に問題はないでしょう。
ブラウザ | 音声ファイル形式 |
Safari(IE含む) | WAV |
それ以外 | Opus |
ユーザーエージェントにより、音声ファイルを振り分けることになります。
実際は、WAVよりもMP3などの方がよいのかもしれません。