lt raspberry piで動画配信

22
Raspberry Pi でリアルタイム動画配信 -ひよこch 配信- KenichiroMATOHARA(@matoken) http://matoken.org/

Upload: kenichiro-matohara

Post on 11-Jun-2015

2.953 views

Category:

Documents


3 download

DESCRIPTION

第弐回大統一デビアン勉強会( #gumdebianjp )のLT のスライドです. http://gum.debian.or.jp/2013/node/496

TRANSCRIPT

Page 1: Lt raspberry piで動画配信

Raspberry Pi でリアルタイム動画配信-ひよこch 配信-

KenichiroMATOHARA(@matoken) http://matoken.org/

Page 2: Lt raspberry piで動画配信

自己紹介

● KenichiroMATOHARA(@matoken)http://matoken.org/

● 千葉でサーバ管理とかやってましたが3月から鹿児島で就農!

● まさに畑違いに.● でもこれまでの経験を生かして行けたらと思っています

Page 3: Lt raspberry piで動画配信

“新型ロケット”機体載せた車両が国道で立ち往生

Page 4: Lt raspberry piで動画配信

イプシロンロケット試験機による惑星分光観測衛星(SPRINT-A)の打上げ

平成25年8月22日(木)

Page 5: Lt raspberry piで動画配信

Raspberry Pi でリアルタイム動画配信-ひよこch 配信-

Page 6: Lt raspberry piで動画配信

きっかけ

● 卵用に鶏も飼っています● 有精卵を預けて孵してくれるところがある● 40個預けて37個孵る● ひよこ可愛い!

● Raspberry Pi もwebcam もある● 配信してみよう

Page 7: Lt raspberry piで動画配信

ひよこch 配信(してました)justin.tv/matoken

Page 8: Lt raspberry piで動画配信

Raspberry Pi ?

● 手のひらサイズのLinux ボード● 英国でコンピュータ教育向けに作られた.● 値段も$25(model A) / $35(model B)と安い● CPU は ARM を採用しており Linux のイメージが提供されている

– 標準のOS のRasdebian はDebian Wheezy ベース(今はJessie もあるぽい)

– (*BSD 等他の OS を動かしている人も)

● USB x2(model A はx1 )や RJ-45(model Bのみ)や GPIO がついていて色々遊べる.

● HDMI/コンポジット出力なのでTV に映せる.(一般のご家庭でも)

Page 9: Lt raspberry piで動画配信

配信方法

● ブラウザ + Flash は重い● Webcamstudio 以前かじって重い&不安定だった

● 最近のffmpeg は普通にRTMP が使える– RTMP : Real Time Messaging Protocol

– Adobe Flash のストリーミングプロトコル– Ustream.tv/Justin.tv/Radoko とかとか

Page 10: Lt raspberry piで動画配信

早速試す

● 配信サービスはJustin.tv を選択(RaspberryPi で完結できる)

● Raspberry Pi にはWebCam(UVC が楽)とWiFi アダプタPLANEX GW-USHYPER300(r8712u) を接続

– ひよこは離れの小屋にいるのでRJ-45 が無い

Page 11: Lt raspberry piで動画配信

RasPi -+-- USB1 –- Wifi )))) AP -- Justin.tv | +-- USB2 -- WebCam --( (o> piyo ( )

Page 12: Lt raspberry piで動画配信

ffmpeg でRTMP をサーバに投げる(Justin.tv の場合)

● 160x120 で投げてみる.マイクはないので音声は投げていない.

$ padsp ffmpeg -f video4linux2 -s 160x120 -r 15 -i /dev/video0 -vcodec libx264 -f flv "rtmp://live.justin.tv/app/live_xxxxxx_xxxxxxxx"

live_xxxxxx_xxxxxxxx 部分は,Justin.tv にlogin した状態で http://ja.justin.tv/broadcast/adv_other#fmle にアクセスして設定ファイルをダウンロード.そのファイルの中の <stream> タグの中身を書きます.

※Justin.tv はRTMP を投げるだけで配信開始

Page 13: Lt raspberry piで動画配信

ffmpeg でRTMP をサーバに投げる(Ustream.tv の場合)

● ビデオソースをX のデスクトップにしてみている例.音声もあり.

$ ffmpeg -r 15 -s 800x600 -f x11grab -i :0.0 -f alsa -i default -acodec libmp3lame -vcodec libx264 -b 300k -ar 22050 -ab 48k -threads 4 -vsync 1 -y -f flv 'rtmp://x.xxxxx.fme.ustream.tv/ustreamVideo/xxxx/xxxxxxxxxxxxx flashver=FME/3.0\20(compatible;\20FMSc/1.0)'

太線部分のRTMP のURL は,ダッシュボードから配信したい番組のリモートからRTMP URL とストリームキーを結合してつくる.

※Ustream.tv はffmpeg でデータを流し始めた後web管理画面で配信を行わないといけない.

※Raspberry Pi では未だ試していない.PC で確認済み.

Page 14: Lt raspberry piで動画配信

Raspberry Pi でJustin.tv への配信結果…

● frame=39659 fps= 1 q=17.0 size= 279396kB time=37567.14 bitrate= 60.9kbits/s dup=0 drop=64

160x120 でも1fps とか><

Page 15: Lt raspberry piで動画配信

cpu が足りない><

procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----

r b swpd free buff cache si so bi bo in cs us sy id wa

2 0 0 302380 12464 68668 0 0 0 0 4082 244 91 9 0 0

2 0 0 302324 12464 68672 0 0 0 0 4053 190 99 1 0 0

1 0 0 302372 12464 68668 0 0 0 4 4067 204 95 5 0 0

1 0 0 302372 12464 68668 0 0 0 0 4058 128 100 0 0 0

2 0 0 302208 12464 68668 0 0 0 0 4047 188 92 8 0 0

1 0 0 302372 12464 68668 0 0 0 0 4089 151 99 1 0 0

1 0 0 302364 12464 68668 0 0 0 0 4125 172 96 4 0 0

1 0 0 302364 12472 68668 0 0 0 68 4049 140 97 3 0 0

1 0 0 302372 12472 68668 0 0 0 0 4047 172 97 3 0 0

1 0 0 302372 12472 68668 0 0 0 0 4047 116 100 0 0

Page 16: Lt raspberry piで動画配信

クロックアップを試みる

● Raspberry Pi の設定コマンドから

$ sudo raspi-config

overclock Configure overclocking

で一番上のTurbo にしてみる&reboot …

Page 17: Lt raspberry piで動画配信

frame= 174 fps= 2 q=19.0 size= 658kB time=51.14 bitrate= 105.4kbits/s dup=0 drop=55 p=40

しかし2fps><

Page 18: Lt raspberry piで動画配信

とりあえず運用

● よく切断されるようになる(ffmpeg が落ちる)

– Shell Script でffmpeg を無限ループにした● あるときから全然配信できなくなる(ffmpeg が起動して配信開始前にffmpeg が落ちる)

– 電源付きUSB ハブ経由でカメラ&WiFi を繋いだら安定した( Raspberry Pi のUSB は140mA しか電流が流れません>< )

Page 19: Lt raspberry piで動画配信

実用度

● 1, 2fps とはいえひよこの状態がいつでも見られる

● 温度計(物理) で温度が確認できたり● 餌や水が減ったのがリモートで解ったり

– ひよこは日々成長するので餌の量がどんどん増える

● 案外実用的

Page 20: Lt raspberry piで動画配信

これから

● ハードウェアエンコードできるようにしたいですが….– いくつか情報をもらっていますが今のところうまく行っていません

● 画面上に温度なども合成したい.– 温度センサから温度管理もしたい(ヒーターの制御も)

● 次のひよこがやって来るまでにUpdate を…

Page 21: Lt raspberry piで動画配信

孵卵器から出た直後

食欲が旺盛になってきた3日令

猫が興味津々過ぎてヤバイ

Page 22: Lt raspberry piで動画配信

あの頃の可愛さはどこへ…