まずは、前準備としてRaspberry Piにカメラモジュールが正しく接続されていることを確認しよう。
raspi-configを起動してEnable Cameraを<Enable>に設定し、ビデオ出力をH.264で圧縮して出力するコマンドraspividが使えることを確認しておく。
$ raspivid --help
カメラモジュールの確認が済んだら、次にLIVE555のソースをダウンロードして解凍する。解凍の結果、liveというディレクトリができる。
$ wget http://www.live555.com/liveMedia/public/live555-latest.tar.gz
$ tar zxvf live555-latest.tar.gz
このliveディレクトリに移動してコンパイルする。
$ cd live
$ ./genMakefiles linux
$ make
さらにtestRaspiのソースをこちらからダウンロードする。liveディレクトリでこれを解凍すると、その下にraspiディレクトリができる。このraspiディレクトリに移動する
$ tar xvzf testRaspi.tar.gz
$ cd raspi
このraspiディレクトリにあるMakefileの一部を次のように変更する。
COMPILE_OPTS = $(INCLUDES) -I. -O2 -DSOCKLEN_T=socklen_t -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -DACCESS_CONTROL
もう1つ、このraspiディレクトリにあるtestRaspi.cppの一部を次のように変更する。
#ifdef ACCESS_CONTROL
// To implement client access control to the RTSP server, do the following:
authDB = new UserAuthenticationDatabase;
authDB->addUserRecord("pi", "raspberry"); // replace these with real strings
// Repeat the above with each , that you wish to allow
// access to the server.
#endif
最後にtestRaspiをコンパイルする。
$ make
コンパイルが成功するとカレントディレクトリにtestRaspiができているはずだ。これを実行するとH.264で圧縮されたカメラの映像がRTSPプロトコルによってストリーミング配信される。
$ raspivid -w 1280 -h 720 -fps 25 -b 10000000 -t 99999999 -o - | ./testRaspi
"h264" stream, from the file "stdin"
Play this stream using the URL "rtsp://192.168.1.80:8554/h264"
(We use port 8000 for optional RTSP-over-HTTP tunneling.)
PC上のVLCプレーヤーから、表示されたURL(この例ではrtsp://192.168.1.80:8554/h264)にアクセスして確認する。VLCプレーヤーは、ユーザ名とパスワードを聞いてくるので、上記のtestRaspi.cppに設定したもの(この例では、pi/raspberry)を指定する。
※この方法では、恐ろしく大きなdelay(10秒以上)が生じたが、こちらの方法ではもう少しdelayが抑えられた。