[ Top > FreeBSD > FreeBSDとcamservによるライブカメラ ]

FreeBSD と camserv によるライブカメラの構築方法

2014年3月4日

FreeBSD 9.1-RELEASとportsにあるcamservを利用してライブカメラを構築した。

使用したハード・ソフト

GV-BCTV5EをPCIスロットに刺す。ビデオカメラとGV-BCTV5Eを接続する。

カーネルモジュール

パッチを当てる

GV-BCTV5Eをマシンに自動認識させるため、/boot/loader.conf に以下を追加。
bktr_load="YES"
再起動する。

再起動後,以下のようなメッセージが現れる.
bktr0: <BrookTree 878> mem 0xde000000-0xde000fff irq 5 at device 9.0 on pci0 bktr0: I/O DATA GV-BCTV5E/PCI, Philips NTSC tuner.

camserv のインストールと設定

portsからインストールする.依存するユーティリティーなどもいくつかインストールされる.

# cd /usr/ports/multimedia/camserv
# make install clean

設定ファイルを雛形からコピー.

# cd /usr/local/share/camserv/
# cp camserv.cfg.dist camserv.cfg

/usr/local/share/camserv/camserv.cfg を編集する。私が変更した部分は以下の通り。

まず [video_fbsd_bttv] の部分。最初の [video_basic] における記述を参考にする。

port		0        # ビデオ端子からの入力を指定.チューナーなら1。
channelset	5        # 日本のチャンネル設定.ビデオの場合は無関係。
channel		1        # チューナーを指定した場合に受信するチャンネル。

[jpg_filter] の部分。

quality	150	# デフォルトの100だと画面が荒いがサーバーの負担はいくらか軽くなる。

[time_stamp] の部分。

x	2	# 時間バナーを水平位置(左端からの距離)
y	2	# 時間バナーの垂直位置(上端からの距離)

[socket] の部分。

listen_port   9192  # これはデフォルトのままである.変えてももちろん可。
max_seconds   600   # 接続可能時間.デフォルトの0なら無制限。
                    # max_framesやmax_bytesでの指定でも同じことができる。

[video] の部分。video_section の変更は必須である。

video_section video_fbsd_bttv # FreeBSDの場合は左記のように変更しておく(重要)
maxfps	       2              # 1秒あたりのフレーム数。
                              # 0にすると無制限だが,サーバ
                              # クライアントの負担がともに重くなる。
                              # topコマンドなどで確認しながら設定すると良い。

動画を見るための準備

まず camserv からの動画を見るためのページを用意する。Netscape ( Mozilla ) と Internet Explorer ではファイルが異なる。

Firefox,Safariなどの場合

注意:本来はこの設定でよいはずであるが、FreeBSD 9以降では上手くいかないので参考までに。

以下のような簡単なファイルでよい。<img src=" のあとにcamserv が動作しているマシンのアドレスとポート番号を指定する。

<html>
<head>
</head>
<body>
<img src="http://192.168.100.1:9192/">
</body>
</html>

実際のページの例はこちら

Internet Explorer の場合

Java Script とする必要がある。見本はこちら(ダウンロードしてください)。function reload() のところでサーバーのアドレスとポート番号を指定する。外部に公開する場合のURLについてはMozillaの場合と同様である。

実際のページの例はこちら

実際に見る

サーバー側の操作

camserv を起動する。以下のようなメッセージが出る。

# camserv &
[1] 1649
camserv v0.5.1 - by Jon Travis (jtravis@p00p.org)
# Syntax: camserv <cfg file>
Will try /root/.camserv and /usr/local/share/camserv/camserv.cfg
2005-09-04 12:23:08 [main] Trying to read config file "/root/.camserv":
2005-09-04 12:23:08 [main] Error reading config "/root/.camserv": No such file or directory
2005-09-04 12:23:08 [main] Trying to read config file "/usr/local/share/camserv/camserv.cfg":
2005-09-04 12:23:08 [main] Success reading config "/usr/local/share/camserv/camserv.cfg"
2005-09-04 12:23:08 [camconfig] Using default of "2359296" for [main]:shm_alloc
2005-09-04 12:23:08 [mainloop] Setup signals
2005-09-04 12:23:08 [fbsd_bttv] [video_fbsd_bttv]:device_path unset, defaulting to /dev/bktr0
2005-09-04 12:23:08 [fbsd_bttv] [video_fbsd_bttv]:tuner_path unset, defaulting to /dev/tuner0
2005-09-04 12:23:08 [filter] Loading filter [time_stamp]
2005-09-04 12:23:08 [filter] Loading filter [jpg_filter]
2005-09-04 12:23:08 [fbsd_bttv] Camera Geometry: 320 x 240
2005-09-04 12:23:08 [camconfig] Using default of "0" for [video_fbsd_bttv]:brightnes
2005-09-04 12:23:08 [camconfig] Using default of "100" for [video_fbsd_bttv]:chroma
2005-09-04 12:23:08 [fbsd_bttv] channelset set to 5
2005-09-04 12:23:08 [fbsd_bttv] channel set to 1
2005-09-04 12:24:23 [mainloop] Accepted new socket: 192.168.100.53

最後の行は。クライアントから接続されると表示される。

クライアント側の操作

webブラウザで,以下のようにURLを指定すればよい.
http://192.168.100.1:9192/

インターネットに公開する場合の設定

 自宅サーバーの場合について説明する。


[ Top > FreeBSD > FreeBSDとcamservによるライブカメラ ]