LoginSignup
15
23

More than 5 years have passed since last update.

必ず成功する(はずの)Raspberry Piを使ったRTMPによるストリーミング配信の手順

Last updated at Posted at 2018-03-29

はじめに

ストリーミングで動画を配信する必要がでてきて、テストしたら思いのほか簡単にできたのでその手順を以下にまとめます。

nginxでRTMPサーバを構築

以下のURLのとおり実行。

nginxでストリーミングサーバを立ててライブ配信する。

ちなみに、nginxの設定ファイルの中にあるhttpのserverのlocationの場所に以下の項目を追加しないと外部からの読み出しができず、Windowsのブラウザでストリーミングを再生できません。

add_header Access-Control-Allow-Origin *;

...これがわかるまでに何時間もかかってしまった(-_-;)

Raspberry Piの環境構築

  1. OSをインストール
  2. ネットワークに接続
  3. USBカメラを接続

以上。

FFMpegのインストール

以下のコマンドを実行。

sudo apt update
sudo apt install -y ffmpeg

もし気になる方は再起動。

sudo reboot

ストリーミング配信

音声なし

以下のコマンドを実行。
なお、「your ip」はRTMPサーバのIPアドレス、「your key」は任意の英数文字列に変更して下さい。

例:「your ip」は「192.168.1.10」、「your key」は「sample」など

/usr/bin/ffmpeg \
-f v4l2 -thread_queue_size 8192 -input_format yuyv422 -video_size 640x360 -framerate 8 -i /dev/video0 \
-c:v h264_omx  \
-f flv "rtmp://[your ip]/live1/[your key]"

音声あり

USBカメラにマイクが内臓されている場合、以下のコマンドで音声つきで配信できます。

/usr/bin/ffmpeg \
-f alsa -ac 1 -thread_queue_size 8192 -i hw:1 \
-f v4l2 -thread_queue_size 8192 -input_format yuyv422 -video_size 640x360 -framerate 8 -i /dev/video0 \
-c:v h264_omx -b:v 768k -bufsize 768k -vsync 1 -g 16  \
-c:a aac -b:a 128k -ar 44100 \
-f flv "rtmp://[your ip]/live1/[your key]"

できた!

備考

USBカメラの機種によっては、コマンドを終了させた後に再度実行するとエラーになるものがあるようです。その場合はUSBカメラを取り外し、再度取り付けてからコマンドを実行すると配信できるようになります。

15
23
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
15
23