経緯
お仕事で、RTSPストリーミング配信をするWebカメラが必用になった時、手元に RaspberryPi(とカメラモジュール) があったので、Webカメラは購入せずに RaspberryPi で代替えしようと検討してみました。
で、結局、H265の配信方法が分からなく、アマゾンセール 5,000円 のWebカメラを買いました。。。
面倒なことを考えたくない人は、アマゾンセールとかでWebカメラの購入をお勧めします。
動画配信の種類と使い方
ダイレクト UDP ストリーミング
ざっと調べた感じでは、omxplayer 以外ではストリーミング配信を受信できないっぽいです。
なので、ストリーミング配信端末と視聴端末は、どちらもRaspberryPiである必用がありそうです。。。
-
ストリーミング配信元 RaspberryPi
$ raspivid -a 12 -t 0 -w 1920 -h 1080 -hf -ih -fps 30 -o udp://#:5000
#
はストリーミング配信先のIPアドレスです。 -
ストリーミング受信側 RaspberryPi
$ omxplayer --win 0,0,800,480 udp://@:5000
ダイレクト TCP ストリーミング
この方法もストリーミングの視聴アプリに制限がありそうです。
VCL では視聴できますが、mplayer での視聴方法が分からなかった。。。
-
ストリーミング配信元 RaspberryPi
$ raspivid -a 12 -t 0 -w 1920 -h 1080 -vf -ih -fps 30 -l -o tcp://0.0.0.0:5000
-
VLC での視聴方法
メディア(M) ⇒ ネットワークストリームを開く(N) ⇒ ネットワークURLを入力してください
に下記を入力して再生
ボタン押下```text tcp/h264://#:5000 ```
raspivid コマンドお主なオプション
- -a 12 # annotate
- -t 0 # timeout disabled (default=5s)
- -w 1280 # width
- -h 720 # height
- -hf # horizontal flip
- #-vf # vertical flip
- -ih # insert inline headers to stream
- -fps 30 # frames per second
- -o udp://192.168.1.10:5000 # 動画を受信する RaspberryPi のIP:Port
RTSPストリーミング
v4l2rtspserver
-
インストール
$ sudo apt-get install cmake $ cd ~/ $ git clone https://github.com/mpromonet/v4l2rtspserver.git $ cd v4l2rtspserver $ cmake . $ make $ sudo make install
-
カーネルモジュールのロード
$ sudo modprobe bcm2835-v4l2
-
ストリーミングサーバ起動
$ v4l2rtspserver -W 1920 -H 1080 -F 30
ストリーミング配信されるビデオフォーマットはH264のようです。
コンパイルログを見る限りH265にも対応してそうな感じですが、指定方法が分からなかった。。。
gstreamer
-
ライブラリのインストール
$ sudo apt-get install gstreamer1.0 gstreamer1.0-tools $ sudo apt-get install libglib2.0-dev $ sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
-
gstreamer server のインストール
$ cd ~/ $ wget https://gstreamer.freedesktop.org/src/gst-rtsp-server/gst-rtsp-server-1.10.4.tar.xz $ tar -xf gst-rtsp-server-1.10.4.tar.xz $ cd gst-rtsp-server-1.10.4 $ ./configure $ make $ sudo make install
-
gstreamer の RaspberryPi カメラモジュールのインストール
$ cd ~/ $ git clone https://github.com/thaytan/gst-rpicamsrc.git $ cd gst-rpicamsrc/ $ ./autogen.sh $ make $ sudo make install
-
ストリーミングサーバ起動
$ ${HOME}/gst-rtsp-server-1.10.4/examples/test-launch --gst-debug=3 "( rpicamsrc bitrate=10000000 awb-mode=tungsten preview=false ! video/x-h264, width=1920, height=1080, framerate=30/1 ! h264parse ! rtph264pay name=pay0 pt=96 )"
ストリーミング視聴法
-
VLC での視聴方法
'メディア(M) ⇒ ネットワークストリームを開く(N) ⇒ ネットワークURLを入力してくださいに下記を入力して
再生` ボタン押下```text rtsp://192.168.179.109:8554/unicast ```
-
mplayer での視聴方法
$ mplayer rtsp://192.168.179.109:8554/unicast