31
35

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

RaspberryPIから動画ストリーミング

Last updated at Posted at 2016-10-09

実現したいこと

  • RaspberryPIで動画ストリーミング配信
  • カメラの候補は、UVC対応カメラが第1候補。(難しければpicameraでも妥協できる)
  • クライアントはAndroidスマホ。屋外で使う。

実現したいのは上記ですが付随していろいろ調べたのでそれのメモです。
ほぼ既存情報へのポインタですが参考になる人がいるかもしれないので投稿します。

機材(2016/10/10追記)

結果

最初に結果を。

表1. picamera

構成 RaspPI(host) 解像度(host) PC(client) Android(client) 遅延 コメント
1 gst(udp) 1280x720 gst(udp) (見つからず) androidアプリが見つからず
2-1 gst(tcp) 320x200 (試してない) ※1 スマホを縦<->横位置にするとしばらく表示がおかしい
2-2 gst(tcp) 640x480 (試してない) ※1 超大 ↑同上
3 WebRTC(uv4l) 1920x1080 chrome chrome ホスト側でweb serverを立ち上げる必要あり。クライアント側はブラウザがあれば見れる

表2. USBCam(RICOH THETA S)

構成 RaspPI(host) 解像度(host) PC(client) Android(client) 遅延
1 gst(udp) 1280x720 gst(udp) (見つからず)
2-1 gst(tcp) 320x200 (試してない) ※1
3 WebRTC(uv4l) 1920x1080 chrome chrome

※1

RaspberryPi Camera Viewer

RaspberryPI側の準備

  • GStreamerのインストール
    gstreamerでストリーミング配信する場合に必要(表1の1,2-1,2-2の構成)

sudo apt-get install gstreamer1.0 gstreamer1.0-tools

THETA S + Raspberry Pi 2でライブストリーミングしてみた

  • WebRTC(uv4l)関連パッケージのインストール
    WebRTC(uv4l)でストリーミング配信する場合に必要(表1の3の構成)

Raspberry Pi3とUSB WEBカメラでストリーミング

ストリーミング(gstreamer(udp))

  1. picamera

下記記事に従って実施

GStreamerでRaspberry Piからストリーミング配信をする

raspivid -n -w 1280 -h 720 -b 4500000 -fps 30 -vf -hf -t 0 -o - | gst-launch-1.0 -v fdsrc ! h264parse ! rtph264pay config-interval=10 pt=96 ! udpsink host=[配信対象のIPアドレス] port=9000

  1. USB Camera(UVC対応カメラ)

下記記事に従って実施

THETA S + Raspberry Pi 2でライブストリーミングしてみた

所謂WebCamが手元になかったのでUVC対応しているTheta Sで確認

gst-launch-1.0 v4l2src ! videoconvert ! omxh264enc ! rtph264pay pt=96 config-interval=1 ! udpsink host=[配信対象のIPアドレス] port=9000

ストリーミング(gstreamer(tcp))

下記アプリのgoogle playで見れるアプリ説明欄に従って設定

RaspberryPi Camera Viewer

raspivid -n -w 320 -h 200 -b 2000000 -fps 30 -vf -hf -t 0 -o - | gst-launch-1.0 -v fdsrc ! h264parse ! rtph264pay config-interval=10 pt=96 ! gdppay ! tcpserversink host=192.168.0.24 port=9000

ストリーミング(WebRTC)

下記記事に従って実施

Raspberry Pi3とUSB WEBカメラでストリーミング

観る(client)

1.PCで観る

表1の1のケース。下記リンクを参考。

GStreamerでRaspberry Piからストリーミング配信をする

ちなみにWindwos10 Anniversary Updateでは下記リンクからたどれるgstreamerはインストールはできますが(警告あり)、起動できませんでした。

2.Androidで観る

表1の2-1,2-2のケース。下記アプリを使用。

RaspberryPi Camera Viewer

3.WebRTC(uv4l)

下記記事に従って実施。P2Pなので複数クライアントは同時接続できない(?)。

Raspberry Pi3とUSB WEBカメラでストリーミング

Wifi direct

スマホ<->RaspberryPI直結はWifi Directで実現する。
下記をほぼそのままなぞってできました。
自宅のLANのIPアドレスが192.168.0.* なので
hostapdのアドレスは192.168.1.20 にしました。

Raspberry PiとスマートフォンをWiFiでアドホック接続

その他

  • uv4l関連のパッケージをインストールしたら、USBCamが認識されなくなってしまった。lsusbではリスト表示されるが、/dev/video* にでてこない。uv4lを実行すると、/dev/video2 とかを新規に作るみたい。

まとめ

試したレベルで理解できていないところが多いので結論がだせないが、
今回の目的に対しては、WebRTC(uv4l)にするのがよさそうである。
ただ,uv4lを使うとUSBCamが認識できなくなって困りそうなのと遅延が大きい。
WebRTCももう少し基礎から理解する必要あり。

31
35
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31
35

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?