5

作業中のオーディオプロジェクト用にOPUSベースのマルチキャストサーバーを作成しようとしています。これはO-DroidX(http://www.hardkernel.com/renewal_2011/products/prdt_info.php?g_code)で実行されます。 = g133999328931)このプロジェクトの場合。現時点では、OPUSコーデックを使用してLinuxまたはAndroidでマルチキャストサーバーを作成し、作成するためにどこから始めればよいかわかりません。これは、私が最初から行ったオーディオサポート用の最初のマルチキャストサーバーです。ポインタがあれば大歓迎です。

また、Webページからアクセス可能にし、そのWebページから再生できるようにすることは、クライアント側の特定のアプリが必要ないようにするための理想的な状況です。

4

2 に答える 2

1

どうやらIcecastはあなたが探していることの多くを行います。これはオープンソース(GPL)であり、Oggコンテナ形式を使用したOpusストリームをサポートしているため、一般的なソフトウェアアーキテクチャのアイデアを垣間見ることができます。私のSoundWireAndroidアプリ(Win / Linuxサーバーを使用)は低遅延でOpusストリーミングを実行しますが、ネットワークプロトコルはカスタムです...低遅延を実行できる確立されたオープンプロトコルはわかりません(私の定義では、1秒の遅延は低くありません)レイテンシー)。

私のアプローチは、クライアントごとに通常のユニキャストUDPソケットをセットアップする従来のネットワークサーバーを構築することでした。低遅延が必要な場合はTCPを避けてください。そうすると、UDPのデータグラムの性質に何らかの方法で対処する必要があります。Opusを使用すると、クライアントごとにストリーミングされるデータの量が過剰になることはありません。マルチキャストは検出にのみ使用します(サーバーの自動検索)。

いくつかのオープンソースサーバーコードから始めて、ニーズに合わせて調整し、統合が非常に簡単なOpusを導入し、適切な場合はOggなどのコンテナー形式を選択することをお勧めします(Ogg Opusを検索してください)。ブラウザの互換性が必要な場合は、多かれ少なかれWebサーバーの一部(HTTPなど)を実装することになり、低遅延の目標をあきらめる必要があります。

于 2013-01-24T05:49:08.490 に答える
0

一般的な注意として、私のコメントへの返信を待つ間:マルチキャストがほとんど役に立たないことを知ってがっかりするでしょう。ほとんどのルーターがマルチキャストを通過するように構成されていないため、現実の世界ではおそらく遭遇しないいくつかの異常な構成を除いて、マルチキャストはインターネット上では機能しません。実際には、ローカルネットワーク上でのみ使用できます。

Webページからアクセスできるようにする限り、運が悪いです。マルチキャストに対するネイティブブラウザのサポートはなく、OPUSのサポートも広く行われていません。また、ブラウザの機能を拡張する標準的な方法(JavascriptやFlashなど)のほとんどは、実際にはあまり役に立ちません。Javaアプレットに実装できるかもしれませんが、Javaインストールが機能しているユーザーエージェントの数は急速に減少しており(特に最近のJavaエクスプロイトにより)、結果として得られるアプレットは、とにかくマルチキャストを使用するために昇格された特権を必要とする可能性があります。

于 2013-01-14T19:27:10.830 に答える