Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

WebRTC +αで無理やりやってみた×3 WebRTC Meetup Tokyo 4

WebRTC Meetup Tokyo 4 で発表する資料です。
WebRTC+αで無理やりやってみた×3
http://peatix.com/event/51641

  • Loggen Sie sich ein, um Kommentare anzuzeigen.

WebRTC +αで無理やりやってみた×3 WebRTC Meetup Tokyo 4

  1. 1. WebRTC + α で無理やりやってみた×3 WebRTC Meetup Tokyo #4 LT 2014.10.03 インフォコム株式会社 がねこまさし
  2. 2. 最初に • 今回は(も)、邪道な内容です • 本来、ブラウザだけで色々できるWebRTCですが、それ 以外の小道具を使って実現しました • 今日は(も)、ソースコードは一切ありません • ※スケールしない方法なので、お勧めしません
  3. 3. (1) 無理やりFirewallを 越えてみた
  4. 4. まだTURN サーバーの動かし方が 分からなかった頃 • 社外で行われたイベントを、社内ネットワークで 中継したい! – 岩沼みんなの家(宮城県)で、社内ハッカソンを実施 – 作品発表会を、オフィスの人たちに見せたい https://www.facebook.com/minnanoie.iwanuma.infocom
  5. 5. まだFirewallを超えられない… でも、無理やり超えてやる!
  6. 6. 「光学的」Firewall越え ※音声はアナログでFirewall越え ヘッドフォン端子→マイク端子
  7. 7. 結果 • 反射して見にくい • 音が割れて聞きにくい … さんざんなコメント でも、「楽しそうな雰囲気は伝わった」とのこと • その後、TURNサーバーの使い方が分りました – 「壁を越えろ!WebRTCでNAT/Firewallを越えて通信しよう」 – http://html5experts.jp/mganeko/5554/ – ※ 「WebRTC firewall」で検索!
  8. 8. (2)中継を 「無理やり中継」してみた
  9. 9. WebRTC Meetup Tokyo #2 にて • 「音声が多段中継できない」 MediaStream PeerConnection PeerConnection MediaStream 配信元 PeerConnection 中間層 MediaStream PeerConnection 視聴者 映像は出る 音が出ない!!
  10. 10. discuss-webrtc Group に(最近)質問 • リモートの音声をリレーできないんだけど、どうして? – WebRTC audio is not passed, while relaying remote stream to another. • I am trying to relay mediastream of WebRTC, using three Chrome 37 browsers. • In Browser3, playing video is OK, but there is no audio. • Is it limitaion of specification of WebRTC, or something wrong with me? • → 現状できないよ。Issue 2192を見ろ – Relaying audioTracks is not supported currently, see issue 2192. – https://code.google.com/p/webrtc/issues/detail?id=2192
  11. 11. Issue 2192 Investigate/ Implement adding remote audio track/stream to a PeerConnection. • Aug 7, 2013 – Split from https://code.google.com/p/webrtc/issues/detail?id=383 (Mar 21, 2012) for tracking the work on the audio side. • May 28, 2014 – They are replumbing all the audio stack so it takes some time. Here is a rough roadmap given earlier this year (march): • Move the WebRTC APM to Chrome • Implement a media stream render mixer in Chrome. • Change the render callback from a pull model to a push model, and connect the render data to the mixer • Allow WebRtc to pass un-mix data to Chrome through Libjingle, and add support for relaying the stream. 根が深い、やっかいな問題らしい。残念
  12. 12. 待て、俺には「無理やり」がある!
  13. 13. WebRTC多段中継:試し PeerConnection PeerConnection MediaStream PeerConnection MediaStream 中間層 視聴者 映像は出る 「別の」音が出る VideoTracks MediaStream MediaStream AudioTracks 生成 「別の」音を入力 「映像」だけ取り出し
  14. 14. 「音が出た!」
  15. 15. WebRTC多段中継:無理やり PeerConnection PeerConnection MediaStream PeerConnection MediaStream 中間層 視聴者 映像は出る 「元の」音が出た! VideoTracks MediaStream MediaStream AudioTracks 生成 再生して、 また拾う
  16. 16. 自分のヘッドフォン端子→ マイク端子 ※ハウリングの危険! 絶対にマイクの音を モニター再生しないで! マイクヘッドフォン
  17. 17. 結果 • 狙い通り視聴者に元の音を届けるこができた • が、非常に音質が悪い • …使えない
  18. 18. おまけ:ステレオミキサーの場合 • Windowsには「ステレオミキサー」なる仮想的な音声 入力デバイスがある • PCで鳴らす音を全部取得することが可能
  19. 19. おまけ:ステレオミキサーの場合 • Windowsには「ステレオミキサー」なる仮想的な音声 入力デバイスがある • PCで鳴らす音を全部取得することが可能 • 一旦再生した音声を再度 デジタル化する • その分のディレイが発生 • 動画と合わせるとかなりの 違和感 やっぱり、使えない…
  20. 20. おまけ:ステレオミキサーの場合 • Windowsには「ステレオミキサー」なる仮想的な音声 入力デバイスがある • PCで鳴らす音を全部取得することが可能 • 一旦再生した音声を再度 デジタル化する • その分のディレイが発生 • 動画と合わせるとかなりの 違和感 やっぱり、使えない… ※高性能のUSBオーディオインターフェ イスを使えば、行けるかも…
  21. 21. (3)多人数の映像を 無理やり合成してみた
  22. 22. きっかけ「10人でWeb会議したい」 • 人事部「WebRTCとやらで出来るんでしょ?」 • 俺「…それ、無理です(P2Pだし)」 • 人事部「なんだあ(しょぼい…)」 • 俺「(くそう…涙)」 実際試してみた→ 社内開発機では意外と行けた が、インターネット環境が絡むと、6人以上はストリームが流れない ケースが多発
  23. 23. 待て、俺には「無理やり」がある! ※アイデアは@satoru_tk さんから 頂きました
  24. 24. 各メンバーの映像を、1台にまとめる 多対1、片方向通信
  25. 25. 別のPCでキャプチャー HDMI キャプチャー ユニット ブラウザはカメラとして認識 「ドライバ必要なしUSB接続のHDMIビデオキャプチャユニット」を利用 http://febon.blogspot.com/2013/12/uvc-usbhdmi.html (台湾の個人事業主っぽい) ←FEBON168 HDMI Grabber Card ※ステマじゃないよ。お金は貰ってません!
  26. 26. 映像を、1対多の片方向配信
  27. 27. ここまで、全体像 HDMI キャプチャー ユニット
  28. 28. ところで、音声は? • この方式で音声も合成した場合 – 自分の声が、少し遅れて帰ってくる – …かなり話し辛い • 本来は、「マイナスワン」の音声が必要 – 自分以外の人たちの音声を合成してほしい – かなり面倒 • →別の方法で実現
  29. 29. 音声は、Peer-to-Peer で
  30. 30. HDMI キャプチャー ユニット 全体像
  31. 31. 結果 • 社内実験環境ではできた(~12人まで実験) • ※インターネット越しの実践投入はまだ
  32. 32. メディアサーバー/MCUが やってること HDMI キャプチャー ユニット ところで、 「餅は餅屋」に任せるのが良さそう Dialogic XMS, Intel CS for WebRTC, Kurento(←鋭意調査中)
  33. 33. END 良い子は、 けっして真似しないでください

×