WebRTCのオーディオ処理の謎、誰か教えて!

2,720 views

Published on

WebRTC and Audio Question
WebRTC Meetup Tokyo #2 LT 資料

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,720
On SlideShare
0
From Embeds
0
Number of Embeds
137
Actions
Shares
0
Downloads
14
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

WebRTCのオーディオ処理の謎、誰か教えて!

  1. 1. WebRTCのオーディオ処理の謎、 誰か教えて! WebRTC Meetup Tokyo #2 LT インフォコム株式会社 がねこまさし
  2. 2. WebRTCを使った片方向配信 • WebRTCを使って、社内イベント映像の配信を実施 – インフォコム非公認 放送部の活動 – 年初社長挨拶、デモ大会、プレゼン大会、表彰式など • 普通のPCから配信すると、20~30接続ぐらいでCPUが 振り切れる – 解像度を落としたり、フレームレートを落とせばもう少し可能 – でも、数百とかは無理!
  3. 3. WebRTC多段中継 • 多段に中継すれば、もっと大勢に配信できるのでは? – 30×30で900人! 力技で解決!
  4. 4. WebRTC多段中継の内側 PeerConnection MediaStream PeerConnectionMediaStream 配信元 PeerConnection PeerConnectionMediaStream 中間層 視聴者
  5. 5. WebRTC多段中継の内側 PeerConnection MediaStream PeerConnectionMediaStream 配信元 PeerConnection PeerConnectionMediaStream 中間層 視聴者 音が出ない!! 映像は出る
  6. 6. 謎 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
  7. 7. WebRTC多段中継の使いどころ 配信元 n人の視聴者 視聴者はそれぞれ 1本のダウンストリーム 配信元はn本の アップストリーム 上り方向の回線 トラフィックが パンクする
  8. 8. WebRTC多段中継の使いどころ 配信元 n人の視聴者 視聴者はそれぞれ 1本のダウンストリーム 配信元も1本の アップストリーム 中間サーバー WebRTCのブラウザベース あるいは MCU (メディアサーバー) Dialogic XMSなど。 どうせならTURNと一体 になったサーバーがあ ると嬉しいかも
  9. 9. 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 で解決??
  10. 10. Chrome 35 の場合 PeerConnection MediaStream PeerConnectionMediaStream 配信元 PeerConnection PeerConnectionMediaStream 中間層 視聴者 音が出ない!! 映像もでない!
  11. 11. 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()でも
  12. 12. 残念…. さて、次の話題
  13. 13. 前回のLT (Secret-Talk) WebAudio API & WebRTC WebAudioAPI FFT ScriptProcessor PeerConnectionMediaStream MediaStream MediaStream リモートへ ローカルのMediaStreamからは 変換可能
  14. 14. WebAudio API & WebRTC WebAudio API audioSource PeerConnection MediaStream リモートから remoteSound = audioContext.createMediaStreamSource(stream); WebAudio API destination audioContext.destination.connect(remoteSound); 音が出ない!!
  15. 15. 謎 2 • WebRTCのgetUserMedia()で取得したローカルストリームの音は、 WebAudio API と相互変換可能 • ところが、PeerConnection越しに受け取ったリモートストリームは、 WebAudio API 用に変換しても、音がでない • どうして??? 誰か教えて!! • ちなみに、Chrome 34 です (Chrome 35 未確認)
  16. 16. WebRTCは、映像系よりも 音声系がややこしいかも みんなで情報共有しましょう Thank you!

×