H.264カメラ試験(第2弾)への協力のお願い

1,346 views
Skip to first unread message

Msako作者

unread,
Jan 9, 2016, 9:39:17 PM1/9/16
to Msako掲示板
最近のネットワークカメラは、H.264による圧縮方式のもの、更にはONVIF仕様の製品が増えてきました。Msakoは、このようなカメラにも対応できるようにしたいと考えています。そこで、その準備段階として次のような試験プログラムを作り実証試験を行っています。

今回は、第2弾として、これまでコンソール画面ベースであったものをGUIベースに変え、内部構造をよりMsako本体に組み込むことを強く意識した構造に作り替えました。

依然としてまだアルファな状態ですが、ぜひ、この試験に協力していただくようお願いいたします。


1.ダウンロード

この試験プログラムは、次のURLからダウンロードできます。
リンクは2つありますが、圧縮形式が異なるだけで中身は同じです。



ダウンロードしたファイルを解凍し、この中にあるが試験プログラム

 H264CamViewer.exe

を任意の場所に置いてください。なおこの試験プログラムは、GoogleのVirusTotalにより安全であることを確認しています。

『MSVCR120.dll が見つからなかったため、アプリケーションを開始できませんでした。
アプリケーションをインストールし直すとこの問題が解決する場合があります。』

このようなメッセージが表示されて起動しない場合は、Microsoftのサイトから次のパッケージをダウンロードしてください。64ビットWindowsであっても必ずvcredist_x86.exeを選んでください。

Visual Studio 2013 の Visual C++ 再頒布可能パッケージ



2.操作方法

試験プログラムが起動すると、まず次のような画面が表示されます。



最初に、「自動検出...」ボタンを押してカメラを検出してください。

次の画面で必要項目を記入して「検出開始」ボタンを押すとカメラの自動検出が始まります。


カメラが見つかると次のように表示されます。各1行が発見したカメラを表します。ただし、1台で複数のストリームを持つカメラの場合は、異なるカメラとして複数行にわたって表示されます。


いずれかの行を選択したうえで「表示」ボタンを押して、見つかったカメラの映像が表示されるか確認してください。


最後に「終了」ボタンを押して試験プログラムを終了してください。
試験プログラムを終了すると、試験プログラムと同じフォルダーに

 h264camviewer.log

という名前のログファイルが作成されます。


3.結果報告

レポートはこの掲示板に書き込んでください。

■使用したカメラのメーカー名、モデル名

■結果、エラー内容、スクリーンショット

■ログファイル

※ログファイルにはカメラの認証手順も記録されます。セキュリティーの意味で、ログファイルを公開していただく場合は、ご注意ください。


4.試験プログラムの仕様

4.1 H.264のストリーミング

映像圧縮規格H.264は、従来方式であるMPEG-2などの2倍以上の圧縮効率であり、1Mbit/sec以下でも高品質の映像を得ることができます。ウェブカメラの場合一般的に、H.264によって圧縮された映像は、次のような通信プロトコル(通信手順)によってネットワークを介して転送されます。

Unicast RTP 
RTP over RTSP 
RTP over RTSP over HTTP 
Multicast RTP

この試験プログラムでは、RTP over RTSPの方式を使用しています。この試験プログラムの作成にあたっては、H.264の転送のために必要なRTSP、RTPなどすべての通信プロトコルをオープンソースは使わずにsocket APIのみによってスクラッチ開発したので、将来Msakoに組み込んでもライセンス上の整合が取れます。開発にあたっては次の仕様書に参考にしました。

Real Time Streaming Protocol (RTSP) [RFC2326]

A Transport Protocol for Real-Time Applications (RTP) [RFC 3550]

Session Description Protocol (SDP) [RFC 4566]

RTP Payload Format for H.264 Video [RFC6184]

ONVIF Streaming Specification Version 2.1

4.2 H.264のライセンス

H.264には多数の特許権が含まれており、本規格を採用したハードウェア製品やソフトウェア製品を製造する企業は、特許使用料であるパテント料の支払いが求められます。しかし、Windowsに同梱されるH.264のコーデックを使用する場合、消費者は個別にH.264の使用料を請求されることはありません。この試験プログラムは、Windows同梱のH.264コーデックを使用するのでこの使用料は発生しません。(注:H.264はWindows 7から同梱されています)

Microsoft: Supported Media Formats in Media Foundation

Microsoft: マイクロソフト ソフトウェア ライセンス条項




Msako作者

unread,
Jan 13, 2016, 2:40:10 AM1/13/16
to Msako掲示板

協力をお願いするばかりでは申し訳ないので、
何かお役にたてる機能はないか考え、
簡易ではありますが、次のような録画機能を追加しました。

* Windows 8.1限定です。
* 映像の表示画面でスペースキーを押すと録画が開始/停止します。
* カレントディレクトリに、年-月-日_時.分.秒.mp4というファイル名で録画されます。
* 録画を開始してから1時間が経過すると自動的に録画が停止します。
* 録画中は次のように表示されます。





Msako作者

unread,
Jan 17, 2016, 6:29:57 PM1/17/16
to Msako掲示板

シンプルな録画ボタンを追加しました。





Msako作者

unread,
Feb 6, 2016, 10:33:39 PM2/6/16
to Msako掲示板

Koolertron SHEC04


が検出できないという報告をいただきました。

調査の結果、このカメラはGetSystemDateAndTimeResponseとして
LocalDateTimeを返してこないことが判明しました。
これはONVIFの仕様から逸脱していないのですが、
この試験プログラムがエラーとして処理を中止していました。

そこで、処理を継続するよう試験プログラムを修正しました。
修正した試験プログラムのバージョンは1.40です。

処理を継続するとさらに別のエラーが出るかもしれませんが、
どうぞお試しください。


Msako作者

unread,
Feb 6, 2016, 10:51:52 PM2/6/16
to Msako掲示板

Tenvis IPROBOT3

自動検出されるが映像が表示されないという報告をいただきました。

調査の結果、RTSPプロトコルにおいてDESCRIBEに対してこのカメラが返してくる応答


に従ってSETUPを次の通り送信すると、

SETUP rtsp://192.168.0.233:8003/0/video0 RTSP/1.0

このカメラは、

RTSP/1.0 406 Not Acceptable

を返してきてRTSPの接続が完結しないことが原因です。

これは、カメラ側のファームウェアのバグではないかと考えています。

同じ原因かどうかはわかりませんが、
VLCメディアプレヤーで表示しようとした時も表示できないというレポートがあります。




--------------------<以下ログファイルから問題箇所を抜粋>---------------------
2016-01-26 20:58:52.104 DEBUG [00002520] - (CH264Camera) [T] DESCRIBE rtsp://192.168.0.233:8003/0/av0?param=ioyajZGekprCnpuSlpHZj56MjIiQjZvCnpuSlpHOxtmah4+WjZrCzsvKzMfPxsrJxv== RTSP/1.0
2016-01-26 20:58:52.104 DEBUG [00002520] - (CH264Camera) [T] Accept: application/sdp
2016-01-26 20:58:52.104 DEBUG [00002520] - (CH264Camera) [T] CSeq: 3
2016-01-26 20:58:52.104 DEBUG [00002520] - (CH264Camera) [T] 
2016-01-26 20:58:52.124 DEBUG [00002520] - (CH264Camera) [R] RTSP/1.0 200 OK
2016-01-26 20:58:52.124 DEBUG [00002520] - (CH264Camera) [R] CSeq: 3
2016-01-26 20:58:52.124 DEBUG [00002520] - (CH264Camera) [R] Server: TAS-Tech Streaming Server V100R001
2016-01-26 20:58:52.124 DEBUG [00002520] - (CH264Camera) [R] Content-Type: application/sdp
2016-01-26 20:58:52.124 DEBUG [00002520] - (CH264Camera) [R] Content-length: 437
2016-01-26 20:58:52.124 DEBUG [00002520] - (CH264Camera) [R] 
2016-01-26 20:58:52.124 DEBUG [00002520] - (CH264Camera) [R] v=0
2016-01-26 20:58:52.124 DEBUG [00002520] - (CH264Camera) [R] o=StreamingServer 3331435948 1116907222000 IN IP4 192.168.0.233
2016-01-26 20:58:52.124 DEBUG [00002520] - (CH264Camera) [R] s=h264.mp4
2016-01-26 20:58:52.124 DEBUG [00002520] - (CH264Camera) [R] i=TAS-Tech Live Cast
2016-01-26 20:58:52.124 DEBUG [00002520] - (CH264Camera) [R] c=IN IP4 192.168.0.233
2016-01-26 20:58:52.124 DEBUG [00002520] - (CH264Camera) [R] t=0 0
2016-01-26 20:58:52.124 DEBUG [00002520] - (CH264Camera) [R] a=recvonly
2016-01-26 20:58:52.124 DEBUG [00002520] - (CH264Camera) [R] m=video 0 RTP/AVP 96
2016-01-26 20:58:52.124 DEBUG [00002520] - (CH264Camera) [R] a=control:rtsp://192.168.0.233:8003/0/video0
2016-01-26 20:58:52.124 DEBUG [00002520] - (CH264Camera) [R] a=rtpmap:96 H264/90000
2016-01-26 20:58:52.124 DEBUG [00002520] - (CH264Camera) [R] a=fmtp:96 packetization-mode=1; sprop-parameter-sets=Z0IAKOkAoAt1xIADbugAzf5gDYgQlA==,aM4xUg==
2016-01-26 20:58:52.124 DEBUG [00002520] - (CH264Camera) [R] m=audio 0 RTP/AVP 8
2016-01-26 20:58:52.124 DEBUG [00002520] - (CH264Camera) [R] a=control:rtsp://192.168.0.233:8003/0/audio
2016-01-26 20:58:52.124 DEBUG [00002520] - (CH264Camera) [R] a=rtpmap:8 pcma/8000
2016-01-26 20:58:52.124 DEBUG [00002520] - (CH264Camera) [R] a=ptime:40
2016-01-26 20:58:52.124 DEBUG [00002520] - (CH264Camera) [R] 
2016-01-26 20:58:52.124 DEBUG [00002520] - (CH264Camera) ...protocol=RTP/AVP
2016-01-26 20:58:52.124 DEBUG [00002520] - (CH264Camera) ...codec=H264
2016-01-26 20:58:52.124 DEBUG [00002520] - (CH264Camera) ...fmt=96
2016-01-26 20:58:52.124 DEBUG [00002520] - (CH264Camera) ...clock=90000
2016-01-26 20:58:52.124 DEBUG [00002520] - (CH264Camera) ...packetization_mode=1
2016-01-26 20:58:52.124 DEBUG [00002520] - (CH264Camera) ...profile_level_id=
2016-01-26 20:58:52.124 DEBUG [00002520] - (CH264Camera) ...sps=Z0IAKOkAoAt1xIADbugAzf5gDYgQlA==
2016-01-26 20:58:52.124 DEBUG [00002520] - (CH264Camera) ...pps=aM4xUg==
2016-01-26 20:58:52.124 DEBUG [00002520] - (CH264Camera) ...cntl=rtsp://192.168.0.233:8003/0/video0
2016-01-26 20:58:52.124 DEBUG [00002520] - (CH264Camera) SETUP...
2016-01-26 20:58:52.124 DEBUG [00002520] - (CH264Camera) [T] SETUP rtsp://192.168.0.233:8003/0/video0 RTSP/1.0
2016-01-26 20:58:52.124 DEBUG [00002520] - (CH264Camera) [T] Transport: RTP/AVP/TCP;unicast;interleaved=0-1
2016-01-26 20:58:52.124 DEBUG [00002520] - (CH264Camera) [T] CSeq: 4
2016-01-26 20:58:52.124 DEBUG [00002520] - (CH264Camera) [T] 
2016-01-26 20:58:52.124 DEBUG [00002520] - (CH264Camera) [R] RTSP/1.0 406 Not Acceptable
2016-01-26 20:58:52.134 DEBUG [00002520] - (CH264Camera) [R] CSeq: 0
2016-01-26 20:58:52.134 DEBUG [00002520] - (CH264Camera) [R] Server: TAS-Tech Streaming Server V100R001
2016-01-26 20:58:52.134 DEBUG [00002520] - (CH264Camera) [R] Require: Transport settings of rtp

以上


Msako作者

unread,
Feb 23, 2016, 2:02:34 AM2/23/16
to Msako掲示板
みなさんのご協力のおかげで、これまでに自動検出・表示が確認できたカメラを紹介します。

DBPOWER C754

FOSCAM FI9804P

FOSCAM FI-9821W

I-O DATA TS-WPTCAM

NOBRAND 628WY-S

PLANEX CS-WMV04N2

PLANEX CS-W05NM

SONY SNC-HM662

SONY SNC-XM632

TENVIS TH692


まだまだ数が少ないので、これからも引き続きご協力をよろしくお願いします。<(_ _)>






Reply all
Reply to author
Forward
0 new messages