狠狠撸

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

More Related Content

奥别产搁罢颁配信とハードウェアエンコーダ