web-dev-qa-db-ja.com

MJPEGストリームを表示するためのクロスブラウザーソリューション

クロスブラウザ環境でMJPEGを表示するための軽量で無料の信頼できる方法はありますか?開発中のサイトで Axis 212 IPカメラからMJPEGストリームを表示しようとしていますが、これはFirefoxの現在のバージョンでは非常に信頼できることがわかりました。しかし、いくつかのテストの後、IE、OperaおよびChromeのすべてがこれを行うのにさまざまな程度の問題を抱えていることがわかりました(Macにアクセスできないため、Safariについてはわかりません)。 Internet ExplorerはMJPEGをサポートしておらず、まったく機能しません。 Operaは、最初のGETが送信された後、文字列を表示するのに文字通り10〜15秒かかります。 Chromeは、<div>タグを含む<img>が非表示になり、再び表示されるまで完全に機能します。

参考のため、次のように<img>タグを使用してストリームを表示しています。

<img src="http://my.ip.addr/axis-cgi/mjpg/video.cgi/?resolution=352x240" alt="real-time video feed" />

re-broadcasting server を使用してMJPEGストリームを収集し、オンザフライでトランスコードすることを検討しましたが、このソリューションはtooいようです。より良い提案はありますか?

22

以下はJavaアプレットベースのソリューションで、任意のブラウザ(またはMJPEGをサポートしていないブラウザのみ)で使用できます): http://www.charliemouse.com/ code/cambozola /

MJPEGに関する他のバグに関する限り、「img」タグを削除する前に、「img」タグの「src」属性をMJPEG以外の何かに設定する必要があることがわかりました。例:

<img src="#" />

そうしないと、FirefoxはMJPEGストリームをダウンロードする必要がありますが、ダウンロードしないはずです。

5
Teddy

数か月前に解決策を思いついたばかりです。クロスプラットフォームであり、FlashやJavaなどのサードパーティのプラグインは必要ありません。

基本的に、m-jpegの境界を解析し、定義された間隔で画像を配信するnode.jsプロキシです。

https://github.com/rodowi/Paparazzo.js でフォークします

11
defvol