title_parttitle_parttitle_part
静岡県浜松市であれこれソフトを開発している A.K.I Software のブログです。日々の開発日記やサーバー・セキュリティ関連の話題なども掲載。
<< 2024/04 >>123456789101112131415161718192021222324252627282930
《《《 ネットワーク機器の購入は Amazon で! 》》》
Powered by BLOM Tenvis JPT3815W 解析?
小さくも大きくも閉じたりもしません
13/06/06 14:57 / 雑談

なんかリクエストがかかったので・・・

Tenvis JPT3815W に http 経由で videostream.cgi にアクセスすると、延々とデータをぶん投げてきます。

http でアクセスして飛んでくるデータを、オレオレツールでファイルにキャプチャしてみました。

photo

このようなケースを想定して予め作っていたソフトがあるので(大嘘)

photo


どこから見ても、http ヘッダです(当然)
Content-type を見ても image/jpeg なので、単純な JPEG フォーマットです。
Content-length に 50300 とあるので、そこまですっ飛ばしてみますと・・・

photo


当たり前ですが、http ヘッダがあります。
JFIF ヘッダ(Jpeg フォーマットのヘッダの一部)もあるし、切り出してみます。

photo


もう、まんま Jpeg ファイルでした(笑)
なるほど、いわゆる Motion JPEG って奴になるのかな?(動画は余り詳しくはありません)

Firefox / Chrome は Server push モードが使える書いてあるので、ストリーミングプロトコルとプラグインで対応しているとか思ったのですが、要は Firefox / Chrome は元々 Motion JPEG の再生に対応しているので、それが飛んできたら勝手に再生してくれるという仕組みのようです。

さて、内容はわかったので、録画を考えてみます。

1)とりあえず http で頑張ってダウンロードする。

幸いにも Content-type と Content-length で1枚の Jpeg づつ送られてきますので、アプリ内でバッファに溜め込んでもいいでしょう。
まぁやるとしたら、メインスレッドで http 受信及び切り出し。サブスレッドで切り出された Jpeg フォーマットデータをバッファに出力とかになるかな?

2)AVI 形式でコンテナを Motion JPEG にしてバッファの内容をファイルに書き出し。
1枚づつデータが飛んでくるので、12fps と仮定した場合、10分の録画に 7,200フレームになります。
(これ録画したファイルをバイナリで見たんですが、12:23(743秒)のファイルが 74393フレームで 100fps になっているんですが実際には 12fps くらいなんですよね。Motion JPEG って、そういうフォーマットなのかしら?)

とりあえず 12fps と仮定して、仮に 30分単位で保存したい場合は、21,600フレーム毎に出力ファイルの切り替えをやってやれば良いってことになります。

なにかエラーが発生したら、一旦 http を切って再接続する例外処理を行ってやればOKという感じになります。
ブラウザも必要なくなります。

あとは作れば良いだけの話になりますが、Motion JPEG の codec ってどんなのか知らないので、そこを調べなければなりません。(そこらが詳しい人が作ってくれたらすごい嬉しいんですが。)

[更新日付:2013/06/11 01:26:01]
トラックバックを見る(0)
Log Link [https://akisoftware.com/cgi-bin/blom.exe?akisoft+sl+92207cf8dd4d1e9a9bd682d3582b4918370d8b72]
TB Link [https://akisoftware.com/cgi-bin/blom.exe?akisoft+tb+92207cf8dd4d1e9a9bd682d3582b4918370d8b72]

記事へのコメント

コメントはありません

名前
コメントキー
 
コメントする時はキーを正確に入力して下さい
コメント
アドレスを含んだコメントはできません
© 2008-10 A.K.I Software all rights reserved.