2017年1月20日金曜日

RaspberryPi + Janus で WebRTC を試してみた

概要

RaspberryPi + picam + Janus を使って RaspberryPi から WebRTC を使ってリアルタイム配信を行ってみました
H.264 で配信するため確認する際のブラウザは Firefox を使ってください

環境

  • RaspberryPi 8.0 Jessie Linux raspberrypi 4.1.7+ #817
  • Janus 0.1.2
  • gstream 1.0
  • Firefox 47.0.1
  • nginx 1.6.2

カメラモジュールの設定

事前に RaspberryPi のカメラモジュールの設定を行っておいてください
自分は過去にこちらの手順で実施しました

Janus のインストール

必要なパッケージのインストール

  • sudo apt-get -y update
  • sudo apt-get -y install libmicrohttpd-dev libjansson-dev libnice-dev libssl-dev libsrtp-dev libsofia-sip-ua-dev libglib2.0-dev libopus-dev libogg-dev libini-config-dev libcollection-dev pkg-config gengetopt libtool automake dh-autoreconf
  • sudo apt-get -y install gstreamer1.0
  • sudo apt-get -y install nginx

Janus のビルド

  • git clone https://github.com/meetecho/janus-gateway.git
  • cd janus-gateway
  • sh autogen.sh
  • ./configure –disable-websockets –disable-data-channels –disable-rabbitmq –disable-docs –prefix=/opt/janus
  • make
  • sudo make install
  • sudo make configs
  • ls -ltr /opt/janus/

で bin フォルダや lib フォルダがあれば OK です
make 時に警告が出ますがエラーにはなりませんでした
apt-get install と make 時にかなり時間がかかります

Janus 設定

  • sudo cp /opt/janus/etc/janus/janus.plugin.streaming.cfg.sample /opt/janus/etc/janus/janus.plugin.streaming.cfg
  • sudo vim /opt/janus/etc/janus/janus.plugin.streaming.cfg
[gst-rpwc]
type = rtp
id = 1
description = RPWC H264 test streaming
audio = no
video = yes
videoport = 8004
videopt = 96
videortpmap = H264/90000
videofmtp = profile-level-id=42e028\;packetization-mode=1
  • sudo cp -r /opt/janus/share/janus/demos /var/www/html

各種プロセス起動

  • sudo service nginx start
  • cd /opt/janus/bin/
  • ./janus -F /opt/janus/etc/janus/

以下は別ターミナルで起動する

  • raspivid –verbose –nopreview -hf -vf –width 640 –height 480 –framerate 15 –bitrate 1000000 –profile baseline –timeout 0 -o - | gst-launch-1.0 -v fdsrc ! h264parse ! rtph264pay config-interval=1 pt=96 ! udpsink host=127.0.0.1 port=8004

[gst-rpwc] New video stream! (ssrc=1522636675) というログが janus 側のターミナルで出力されれば準備 OK です

動作確認

Firefox を起動しましょう
Chrome だと H.264 に対応していないのでエラーになります

http://raspberrypi.local/demos/streamingtest.html
にアクセスし Start -> 配信形式を選択 -> 青いボタンで配信がスタートします
カメラモジュールの情報がブラウザにリアルタイムで表示されることが確認できると思います

最後に

RaspberryPi でカメラモジュールを使って WebRTC を試してみました
調べると今回の組み合わせを使うケースが多かったので方法的には王道なのかなと思います

試してはないですが、複数人への配信もできると思います
あとはグローバルからアクセスできるようにすれば簡単な生放送配信の出来上がりです

参考サイト

0 件のコメント:

コメントを投稿