4

ライブビデオを表示する Web インターフェイスを備えた安価な中国製 IP Web カメラを入手しました。ビデオは、ブラウザに供給された一連の jpeg 画像のように見えます。wget に URL http://my-ip-camera/video.cgiを指定すると、次の形式で大量のストリーミング データを受け取ります。

--ipcamera
Content-Type: image/jpeg
Content-Length: 46056

JFIF header data
... lots of data ...

このパターンは「フレーム」ごとに繰り返されます。

これは、何かで再生/トランスコードできる「標準」のストリーミング形式ですか、それともブラウザに強制的にレンダリングするだけの JPEG の作成されたコレクションですか?

VLC を使用してみましたが、URL を処理できませんでした。

私の IP カメラのソフトウェアはかなりひどいので、代わりにこのストリームをキャプチャして Linux マシンで処理したいと考えています。これを行うために使用できる ffmpeg/mplayer ツールのコレクションはありますか?

4

2 に答える 2

6

「ipcamera」を境界とする MIME マルチパートのように見えます。

http://en.wikipedia.org/wiki/MIME#Multipart_messages

MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="frontier"

This is a message with multiple parts in MIME format.
--frontier
Content-Type: text/plain

This is the body of the message.
--frontier
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64

PGh0bWw+CiAgPGhlYWQ+CiAgPC9oZWFkPgogIDxib2R5PgogICAgPHA+VGhpcyBpcyB0aGUg
Ym9keSBvZiB0aGUgbWVzc2FnZS48L3A+CiAgPC9ib2R5Pgo8L2h0bWw+Cg==

データの最初の部分を投稿できますか?

MIME マルチパートを扱うライブラリはたくさんあります。MIME-multipart を解析してブラウザの動的 DOM に渡す JS ライブラリを見つける必要があると思います。または、MIME をサポートする perl またはその他のスクリプトを使用して、このストリームから jpeg を取得することもできます。

アップデート:

実際、これは「M-JPEG over HTTP」です http://en.wikipedia.org/wiki/Motion_JPEG#M-JPEG_over_HTTP

上記のサーバー ソフトウェアは、HTTP 経由で JPEG のシーケンスをストリーミングします。特別な MIME タイプのコンテンツ タイプ multipart/x-mixed-replace;boundary= は、特別な境界で区切られた回答として複数の部分を期待するようブラウザに通知します。この境界は、MIME タイプ内で定義されます。M-JPEG ストリームの場合、JPEG データは正しい HTTP ヘッダーとともにクライアントに送信されます。クライアントが新しいフレームの受信を希望し、サーバーが新しいフレームの提供を希望している限り、TCP 接続は閉じられません。このようなサーバーの 2 つの基本的な実装は、テスト サーバー「cambozola」と Web カメラ サーバー「MJPG-Streamer」です。

これは、このフォーマット生成の例ですhttp://nakkaya.com/2011/03/23/streaming-opencv-video-over-the-network-using-mjpeg/ - それはまさにあなたが持っているものです。

ここに Python クライアントがあります: http://code.google.com/p/python-mjpeg-over-http-client/

于 2011-09-03T17:31:19.020 に答える
4

Motion JPEG、または少なくともその変種のように聞こえます。

于 2011-09-03T17:27:42.393 に答える