問題タブ [mjpeg]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
351 参照

tcp - mjpg TCP ストリームのバイトを読み取った後の不要な「NUL」文字列

イーサネット カメラから送信された jpeg 画像を mjpg ストリームで記録しようとしています。Borland C++ アプリケーション (VSPCIP) で取得した画像が「破損」することがあります。「破損した jpeg フレーム」の例があります。21690 文字 (640x480 jpeg 画像の場合) で、その中には 5045 の文字列があります。値が「NUL」の次の文字 (Notepad++ では NUL として表示されます)。そして、mjpg ヘッダーで指定された「content-length」に達するとバイトの読み取りを停止するため、それ以降のバイトが切り捨てられます。

2つのこと:-最初にこれらの破損したフレームを削除したい:「NUL」文字に続く50以上(または直接5000または5045)の文字列を(すばやく)検出するにはどうすればよいですか?- アプリケーションが次の「NUL」文字列を追加する理由を見つけなければなりません。

0 投票する
6 に答える
92394 参照

php - PHPで出力バッファリングを無効にする方法

ウェブカメラに接続してソケットから読み取り、印刷機能を使用してこのデータを出力する簡単なリレースクリプトを作成しました。データは、境界が設定されたMJPGデータです。読み取ったデータを出力するだけです。

問題は、PHPがこのデータをバッファリングしているように見えることです。カメラを1FPSに設定すると、フィードが7〜8秒間フリーズし、すぐに8フレームが表示されます。解像度を巨大なサイズに設定すると、カメラはほぼ1秒あたり1フレームで移動します。その場合、何らかのバッファリングが発生していると思います(巨大なサイズはバッファをすぐにいっぱいにし、小さなサイズはそうではないため)、このバッファリングを無効にする方法がわかりません。誰かがその方法を知っていますか?

コード:

0 投票する
1 に答える
660 参照

silverlight - IP ウェブカメラ ストリームへのアクセス

Silverlight アプリケーション (ブラウザーで実行) で直接 IP カメラ ストリームを使用することを調査するように依頼されました。私が見る限り、これは RTSP ストリームと Motion JPEG ストリームを処理できる必要があることを意味しているようです。どちらも Silverlight ではネイティブにサポートされていません。

MJPEG デコード用のライブラリ (http://channel9.msdn.com/coding4fun/articles/MJPEG-Decoder) を見つけましたが、Silverlight では OOB しかサポートしていないことが問題です。

RTSP の商用製品しか見つかりませんでしたが、API を使用してほぼすべてのストリームを手動で実行できることも読みましたが、RTSPMediaStreamSourceでこれを行う方法に関する情報はどこにも見つかりませんでした。

それで、あなたはそれをどのようにしますか?

0 投票する
3 に答える
4855 参照

c++ - IPカメラからのMJPEGビデオが速すぎる

IPカメラ(Basler BIP-1280c)からビデオストリームを読み込もうとしています。必要なストリームはカメラのバッファーに保存され、長さは40秒で、MJPEGでデコードされます。

これで、Webブラウザーを介してストリームにアクセスすると、問題なく40秒が表示されます。しかし、実際には、ストリームを単独でダウンロードして保存できるアプリケーションが必要です。

カメラはhttp経由でアクセスされるので、私はlibcurlそれにアクセスするために使用しています。これは問題なく動作し、問題なくストリームをダウンロードすることもできます。ストリームデータを*.aviファイルに保存することを選択しました(それが正しいことを願っています…?)。

しかし、ここで問題が発生しました。ビデオを開いて(Totem Video PlayerとVLCで試してみました)、記録されたものをすべて表示することもできますが、速度が速すぎます。ビデオ全体は(40秒ではなく)5秒ほど続きます。MJPEGのヘッダーには、ビデオの合計の長さやfpsなどの情報を入れる場所がありますか?つまり、ビデオプレーヤーが高速で再生できるように、いくつかの情報が不足している必要がありますか?

アップデート:

回答で示唆されているように、私は16進エディタでファイルを開きましたが、見つけたのは次のとおりです。

--myboundary..Content-Type: image/jpeg..Content-Length: 39050.........*Exif..II*...............V...........................2...................0210................FrameNr=000398732 6.AOI=(0800x0720)@(0240,0060)/(1280x0720).Motion=00000 (no) [00000 | 00000 | 00000 | 00000 | 00000].Alarm=0000 (no) .IO =000.RtTrigger=0...Basler..BIP2-1280c..1970:01:05 23:08:10.8 98286......JFIF................................. ....&"((

このヘッダーはファイル全体で繰り返されます(その後に大量のバイナリデータが続きます)。すべてのMJPEG画像がこのヘッダーを取得することをカメラのマニュアルで読んだので、これは実際には問題ありません。

JFIF最後の行のより興味深いイン。提案された回答のように、これはおそらくファイル形式の指標です。ただし、afaik JFIFは、jpgと同じように単一の画像形式です。それで、これはおそらく、ビデオファイル全体が単なる「頭の悪い」連鎖写真であることを意味するのでしょうか?そして、私のプレーヤーは、フレームレートについての知識がなくても、この写真を次々に表示する必要があると思い込んでいますか?

0 投票する
2 に答える
16451 参照

stream - MJPEGとMPEG-4のサイズ/圧縮

MJPEGとMPEG-4でエンコードされたストリームの違いはどれくらいですか?MJPEG形式またはMPEG-4で32MBのバッファにデータを保存できるIPカメラを持っています。解像度は30FPSで800x600です。MJPEGでストリーミングすると、40〜50秒の節約になります。MPEG-4でストリーミングすると、8分(ほとんどモーションがない場合)、モーションが多い場合は3分節約できました。

MPEG-4のサイズはモーション/変更の量に依存することは知っていますが、私が疑問に思っているのは、フルモーションでもMPEG-4はMJPEGよりもはるかに多くのビデオを保存できるという事実ですか?MJPEGの圧縮は本当に「そんなに悪い」のでしょうか?

0 投票する
0 に答える
733 参照

caching - MJPEG(?)、ブラウザはどれくらい賢い?

次のタイプの IP ベースのカメラと接続しようとしています。

CVUL-I125

これには、ビデオ フィードを取得する 2 つの方法があります。

2 番目は単純に 1 つの JPG ファイルを返します。

しかし、最初は、私が疑問に思っているものです。

ブラウザでその URL をポイントすると、実際には非常に高速に更新され続ける画像が表示されますが、予想どおり、ページのダウンロードが停止することはありません。

私の質問は次のとおりです: ブラウザはこれを、フレーム数が無限のアニメーション gif と同じように考慮しますか? つまり、この画像をキャッシュしてダウンロードし続け、ある時点で最初から「再生」できることを期待していますか?

簡単に言えば、これはブラウザのメモリやキャッシュをゆっくり (または速く) いっぱいにしますか?

このプログラムをモバイル デバイスに配置したいので質問しています。ストリームがキャッシュされている場合、それはできません。スナップショット イメージを使用すると、簡単に取得して表示できますが、Web コントロールを使用する以外にストリームを表示する方法がわかりません。したがって、私の質問です。

ストリーム フィードのダウンロードを開始して一時停止し、それを確認しました。Google Chrome 一時ファイルからの抜粋を次に示します。

私には JPG ファイルのように見えますが、更新し続けているので、これは MJPEG だと思いますか?

0 投票する
1 に答える
4815 参照

opencv - OpenCV 2 への MJPEG ネットワーク ストリーム

以下のこのコードが機能しない理由を誰かに説明してもらえますか?

このコードはストリームを開くことができません...

コードは、このスレッドのコードに基づいています: OpenCV with Network Cameras

ここの OpenCV 1 コードは問題なく動作します。

事前にどうもありがとうございました

0 投票する
1 に答える
1633 参照

c - opencvを使用して記録する場合、ビットレートに対して小さすぎるエラービットレート許容値を取得します

opencvを初めて使用しますが、ビデオファイルに書き込むときに問題が発生します。基本的に、私はHD Webカメラから読み取り、aviに書き込みます。実行可能なコード:

実行するとエラーが発生します

カメラはMacbookのHDウェブカメラです。問題を引き起こしているのはそのカメラですか?もしそうなら、ビットレートの許容範囲を低く設定できますか?私はopencvを初めて使用します。ありがとう!

ちなみに、argv [1] .aviが存在しない場合、CvVideoWriterは新しいファイルを作成できますか?

0 投票する
1 に答える
2904 参照

delphi - 可変フレームレートでフレームごとにモーションJPEGを作成する

手元にある問題のいくつかの解決策を分析しています。デバイスから画像を受信して​​いるので、それからビデオファイルを作成する必要があります。ただし、画像は画像間に多少ランダムな遅延を伴って到着するため、これをエンコードするための最良の方法を探しています。このビデオをフレームごとに作成する必要があります。各フレームの後に、古いビデオファイルを置き換えて、新しいフレームで新しいビデオファイルを作成する必要があります。

フレームレートを最小遅延よりも少し「速く」固定し、新しいフレームが到着するまで最後のフレームを繰り返すことを考えていましたが、このソリューションは最適ではないと思います。

また、このプロジェクトはDelphiで作成されており(いいえ、変更できません)、各フレームの後にこれらのフレームをビデオファイルに変換する手段が必要です。Mencoderを外部ツールとして使用することを考えていましたが、ドキュメントを読んでいて、すでにエンコードされているMotionJPEGビデオファイルにフレームを挿入するオプションがまだ見つかりません。私の画像はJPEGとして入ってくるので、Motion JPEGを使用するのが合理的だと思いましたが、それでもまだ確実ではありません。また、mencoderをライブラリとして使用できるかどうかもわかりません。もしそうなら、それは大いに役立つでしょう。

あなたは何を提案しますか?

0 投票する
2 に答える
8878 参照

html - html5 を使用してブラウザーで mjpeg-over-http ストリームを視覚化する

わかりました。http 経由でモーション jpegストリームを提供するサーバーがあります。私ができるようにしたいのは、サーバーに接続して、できればcanvas要素内のブラウザーでストリームを視覚化することです。ブラウザは Safari Mobile である必要があります。

XMLHttpRequest でストリームを取得し、単一の JPEG 画像を取り出してcanvas要素内に配置することは可能ですか? ストリームはライブであるため、無限に続く可能性があることに注意してください。