Upload
mganeko
View
1.465
Download
2
Embed Size (px)
DESCRIPTION
WebRTC and Audio Question WebRTC Meetup Tokyo #2 LT 資料
Citation preview
WebRTC のオーディオ処理の謎、誰か教えて!
WebRTC Meetup Tokyo #2 LT
インフォコム株式会社がねこまさし
WebRTC を使った片方向配信• WebRTC を使って、社内イベント映像の配信を実施– インフォコム非公認 放送部の活動– 年初社長挨拶、デモ大会、プレゼン大会、表彰式など
• 普通の PC から配信すると、 20 ~ 30 接続ぐらいでCPU が振り切れる– 解像度を落としたり、フレームレートを落とせばもう少
し可能– でも、数百とかは無理!
WebRTC 多段中継• 多段に中継すれば、もっと大勢に配信できるので
は?– 30×30 で 900 人! 力技で解決!
WebRTC 多段中継の内側
PeerConnection
MediaStream
PeerConnectionMediaStream
配信元
PeerConnection
PeerConnectionMediaStream
中間層
視聴者
WebRTC 多段中継の内側
PeerConnection
MediaStream
PeerConnectionMediaStream
配信元
PeerConnection
PeerConnectionMediaStream
中間層
視聴者
音が出ない!!
映像は出る
謎 1
• WebRTC で、リモートストリームをさらにリモートに流すと、最終段で音が出ない
• どうして??? 誰か教えて!!• ちなみに、 Chrome 34 です
• MediaStream をそのまま渡さずに複製した場合 → 文法エラーにはならないが、再生時に not found 404 となってしまうtalkerStream = new webkitMediaStream([
stream.getAudioTracks()[0], stream.getVideoTracks()[0]]); // pass here, but not found 404 while playing
WebRTC 多段中継の使いどころ
配信元n 人の視聴者
視聴者はそれぞれ1 本のダウンストリーム
配信元は n 本のアップストリーム
上り方向の回線トラフィックが
パンクする
WebRTC 多段中継の使いどころ
配信元n 人の視聴者
視聴者はそれぞれ1 本のダウンストリーム
配信元も 1 本のアップストリーム
中間サーバー WebRTC のブラウザベースあるいは
MCU ( メディアサーバー)Dialogic XMS など。どうせなら TURN と一体になったサーバーがあると嬉しいかも
5/31 の twitter にて
• Chrome WebRTC M35 Release Notes.– Issue 294145:- Decoupled MediaStream from MediaStreamTrack. Earlier
MediaStreamTrack belonged to exactly one MediaStream now it can belong to zero to many MediaStreams. Also, the clone() method for MediaStream and MediaStreamTrack has been added.
Chrome 35 で解決??
Chrome 35 の場合
PeerConnection
MediaStream
PeerConnectionMediaStream
配信元
PeerConnection
PeerConnectionMediaStream
中間層
視聴者
音が出ない!!
映像もでない!
Chrome 35 の場合
PeerConnection
MediaStream
PeerConnectionMediaStream
配信元
PeerConnection
PeerConnectionMediaStream
中間層
視聴者
音が出ない!!
映像もでない!
PeerConnection.addStream(stream) でエラーFailed to execute 'addStream' on 'RTCPeerConnection':
Unable to add the provided stream.
そのままでも、 MediaStream.clone() でも、 MediaStreamTrack.clone() でも
残念… .
さて、次の話題
前回の LT (Secret-Talk)WebAudio API & WebRTC
WebAudioAPI
FFT ScriptProcessor
PeerConnectionMediaStream
MediaStream MediaStream
リモートへ
ローカルの MediaStream からは変換可能
WebAudio API & WebRTC
WebAudio APIaudioSource
PeerConnection MediaStreamリモートから
remoteSound = audioContext.createMediaStreamSource(stream);
WebAudio APIdestination
audioContext.destination.connect(remoteSound);
音が出ない!!
謎 2
• WebRTC の getUserMedia() で取得したローカルストリームの音は、 WebAudio API と相互変換可能
• ところが、 PeerConnection 越しに受け取ったリモートストリームは、 WebAudio API 用に変換しても、音がでない
• どうして??? 誰か教えて!!• ちなみに、 Chrome 34 です (Chrome 35 未確認)
WebRTC は、映像系よりも音声系がややこしいかも
みんなで情報共有しましょう
Thank you!