ラズパイでSkyWay WebRTC Gatewayを試す

ラズパイのカメラモジュールの映像を遠隔地から見るための実験です。

WebRTC Gatewayのインストール

最初にSkyWay社で配布されているSkyWay Web RTC Gatewayのバイナリーをダウンロードします。自分の場合はprogramsディレクトに各種プログラムを置いているので、ここにインストールします。

$ cd ~/programs
$ mkdir skyway-webrtc-gateway
$ cd skyway-webrtc-gateway
$ wget https://github.com/skyway/skyway-webrtc-gateway/releases/download/0.0.2/gateway_linux_arm
$ chmod +x gateway_linux_arm

カメラ配信サンプルコードをダウンロード

ハンズオンの資料が公開されているのでここからダウンロードします。

$ mkdir chapter2
$ cd chapter2
$ wget https://raw.githubusercontent.com/skyway-lab/skyway-webrtc-gw-handson/master/chapter2/ruby/media.rb
$ wget https://raw.githubusercontent.com/skyway-lab/skyway-webrtc-gw-handson/master/chapter2/ruby/peer.rb
$ wget https://raw.githubusercontent.com/skyway-lab/skyway-webrtc-gw-handson/master/chapter2/ruby/util.rb
$ wget https://raw.githubusercontent.com/skyway-lab/skyway-webrtc-gw-handson/master/chapter2/ruby/webrtc_control.rb

実行

最初にWebRTC Gatewayを実行します。

$ ./gateway_linux_arm

次にカメラ配信プログラムを実行します。APIキーはあらかめじSkyWayのサイトで登録しておきます。PEER_IDは適当な名前を指定します(例: pi1)。

$ export API_KEY=YOUR_API_KEY
$ ruby webrtc_control.rb PEER_ID

ここで、エラーが出る場合は、カメラ周りを再確認します。

mmal: mmal_vc_component_enable: failed to enable component: ENOSPC

自分の場合は、momoサーバーが起動していてラズパイのカメラをつかんでいたためにエラーが出ていました。momoを停止してもう一度webrtc_control.rbを実行すると正常に起動できました。

カメラ映像を受信する

JavaScript SDKのサンプルコードを使って、Webブラウザでラズパイのカメラ映像を表示します。

github.com

example内のp2p-mediaを使用します。

f:id:yuppejp:20191208161515p:plain

うまく表示されました!

参考にしたサイト

qiita.com