ffmpeg
H264

防犯カメラの動画を見る

カメラを買いました

防犯カメラが欲しくて、amazonを物色していたら以下のカメラを見つけました。
SV3C 960P 130万画素 WI-FI 防犯カメラ ネットワークカメラ ワイヤレス IPカメラ

720P、960P、1080Pとバリエーションがあり、値段から960Pの奴に決めました。
レビューを見るとわかりますが、かなりチャレンジングな商品なので、いろいろわかってる人にしかお勧めできません。

カメラの設定と設置

カメラが届いたら、レビューにある写真を参考にレンズ部分の蓋を外してmicroSDカードを入れます。
続いて、ACアダプタとLANを繋いで、iPhoneにインストールしたアプリで無線LANの設定等をします。
そして、smtpサーバの設定やftpサーバの設定、動体検知の設定をすると、動くものを検知すると写真を撮ってメールを送ってくれたり、動画を撮ってftpサーバにアップロードしてくれたりします。

一応販売元から日本語のマニュアルのpdfファイルがメールで送られてくるのですが、なかなかわかりにくいです。

設置は、3本の木ネジで固定します。ただ、屋外でも使えるような外見なのに、ACアダプタは屋内用っぽいので、電源の引き回しは工夫が必要です。

動画が見られない

カメラから送ってくる静止画はjpegなのですが、動画は謎の.264ファイルです。
試しにVLCで開いてみましたが、見ることはできず。

How to play .264 video files from IP cameras/DVRs?

と言うサイトを見つけたので、VLCの設定を変更してみましたが、変化無し。

続いて、

Make camera footage usable in normal players like VLC 1,MPlayer et.al.

と言うサイトを発見。
ここに載っていたプログラムで、謎の.264ファイルをmp4に変換すると、上記VLCの設定で「H264ビデオ デマルチプレクサー」を使うと再生ができた。
しかし、デフォルトの「自動」だと再生できず。

プログラムを真面目に読んでmp4のヘッダとかを正しく付けてあげればそのまま再生できるファイルができそうな気がするけど、面倒なのでffmpegで変換してあげると、無事にデフォルト設定のVLCで再生できるファイルができた。
そこで、以下のようなシェルスクリプトを書いて、変換してあげることにした。(2番目の参考サイトのプログラムをsplit264と言う名前でコンパイルしておくこと)

エラーチェックとかしていないので、元のファイルは消さないようにしている。
引数として.264ファイルがあるフォルダを指定すると、中にある.264ファイルを全てmp4に変換する。

264toMP4
#!/bin/sh

for i in $1/*.264
do

orig=$i
fname=${orig%.*}
mp4=${fname}.mp4
wav=${fname}.wav
tmpf=${fname}.mp4.mp4

if [ -e $mp4 ]
then
continue
fi

split264 $orig
mv $mp4 $tmpf
ffmpeg -i $tmpf -i $wav $mp4
touch -r $orig $mp4
rm -f $tmpf $wav

done