Transiruの音声配信技術についての講評
Transiru、技術面はわかる人が見たらすぐに判っちゃうので先に書いておくと、Haxe/JavaScript, Scala, WebAudio, MQTT orver WebSocket, VerneMQみたいな感じです transiru.net
2016-01-13 16:00:42@voluntas 将来的にはWebRTCも含めプロトコルの置き換えは検討してます。現時点ではかなり素朴な実装ですね。とりあえず公開することを優先して、だいぶ割り切ってます
2016-01-13 16:29:24@voluntas うちはあまり知見がないので、御社に技術相談すればよさそうですね。実際、MQTTで作ったはいいんですが、他にも問題は見えてるので、近いうちにご相談することになるかもしれないです
2016-01-13 16:35:33@terurou いや、音声配信だけは凄い簡単です。js でさくっと出来ますよ。うちのはサーバ経由という面倒なことをやってるだけなので。それも映像がーってだけなので。音声だけであれば転送量問題とかも全部解決します。イイ選択だと思います。
2016-01-13 16:36:54@terurou SkyWay とかで逃げちゃえば凄い楽ですよ。P2P であればサーバコストもかからないですし。まさにこのための WebRTC って感じですね。うちは真逆で P2P では無理なところやってる感じです。
2016-01-13 16:55:33@voluntas やっぱ、1:20ぐらいになんですね。それだと全然規模が足りなくて、1:10Kぐらいの配信は最低限の目標としてるので、このあたりの配信制御が簡単にいくならWebRTCで良いのですが
2016-01-13 17:13:50@terurou 1:1000 だと WebRTC だとサーバ経由しないとダメですね。もしくはFlash Media Server を用意するしかないですね。遅延なし(RTC) 系の配信は鬼門しかないです。
2016-01-13 17:15:19@terurou 遅延ほぼなしリアルタイム配信は技術的に今のところニコニコ動画が最先端ですね … 。ほとんどの場合は遅延ありでやってるとおもいます。うちは映像込みだと 1:600 が限界ですね。
2016-01-13 17:16:50@voluntas FMSを使いたくない→WebRTCで配信制御大変そう→とりあえずMQTTでリレーさせるかみたいな状況になってます。あと、遅延なしまでやるとコストが跳ね上がっちゃうので、10秒程度の遅延が実現できれば十分でしょという考え方をしてます
2016-01-13 17:18:36@terurou MQTT でリレーで十分かもしれないですね。ただ TCP + 音声はあまり現実的では無いとは思います。10 秒程度許容できるなら play list 方式でサーバにアップロードしてそれをポーリングしてダウンロードする HLS っぽいほうがイイと思います。
2016-01-13 17:20:44@terurou broker いらなくなりますよ。遅延おkの大規模配信はほとんど HLS (サーバに一度置いてプレイリストによる分割)方式が基本です。配信はセッションがボトルネックになっていくので難しいと思います。
2016-01-13 17:21:29@terurou WebRTC は RTC(遅延を 1 秒以内に)が目的なので、用途が特殊なんですよね。遅延許容できるなら配信をダウンロード形式にすべきだと思います。そうすれば 1:10000 も可能かと。スケール考えなくて良くなります。
2016-01-13 17:23:17@terurou うちの製品は、音声はテストが難しいのでやったことないですが、転送量的に 1:1000 は可能だとは思います。ただ、その魅力が遅延許されるならないかなーと。遅延が許されないシステムにしか使えない感じですね … ニッチです、ニッチ。
2016-01-13 17:25:00@voluntas たしかにMQTTで作っちゃってから、実質それとやってることが大差ないみたいな感じにはなってますね。Pushされてくるか否かの違いぐらいのもので。
2016-01-13 17:25:04@terurou だと思います。なので、 PUSH される必要はなくて、保存したデータを Opus で配信してしまった方がいいなと。ブローカー減らせて、Nginx だけでよくなりますね。
2016-01-13 17:26:54