ラズパイでwebrtc ヾ(*´∀`*)ノキャッキャ uv4l-webrtc...

14
ラズパイでWebRTC (*´*)ノキャッキャ uv4l-webrtc 軽くハックしてみたよ! 59HTML5とか勉強会 NTTコミュニケーションズ こまつけんさく

Upload: kensaku-komatsu

Post on 11-Jan-2017

2.677 views

Category:

Technology


6 download

TRANSCRIPT

Page 1: ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ    uv4l-webrtc 軽くハックしてみたよ!

ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ

uv4l-webrtc 軽くハックしてみたよ!第59回HTML5とか勉強会

NTTコミュニケーションズ こまつけんさく

Page 2: ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ    uv4l-webrtc 軽くハックしてみたよ!

My profile• Name :=>

•小松健作 (@komasshu)

• Company :=> • NTT Communications

• Position :=> • Webアプリケーションエバンジェリスト

•かえるさん(かっぱはピンと来なかったのでw

• Activities :=> • WebRTC CPaaS SkyWayの中の人

• Google Developer Expert (HTML5)

Page 3: ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ    uv4l-webrtc 軽くハックしてみたよ!

妄想

Page 4: ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ    uv4l-webrtc 軽くハックしてみたよ!

ラズパイのWebRTC事情• uv4l

• extension: uv4l-webrtc

http://www.linux-projects.org/modules/sections/index.php?op=viewarticle&artid=14

Page 5: ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ    uv4l-webrtc 軽くハックしてみたよ!

How to install$ curl http://www.linux-projects.org/listing/uv4l_repo/lrkey.asc | sudo apt-key add -

以下を /etc/apt/sources.list に追加 deb http://www.linux-projects.org/listing/uv4l_repo/raspbian/ wheezy main

$ sudo apt-get update $ sudo apt-get install uv4l uv4l-raspicam $ sudo apt-get install uv4l-raspicam-extras

$ sudo raspi-config <- “Enable camera”をON $ sudo apt-get install uv4l-server $ sudo apt-get install uv4l-uvc $ sudo apt-get install uv4l-xscreen $ sudo apt-get install uv4l-mjpegstream $ sudo apt-get install uv4l-webrtc

$ sudo service uv4l_raspicam restart

https://www.raspberrypi.org/products/camera-module/

Page 6: ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ    uv4l-webrtc 軽くハックしてみたよ!

WebRTCがインプリされた uv4l-serverが起動

http://<ラズパイのIPアドレス>:8080/stream/webrtc

Page 7: ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ    uv4l-webrtc 軽くハックしてみたよ!

MISC• config file

• /etc/uv4l/uv4l-raspicam.conf

• shared library

• /usr/lib/uv4l/libwebrtc.so

• // 多分ChromeのWebRTCスタック

• なんかあったら $ sudo service uv4l_raspicam restart

Page 8: ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ    uv4l-webrtc 軽くハックしてみたよ!

uv4l-serverのオプション• man uv4l-server

• --port (=8080)

• --webrtc-stun-urls (=stun:stun.l.google.com:19302,stun:stun.ekiga.net)

• --xmpp-server arg

• ……

Page 9: ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ    uv4l-webrtc 軽くハックしてみたよ!

たぶん、こんな感じ (source code見れてないけど(><))

uv4l-server

WebSocket server

(signalling)

WebRTC stack

(libwebrtc.so)

192.168.x.y:8080

Page 10: ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ    uv4l-webrtc 軽くハックしてみたよ!

問題点• localからしかアクセスできない

• たぶん、XMPP server経由ならOKだけど・・・

• すぐ止まる

• CPU 100% はりついて、熱暴走 → チーン

• VP8のencode処理によるペナルティ(たぶん)

Page 11: ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ    uv4l-webrtc 軽くハックしてみたよ!

お外からでも使いたい! (しかもSkyWayで)

• SkyWayのシグナリングプロトコルに変換するプロトコルゲートウェイを作ってみた

uv4l-server

Signalling Protocol Gateway Signalling

Page 12: ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ    uv4l-webrtc 軽くハックしてみたよ!

わーい ヾ(*´∀`*)ノキャッキャ

Page 13: ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ    uv4l-webrtc 軽くハックしてみたよ!

止まらないように

$ cat /sys/class/thermal/thermal_zone0/temp 41160

Page 14: ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ    uv4l-webrtc 軽くハックしてみたよ!

Thank you!! @komasshu

ヾ(*´∀`*)ノキャッキャもうちょっとちゃんとやったら、github公開します