超初心者がLinux motionを使ってWebカメラでライブ配信に挑戦


ubuntuでWebカメラを使う時に「motion」というソフトが非常に有名らしいです。

tamanは以前に Webカメラで雲の動きや太陽の動きをインターバル撮影(微速度撮影)して 撮影した画像(jpg)をつないで Linux Motionで遊ぶ 動画(avi)を作りました。

ハイビスカスの開花もupしていますが、まだ勉強中なので下手ですけどご覧ください。
 太陽の動きやお月様又は雲が動いていく様子は普段あまり気にしていないですけど、 あらためて動画にして観るとこれがまた面白いんだなぁ~!


この時にmotionをネットで検索して「防犯カメラ構築」とか「ライブ配信」など面白そうな記事があるのを見つけた。
ちょっと読んでみたらとっても面白そうなのでぜひやってみたくなって今回、 motionを使ってライブ配信が出来るまでの設定等を、いろんな方のサイトを参考にして作ってみました。(Tamanの備忘録です)

超初心者(PC歴3年3ヶ月,51歳のオヤジ)の作った物ですので、間違いがあると思います。あたたかい目で見てやってください 


Tamanがパソコンを始めた経緯はこちらから  超初心者は固まってしまった

Webカメラで防犯カメラサーバー構築  3台のWebカメラで防犯カメラサーバー構築 2013年3月25日作成

 
写真をクリックすると防犯カメラ映像(動画)が不定期ですが見れる場合もあります・・・
test公開中~!Javaをinstallする場合もあるかな? セキュリティ警告が出るが心配しないでね! チェックを入れて「実行」するとTaman宅の防犯カメラ映像(動画)が見れると思います!

観れない場合(いつもだけど・・・)はYouTubeにupした動画がありますのでこちらをごらんください。写真をクリックするとYouTubeにupした動画見れます。

 
3台のWebカメラで防犯カメラサーバー構築

Taman宅の防犯カメラ(Live映像)  Taman宅の防犯カメラ(Live映像) 2014/07/13停止





Motionをinstall,設定


詳しく書かれたマニュアルのサイトです。Motion WebHomeページ(英語)
Tamanは英語が苦手なのでブラウザの翻訳機能を使って閲覧しました。
一番下に参考にしたサイトもリンクしてますので合わせてご覧ください!


tamanの環境です!

 OS Ubuntu Server 10.04 LTS  Tamanの自作atomサーバー
 ApacheでWebサーバーが構築されている
 Webカメラ iBUFFALO 130万画素Webカメラ BSW13KE09HBK
       (ヤマダ電機の特売で¥500円で購入、ラッキーでした)
 確認用PC(Lan内) Windows xp
 確認用PC(Lan外) 自宅近くの家電量販店の展示パソコン 
 サーバーをssh接続してWindows xpで操作してます




 最初にmotionのインストール

  $ sudo apt-get install motion

 motion基本設定ファイル /etc/motion/motion.conf を編集

  $ sudo nano /etc/motion/motion.conf

=================================================

# Rename this distribution example file to motion.conf
#
# This config file was generated by motion 3.2.12
##############################################
# Daemon
##############################################

# Start in daemon (background) mode and release terminal (default: off)
daemon off  設定ファイルがある程度落ち着くまではoffの方がいいみたい 


##############################################
# Capture device options
##############################################
# Videodevice to be used for capturing (default /dev/video0)
# for FreeBSD default is /dev/bktr0
videodevice /dev/video0

途中略

width  640
height 480
##############################################
# Image File Output
##############################################
# Output 'normal' pictures when motion is detected (default: on)
# Valid values: on, off, first, best, center
# When set to 'first', only the first picture of an event is saved.
# Picture with most motion of an event is saved when set to 'best'.
# Picture with motion nearest center of picture is saved when set to 'center'.
# Can be used as preview shot for the corresponding movie.
output_normal off       動体感知した画像を保存しない

##############################################
# FFMPEG related options
#File (mpeg) file output, and deinterlacing of the video input
The options movie_filename and timelapse_filename are also used
# by the ffmpeg feature
##############################################
# Use ffmpeg to encode mpeg movies in realtime (default: off)
ffmpeg_cap_new off      (動体感知しても)動画作成をしない

##############################################

途中略

##############################################
#Snapshots (Traditional Periodic Webcam File Output)
##############################################
# Make automated snapshot every N seconds (default: 0 = disabled)
snapshot_interval 60     60秒間隔で撮影

##############################################
# Target Directories and filenames For Images And Films
# For the options snapshot_, jpeg_, mpeg_ and timelapse_filename
# you can use conversion specifiers
# %Y = year, %m = month, %d = date,
# %H = hour, %M = minute, %S = second,
# %v = event, %q = frame number, %t = thread (camera) number,
# %D = changed pixels, %N = noise level,
# %i and %J = width and height of motion area,
# %K and %L = X and Y coordinates of motion center
# %C = value defined by text_event
# Quotation marks round string are allowed.
##############################################
保存するディレクトリの変更
60秒間隔で撮影したSnapshots jpgファイルを置く場所に設定してます
# Target base directory for pictures and films
# Recommended to use absolute path. (Default: current working directory)
#target_dir /tmp/motion (#追加)
target_dir /var/www/homepage/motion_jpg (追加)
     ※ /var/www/~ は自分の環境に合わせる

途中略
#snapshot_filename %Y%m%d%H%M%S-snapshot
snapshot_filename %S-snapshotに変更

この設定だとファイルに00-snapshot.jpg が付けられて、上書きされるので写真は1枚だけです。
まずはデフォルト設定でやってみるのがいいですね!
でも・・・、どんどんファイルが溜まっていって大変になる・・・ 
1時間で60枚
1日で1440枚
1ヶ月(31日)で44640枚
jpgファイル18kbとして1ヶ月803MBになる・・・

シェルによるプログラムを作って、ローティションやバックアップを定期的に取れれば良いのですが、まだ勉強を始めたばかりで・・・ 


=================================================

  motion設定ファイルの編集前にやってね 

target_dir /var/www/homepage/motion_jpg (ディレクトリを作るが名前はご自由に)
端末で
$ sudo mkdir /var/www/homepage/motion_jpg

ファイルやディレクトリの所有者を変更

$ sudo chown -R taman515 /var/www/homepage/motion_jpg

ユーザー名 /var/www/~ は自分の環境に合わせる


=================================================

再びmotion設定
##############################################
# Live Webcam Server
##############################################
# The mini-http server listens to this port for requests (default: 0 = disabled)
webcam_port 8081
# Quality of the jpeg (in percent) images produced (default: 50)
webcam_quality 50
# Output frames at 1 fps when no motion is detected and increase to the
# rate given by webcam_maxrate when motion is detected (default: off)
webcam_motion off
# Maximum framerate for webcam streams (default: 1)
#webcam_maxrate 1
webcam_maxrate 4 (4fps/1秒に4コマ,自分の環境に合わせる)
 2012年12月13よりwebcam_maxrate 1 に変更,だって空の様子だからね!

# Restrict webcam connections to localhost only (default: on)
webcam_localhost off ローカルホスト以外もライブ映像を配信
# Limits the number of images per connection (default: 0 = unlimited)
# Number can be defined by multiplying actual webcam rate by desired number of seconds
# Actual webcam rate is the smallest of the numbers framerate and webcam_maxrate
webcam_limit 0

##############################################
# HTTP Based Control
##############################################
# TCP/IP port for the http server to listen on (default: 0 = disabled)
#control_port 8080
control_port 0
ブラウザからコントロールしない


=================================================


 nanoエディタ保存は
   Ctrl + o を同時に押して,その後にEnterを押すと保存される
   Ctrl + x でnanoエディタを抜ける




 Tamanのネット環境



SoftBank ADSL 12M契約で
実測値 下り 3.20Mbps (399.81KB/sec)
    上り 0.72Mbps ( 90.55kB/sec) という結果・・・

低速なのでwebcam_maxrate 4  4fps/1秒の設定になった
 2012年12月13よりwebcam_maxrate 1 1fps/1秒に変更
  空(雲)の様子だから1fps/1秒で十分だね!







motionを動かしてみる

 motion起動

    $ sudo motion

    端末にログが出力されて動作が確認出来る


うまく起動したようだ。
/var/www/homepage/motion_jpg ディレクトリに
スナップショット00-snapshot.jpgが保存されている。

ブラウザでライブ映像が見れた! 



Lan内のPC(Windows xpを使用)から ブラウザFirefoxを起動して
http://192.168.X.X:8081にアクセスしてライブ映像が見れる事を確認する
(Tamanの環境はhttp://192.168.3.2:8081)

 IE8では見れませんでした 

 Google Chromeは静止画になっている、なんでかなぁ?

           (2013年1月現在,Google Chromeでも動画で見れます)

  Firefoxはバッチリ動画(4fps)が映りました。雲が動いてるよ! 


 終了は起動したターミナルでCtrl+Cを押す




motion 基本設定ファイルの変更

motion 基本設定ファイル /etc/motion/motion.conf の設定を自分にあった様に変更する。 motionを停止して設定を変更し起動するが再起動コマンドはここでは使わない!

(例)
width  320
height 240

output_normal on
snapshot_interval 600     10分間隔で撮影
webcam_quality 85

お好みで設定しますが、少しづつ変えた方がミスが減るかも・・・



 設定が固まったらmotionをデーモンとして動かす為に
 /etc/default/motionをnano (テキストエディタ)で編集

  $ sudo nano /etc/default/motion

    start_motion_daemon=noをyesに変える


保存して閉じる


今度はmotion基本設定ファイル /etc/motion/motion.confを開いて
daemonをonに変更する。

  $ sudo nano /etc/motion/motion.conf

##############################################
# Start in daemon (background) mode and release terminal (default: off)
daemon on
##############################################

# File to store the process ID, also called pid file. (default: not defined)
process_id_file /var/run/motion/motion.pid


保存して閉じる





 Motion起動

  $ sudo motion

あれ?動かない・・・
調べてみると、
デーモン起動ONの場合は設定ファイルにprocess_id_fileとして定義されているプロセスID記録用のディレクトリは デフォルトでは無いので以下のコマンドで作成すると起動が出きるようだ。

  $ sudo mkdir /var/run/motion


  これで $ sudo motion と入力すると motion が起動する

よし、起動したぞ!うまくいった~ 

       2013年4月20日(土)追記
       2013年9月26日(木)追記



Deamon on 設定後の motion.conf ファイルの修正手順だが正しいかなぁ~?



 motion start

   $ sudo /etc/init.d/motion start


 motion stop

   $ sudo /etc/init.d/motion stop


 motion restart

   $ sudo /etc/init.d/motion restart


 ファイル修正後に再読み込み

   $ sudo /etc/init.d/motion reload




Tamanからお知らせ

これはあくまでも個人的なメモであり、この通りにやって 不具合が生じても保証の限りではありません(免責事項)




インターネットからアクセス出来るようにする

 インターネット側で観る設定 Tamanはこの設定をしなくてハマリました・・・ 

 ポートフォワーディング設定でルーターの8081番ポートを開放する
      (Tamanの場合はYahoo BBトリオモデム3-Gplus設定)












 ここでOSの開いているポートを調べる「nmap」 というポートスキャンツールを使う。
  「nmap」を利用すれば、対象のマシンの開いているポートを確認(スキャン)することができる。

 インストールは端末で

   $sudo apt-get install nmap

  TCP で使用しているポートのスキャン
   $ sudo nmap -sTV localhost

  UDP で使用しているポートのスキャン
   $ sudo nmap -sUV localhost

   自分のサーバーのチェック以外には決して利用しないようにしてね! 




 サーバーOS側の8081番ポートの開放をする (Tamanはubuntu server標準のufwを有効に設定してます)

   $ sudo ufw allow 8081/tcp



     ※ ufwを有効に設定していない場合は必要ありません





 Lan内からは観れないので自宅近くの家電量販店の展示PCを使って確認した

 http://<ホスト名 or ドメイン名 or サーバーのIPアドレス>:8081にアクセス

      http://taman515.dip.jp:8081   (tamanの場合です)


 IE9では見れませんでした・・・


 Google Chromeはやっぱり静止画になっている

        (2013年1月現在,Google Chromeでも動画で見れます)

 Firefoxはバッチリ動画(4fps)が映りました 





パソコンおやじ  /WWWサーバテスト



 インターネット側から自宅WWWサーバにアクセスできるパソコンおやじ/WWWサーバテストさんを利用する方法もあります。

  外出せずに自宅PCからサーバーが動いているか確認するサイトです。  本当にありがたいことです 

 30Kbyte以下のサイズのコンテンツはであれば利用できるそうです



 FirefoxからWWWサーバテストさんにアクセスしてSite URL:http://taman515.dip.jp:8081/を入力

 Firefoxはバッチリ動画(4fps)が映りました 

 次はGoogle ChromeからWWWサーバテストさんにアクセスしてSite URL:http://taman515.dip.jp:8081/を入力

 Google Chromeはなぜか静止画、ページを更新すると新しい画像になる・・・無理かな?

   今はupdateを重ねて動画で見れる (2013年1月現在)



 最後にIEからWWWサーバテストさんにアクセスしてSite URL:http://taman515.dip.jp:8081/を入力

すると、
「ファイルのダウンロード」画面が出る

 IE8では見れないようだ 

キャンセルをクリックして閉じる





ブラウザを選ばないページを作成する


しかし・・・

 ある資料によると、Firefoxの国内シェアは2012年8月1日で17.9%ということなのでこのままでは
   数少ないTamanのサイトに訪れた8割強の人がライブカメラ動画を見れないことに・・・
 また、Webブラウザシェアで
 50%近い人がWindows Internet Explorerを使っているのでIEで観れないのが一番残念・・・ 

そこで
Javaアプレットを使ってブラウザを選ばないHTMLページ(IEでもGoogle Chromeでも観れる)を作成する事にした


写真が完成したページで、
自宅近くの家電量販店の展示パソコンで確認した時の写真です。
1分毎更新の静止画像(jpg)はバッチリ配信出来ていたんだが、
ストリーム配信動画(4fps)がうまく表示出来ずに苦労しました・・・
(原因は8081番ポートの未開放でした)
2階の部屋からのWebカメラで東側の空を撮影して
雲が動いているのを確認出来た時、超うれしかった 

クリック 沖縄ライブカメラ 糸満市より中継 10分間隔で更新
      自動で最新画像に切り替わります
       夜はご覧になれませんが、お月様が見れる時もあります



 参考までに
Javaアプレットを配布しているのはどんなサイトかな?
http://www.charliemouse.com:8080/ ホーム
左メニューSoftwareからCambozolaをクリックして
Downloading
Download Cambozola as a .tar.gz file
このファイルをダウンロードするんだな
http://www.charliemouse.com:8080/code/ ファイル置き場
http://www.charliemouse.com:8080/code/cambozola/ DLページ
Tamanはzip fileをWindows xpにDLして内容を確認しました。
なるほど勉強になります




 ubuntu server10.04LTSが入っているPCにDLするやり方はこちら
  cambozola streaming image viewerのダウンロード
  $ sudo wget http://www.charliemouse.com:8080/code/cambozola/cambozola-latest.tar.gz


  ファイル解凍
  $ sudo tar zxvf cambozola-latest.tar.gz

  cambozola streaming image viewerをWebサーバの公開ディレクトリに配置
  $ sudo cp /home/taman515/cambozola-0.92/dist/cambozola.jar /var/www/homepage/
  ※ /home/taman515/var/www/homepage/ は自分の環境に合わせる

  ダウンロードした cambozola streaming image viewerを削除
  $ sudo rm -rf /home/taman515/cambozola-latest.tar.gz

 下記の内容を記述したHTMLページを作りサーバの公開ディレクトリに配置
        ※Tamanの場合は /var/www/homepage/に配置した



 webcame.html ページ(Lan内Test用です)
  ========================================================
<html>
<title>Live camera</title> ※
<body>
<h1>Itoman Live camera</h1> ※
<applet code="com.charliemouse.cambozola.Viewer"
archive="cambozola.jar" width="480" height="360">
<param name="url" value="http://192.168.0.2:8081"></param>
</applet>
</body>
</html>
  =========================================================


ブラウザ ( IE,firefox,Google Chrome ) からアクセスすると下のような指示が出たらJavaの実行を許可して下さい

 ライブ画像が見られない方はJavaをインストールする必要があります。

               無料Javaのダウンロード



セキュリティ警告”が表示されますが心配いりません!ボックスにチェックを入れ、 『実行』をクリックしてアプリを起動して下さい



これで観れるようになります 

下の写真が作成したHTMLページだが、ちょっとかっこ悪い・・・ 


Webに公開するときはアドレスを変え下さい。

<applet code="com.charliemouse.cambozola.Viewer"
archive="cambozola.jar" width="480" height="360">
<param name="url" value="http://taman515.dip.jp:8081"></param>
</applet>

 ※title、ドメイン名 or サーバーのIPアドレスは自分の環境に合わせる



 自分で好みのページを作ってサーバーにupして公開する。
   実際に作成して公開したページは
   http://devoutaman515.dip.jp/webcame.html です

 ブラウザで確認
  自宅Lan内からは観れない・・・
  WWWサーバテストさんはJava Appletは動作しませんので、自宅近くの家電量販店の展示PCを使って
  作成したhtmlページに IE9 ,Firefox ,Google Chromeでアクセスして確認しました。
  OKバッチリ映ってました!
  ただし、展示PCにJavaがインストールされていない場合は観ることが出来ません 
  お友達のPCで確認が出来るといいですね!
  IEとGoogle Chromeで観れるようになったのはうれしいね 


Motionを自動起動したい・・・

停電でサーバーが停止した後に電力が復旧した場合、PCの電源を入れるとApache HTTP Serverは直ぐに起動するがMotionは手動じゃないと立ち上がらない・・・
そこで Ubuntu + Motion で監視カメラシステム構築 を参考にして、
自動起動ファイルを修正してMotionの自動起動をやってみました。


Motion の自動起動ファイル修正の手順

===============================================
まずMotionの停止

$ sudo /etc/init.d/motion stop

自動起動ファイルを修正

$ sudo nano /etc/init.d/motion

   51行目あたり
   
case "$1" in
  start)
    if check_daemon_enabled ; then
        if ! [ -d /var/run/motion ]; then
               mkdir /var/run/motion
        fi
        chown motion:motion /var/run/motion

    log_daemon_msg "Starting motion detection daemon : $NAME"
  if start-stop-daemon --start --oknodo --exec $DAEMON -b ; then
              log_end_msg 0
          else
              log_end_msg 1
              RET=1
          fi
     fi
     ;;   

修正後、保存して閉じる

===============================================

PCを再起動してMotionが自動起動するのを確認できました!

2013年10月25日(金)追加


Tamanからお知らせ
これはあくまでも個人的なメモであり、この通りにやって 不具合が生じても保証の限りではありません(免責事項)





最後に 
=======================================
以下の方々のサイトを参考にしてストリーミング配信が出来ました、ありがとうございます

自宅サーバー Debian/Ubuntu/Motionでライブカメラ+動体検知サーバー構築


Weblog/LinuxでWebカメラを使う(ストリーミング配信)[motion]


Papa-Net/ライブカメラサーバー(motion)


迷途覚路夢中行/サーバーでライブ映像配信〔11〕


Index of /.Phantom/Ubuntuで監視カメラ


監視カメラ(動体検知・メール通知・クラウドへ保存)をUbuntuで構築する


2012年8月11日(土)作成  2013年1月31日修正



ページのトップへ戻る


メニュー

ホームサーバーRING
| サイト一覧 |
前5 | ランダム | 次5
自宅サーバーの輪
<<前5 <前 ランダム 次> 次5>>
inserted by FC2 system