Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

WebRTC配信とハードウェアエンコーダ

1,055 views

Published on

Streaming Conference #1 で発表させていただきました
https://streaming-lab.connpass.com/event/78549
頑張って完成させます!

Published in: Technology
  • Be the first to comment

WebRTC配信とハードウェアエンコーダ

  1. 1. tnoho WebRTC配信と ハードウェアエンコーダ
  2. 2. 自己紹介 tnoho • とのほ • プログラミングと電子工作が趣味 • WebRTC界隈にはよく出没します • 通信屋で働くサラリーマン
  3. 3. WebRTCとは Web Real Time Communication の略 ブラウザだけでビデオチャットを行う技術 特徴 • ブラウザ同士でP2P通信するため配信サーバ不要 • 通信はデフォルトで暗号化 • ほとんどのブラウザが対応
  4. 4. WebRTCとHLS WebRTC • ブラウザから映像/音声を送受信できる。画面も可! • 低遅延 (0.2秒くらい) • 専用の配信サーバが必要、大規模配信には向かない HLS • ファイルなのでCDNで超大規模配信が可能 • ブラウザでは受信のみ • 大きな遅延が発生するためリアルタイム配信には向かない
  5. 5. ImageFlux Live すごくね ピクシブさん と さくらインターネットさん の大規模配信 WebRTCとHLSのメリットを高い技術で組み合わせている • WebRTCなのでブラウザから映像/音声を送信できる • HLSなので大規模配信できる • ハードウェアエンコードなど頑張って低遅延にしている 受信者 ImageFlux Live WebRTC HTTPTS fileRTP Transcode WebRTC Gateway RTP Endpoint 配信者
  6. 6. ハードウェアエンコーダ (HW Enc) 重いエンコード処理をHWにやらせて効率を上げる手法 • VP9とかAV1とか重めのコーデックが来る未来を考えると要投資 • ただし、NVIDIAさんのサーバ向けGPUは高い スマートフォン向けのSoCはだいたい HW Enc が載っている H.264だとRaspberry Piにも載ってる! そうだ、Raspberry Piで真似しよう!
  7. 7. ちからつきました MPEG2-TSでのカプセル化に目処ついたんだけど間に合わなかった
  8. 8. RaspberryPi VideoCore VI OpenMAX IL 考えてた構成図 WebRTC Native Client (NaCl) に肉付けしてHLSを生成する 受信者 WebRTC HTTP 配信者 WebRTC NaCl VPX Decoder TS filePipe H.264 HW Decoder H.264 HW Encoder I420WebRTC Endpoint VPX H264 H264 VGAくらいが たぶん限界 720pくらいまでなら …VP8いけるかな? MMALやる元気ないので チキンにOpenMAX経由
  9. 9. RaspberryPi Zero WebRTC NaCl 間に合うと思ってたの! デモ ノウハウも デコーダも トランスコーダも ソースコードは持ってた… 時間はなかった VideoCore VI 受信者 IVF file WebRTC H264I420 FeedBack H.264 HW Encoder Capture WebRTC Endpoint
  10. 10. Thank You!

×