匿名

差分

Opusコーデック

5,641 バイト追加, 2020年8月6日 (木) 10:42
ページの作成:「== 概要 == OpusコーデックはAsteriskで利用可能な音声コーデックの1つ。技術的特徴は[https://ja.wikipedia.org/wiki/Opus_(音声圧縮) Wikipedi...」
== 概要 ==

OpusコーデックはAsteriskで利用可能な音声コーデックの1つ。技術的特徴は[https://ja.wikipedia.org/wiki/Opus_(音声圧縮) Wikipediaの記事]を参照のこと。

可変ビットレートであり、ビットレートに比して高音質で、低遅延とのことです。

== 注意事項 ==

インストール前に、提供元の[http://downloads.digium.com/pub/telephony/codec_opus/README README]をお読みください。

使用状況の統計を24時間ごとにコミュニティサーバーに送信する旨が記載されています。

また、バイナリパッケージの提供であり、x86またはx86_64のみの提供であるため、Raspberry Pi等の<b>ARMプロセッサ環境に対してはインストールできません。</b>

了解された上で、インストールを行ってください。

== インストール ==

=== Asterisk 16 ===

Asterisk 16では、ビルド時にmake menuconfigでインストールするかどうかを選択します。

インストールするを選択した場合、make install時にOpusコーデックのバイナリがダウンロードされ、インストールされます。

make menuconfig

Codec Translators → 下の方「External」の更に下 → codec_opusを選択肢、Enterキーで*マークをつけ、Save & Exitし、makeします。

もし

XXX codec_opus

とXXXが表示されていて選択できない場合、何らかの依存ソフトウェアがインストールされていないためインストールできないようです。
codec_opusを選択した状態で、下の方の「Depends on」に記載されているソフトウェアをインストールします。

''CentOS 8ではxmlstarletが不足していましたが、何故かdnfからインストールできなかったので、RPMパッケージを手動でインストールしました。''

依存ソフトウェアをインストールしたら、./configureからやり直します。その場合make menuconfigで設定した内容は消去されるので、必要な場合設定内容を手元にメモしてから./configureをやり直し、再度make menuconfigを実行します。

make menuconfigが完了したら、makeでビルドを行います。続いて、sudo make installまたはrootユーザーでmake installを行います。Opusの追加のみの場合は、上書きインストールをしても問題は発生しませんでした。

==== 設定 ====

Asterisk設定ファイルのmodules.confに次の2行を追加します。
load = codec_opus.so
load = res_format_attr_opus.so

追加しなくても動く場合もあるようですが、他コーデックとの変換に失敗する場合は上記の追加で改善します。(他コーデックと変換については下記「CLIでの確認」も参照。)

続いて、pjsip.confのendpoint等でallow=opusと記載します。使用するクライアントでもOpusを使用する設定を行います。

==== CLIでの確認 ====

Opusが使用可能かどうかは、[[Asterisk CLI]]で次のコマンドを実行するとわかります。

CLIコマンド:
core show codecs

結果(抜粋):
29 audio opus opus (Opus Codec)

CLIコマンド(コーデック同士の変換にかかるミリ秒を表示):
core show translation

結果:
Translation times between formats (in microseconds) for one second of data
Source Format (Rows) Destination Format (Columns)

ulaw gsm slin8 slin12 slin16 slin24 slin32 slin44 slin48 slin96 slin192 g722 testlaw opus
ulaw - 15000 9000 17000 17000 17000 17000 17000 17000 17000 17000 17250 15000 23000
gsm 15000 - 9000 17000 17000 17000 17000 17000 17000 17000 17000 17250 15000 23000
slin8 6000 6000 - 8000 8000 8000 8000 8000 8000 8000 8000 8250 6000 14000
slin12 14500 14500 8500 - 8000 8000 8000 8000 8000 8000 8000 14000 14500 14000
slin16 14500 14500 8500 8500 - 8000 8000 8000 8000 8000 8000 6000 14500 14000
slin24 14500 14500 8500 8500 8500 - 8000 8000 8000 8000 8000 14500 14500 14000
slin32 14500 14500 8500 8500 8500 8500 - 8000 8000 8000 8000 14500 14500 14000
slin44 14500 14500 8500 8500 8500 8500 8500 - 8000 8000 8000 14500 14500 14000
slin48 14500 14500 8500 8500 8500 8500 8500 8500 - 8000 8000 14500 14500 6000
slin96 14500 14500 8500 8500 8500 8500 8500 8500 8500 - 8000 14500 14500 14500
slin192 14500 14500 8500 8500 8500 8500 8500 8500 8500 8500 - 14500 14500 14500
g722 15600 15600 9600 17500 9000 17000 17000 17000 17000 17000 17000 - 15600 23000
testlaw 15000 15000 9000 17000 17000 17000 17000 17000 17000 17000 17000 17250 - 23000
opus 23500 23500 17500 17500 17500 17500 17500 17500 9000 17000 17000 23500 23500 -

他コーデックとの変換については、Opusと変換する他方のコーデックのモジュールについてもmodules.confに記載する必要があるようで、必要な場合、上記のmodules.confへの追加例に倣って記載してください。

== 使ってみる ==

ulawではVoicemailmainで各音声の末尾が切れているような感じ(「メッセージ」の「ジ」が聞こえる前に次の音声に移ってしまう)でしたが、Opusにしたら改善しました。