問題タブ [http-streaming]

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 投票する
1 に答える
470 参照

ffmpeg - エンコードとセグメント化を同時に行う方法は?

これに似たHTTPストリーミングサーバーを実装したい(http://www.ioncannon.net/programming/452/iphone-http-streaming-with-ffmpeg-and-an-open-source-segmenter/)しかし、ffmpegによって完全に変換された後にビデオファイルをセグメント化する代わりに、エンコードとセグメント化を同時に実行したいと思います(エンコーダーからの出力ストリームがすぐにセグメンターに送信される場合など)。

ありがとう

lvreiny

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

jquery - jQueryはAJAXストリームを段階的に読み取りますか?

私はこの質問を読みましたが、それは私の質問に正確に答えていません。残念ながら、最後にAJAXを確認してから、XHRオブジェクトの内容が変更されたようです。そのため、データのresponseText入力が完了する前に直接アクセスすることはできなくなりました。

AJAX(できればjQueryですが、提案を受け付けています)を使用して、制御できないサーバーからHTTP経由でCSVデータを取得するページを作成する必要があります。応答データは非常に大きくなる可能性があります。メガバイトのテキストは珍しいことではありません。

サーバーはストリームフレンドリーです。JavaScriptから直接、返されるデータのストリームにアクセスする方法はまだありますか?

真ん中に存在し、ある種の「Comet」技術(ロングポーリング、EventSourceなど)を使用するPHPコードを作成するオプションはありますが、可能であればそれを避けたいと思います。

関連する場合は、この質問に対して、ユーザーがFirefox / Chrome / Operaの最新バージョンを使用しており、古いブラウザーの互換性は問題ではないと想定してください。

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

html - SSLと混合コンテンツおよびhttps経由のストリーミングビデオ

SSLのみを使用して提供されるビジネスWebアプリがあります。ページの1つに、screencast.comから提供されたビデオがあります。Screencast.comはSSLをサポートしていないようで、ビデオはhttpを使用してストリーミングされているため、混合コンテンツIEの警告が表示されます。

ビデオは、iFrameを使用したライトボックスタイプのウィンドウを使用して表示されています。

警告を回避するための回避策または解決策はありますか?SSLなしでページを提供する以外。

screencast.comから切り替える必要があるかもしれません。SSLを介したストリーミングをサポートし、iPadをサポートするビデオストリーミングホストはありますか?

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

ruby-on-rails - ruby on rails 3.1でのストリーミングビュー

私はレールが初めてで、その点についてはルビーです。Ruby 1.9.2 と Rails 3.1 に基づいて Rails アプリを作成しました

おそらくレールでのストリーミングの実装を理解しているため、問題が発生しました。Rails がテンプレート コンテンツをレンダリングする前に、それを評価するプロセスを完了する必要があるように私には思えます。

たとえば、次のような cgi スクリプトがあるとします。

これにより、一度にすべてではなく、スクリプトによってレンダリングされるときに、ブラウザーに 1 から 10 までの数字が順番に表示されます。これは、Rails ビューでエミュレートしたい動作です。

ビューに次のものがあるとしましょう。

何も表示する前に、スリープ 5 が完了するまで待機します。

curl -i を使用して Web サーバーからの応答を監視すると、Transfer-Encoding: 期待どおりにチャンクされた応答ヘッダーが期待どおりにすぐに取得されます。ただし、スリープが完了するまで本文の内容はレンダリングされません。

上に貼り付けた単純な CGI スクリプトと同じ方法で本文コンテンツをレンダリングするにはどうすればよいですか? 具体的には、最初に<h1> hi </h1> 5 秒後に<h2> bye </h2>?

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

ruby-on-rails - Rails 3.1.1 Apache + Passenger による HTTP ストリーミング

HTTP ストリーミングに関する Railscasts では、Apache + Passenger を使用して http ストリーミングを実行できることを確認したコメンターもいますが、奇妙なことに、Google 経由で指示を見つけることができません。

また、Rails doc には指示がありませんでした。詳細な説明はどこでも Unicorn に言及しています。Apache と Passenger で http ストリーミングを行いたいと思ったのは私だけではありません。助けてください。

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

php - メモリ リーク、PHP、および MySQL BLOB ストリーミング ファイルのダウンロードのデバッグ

Mac で MAMP v2.0 を使用_ _ Apache/2.0.64 (Unix) -- PHP/5.3.5 -- DAV/2 mod_ssl/2.0.64 -- OpenSSL/0.9.7l -- MySQL 5.5.9

実行しようとしているスクリプトがあり、大きなメモリ リークが発生しているようです。これをデバッグしようとしましたが、修正方法がわかりません。

基本的に、スクリプトはファイル マネージャー モジュールの一部です。ID を指定すると、ファイルのダウンロードを処理します。

ファイル全体がデータベース テーブルに BLOB として 64kb のチャンク (レコードごと) で格納され、要求に応じてクライアントにストリーミングされます。

データベース: file_management

テーブル: file_details、file_data

file_details :
FileID - int(10) AUTO_INCREMENT
FileTypeID - int(10)
FileType - varchar(60)
FileName - varchar(255)
FileDescription - varchar(255)
FileSize - bigint(20)
FileUploadDate - datetime
FileUploadBy - int(5)

file_details :
FileDataID - int(10) AUTO_INCREMENT
FileID - int(10)
FileData - BLOB

私が実際に得ているエラーはこれです(phpエラーログから):

[31-Oct-2011 09:47:39] PHP 致命的なエラー: 行 150 の /root/htdocs/file_manager/file_manager_download.php で 134217728 バイトの許容メモリ サイズが使い果たされました (63326173 バイトを割り当てようとしました)

現在、ファイルが十分に小さい場合 (この場合は 40 MB 未満)、ダウンロードの実際の機能は機能しますが、上記のエラーの 60 MB ファイルのように、それを超えると失敗します。0kb ファイルをダウンロードするだけです。

明らかに、134217728 バイトは 63326173 バイトを超えています (128mb 対 60mb)。

134217728 バイトの許容メモリ サイズは、php.ini のディレクティブです: "memory_limit = 128M ; スクリプトが消費するメモリの最大量"

これを 256M に設定すると、その 60MB のファイルだけでなく、最大約 80MB のファイルをダウンロードできます。

また、これを 1024M に設定すると、260MB 以上のファイルをダウンロードできるようになります。

したがって、問題はスクリプトのどこかでリークが発生し、すべてのメモリが消費されていることがわかります。

ダウンロードスクリプトは次のとおりです。

Xdebug を使用して、ピーク メモリ使用量の結果を出力しましたが、制限に近づくようなものは何もないように見えます。合計で、ページのピーク メモリ使用量は 900kb 程度でした。

したがって、ファイルのチャンクをメモリに集約して解放しない、または同様のことを考えていますが、その量のメモリに到達するのはファイルのチャンクだけであり、スクリプトが失敗します。

ファイルをデータベースにアップロードするためのスクリプトを提供できますので、必要に応じてスクリプトをテストしてください。

どんな助けにも乾杯!

ミック


* ///////// 解決済み ///////// *

hafichuk に感謝したいと思います。すばらしい反応で、問題全体が解決しました。

問題は 2 つありました。

1 - while ループ内で ob_flush() を使用していませんでした。それを追加すると、大量のメモリが解放され、より大きなダウンロードが可能になるように見えましたが、無制限ではありません.

たとえば、memory_limit = 128M の場合、40 MB 以上をダウンロードできるようになりました。実際には、約 200 MB まで取得できました。しかし、ここでまた失敗。ただし、最初のメモリの問題は解決しました。

レッスン 1: オブジェクトをフラッシュします。

2 - SQL クエリの結果を取得するために mysql_query を使用していました。問題は、これらの結果をバッファリングすることであり、これがメモリ制限の問題に追加されていました。

代わりに mysql_unbuffered_query を使用することになりましたが、これは問題なく動作するようになりました。

ただし、これにはいくつかの制限があり、結果の読み取り中にテーブルがロックされます。

レッスン 2: 不要な場合は、mysql の結果をバッファリングしないでください。(プログラムの制限内)

最終レッスン:

これらの修正はすべて機能しますが、それらの組み合わせに問題がないことを確認するには、さらにテストが必要です。

また、オブジェクトと PHP のメモリ割り当てについて多くのことを学びました。xdebug が提供するものよりも少しだけプロセスを視覚的にデバッグする方法があればいいのにと思います。xdebug が実際にこのプロセスにどのように光を当てることができたのかについて誰かがアイデアを持っている場合は、コメントでお知らせください。

これが将来他の誰かに役立つことを願っています。

乾杯

ミック

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

ruby-on-rails - Rack::Deflater を使用すると、Rail での HTTP ストリーミングが機能しない

Rails 3.1 でユニコーンをセットアップしました。Rack::Deflater を有効にするまで、http ストリーミングは機能します。Rack::Chunked を使用した場合と使用しない場合の両方を試しました。curl では応答を確認できますが、chrome では次のエラーが発生します: ERR_INVALID_CHUNKED_ENCODING

結果は、他のブラウザー (firefox、safari) および開発 (osx) と実稼働 (heroku) の間で同じです。

config.ru:

unicorn.rb:

コントローラ:

助けてくれてありがとう。

0 投票する
4 に答える
1732 参照

libvlc - http アダプティブ ストリーミング

HTTP アダプティブ ストリーミングをサポートするオープン ソース ストリーミング ソリューションはありますか? 私の調査によると、VLC はアダプティブ ストリーミングをサポートしていません。Darwin Streaming Server についてはよくわかりません。何か案は?

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

java - SpringベースのWebアプリケーションでチャンクされたHTTP応答

JavaのSpringフレームワークの上にフレームワークを構築しています。HTTPチャンク応答のサポートを追加できるようにしたいと考えています。春にはこのためのAPIがありますか?

私たちが達成しようとしているのは、基本的<head>に、残りの応答が準備される前にHTMLセクションを送信することです。クライアント側がスタイルシート/jsなどのダウンロードを開始できるようにします。

クライアントがHTTPチャンク応答をサポートしているかどうかを確認する方法があれば、さらに良いでしょう。

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

actionscript - Flash HTTP ストリーミング - 複数のファイル

Flash 10.1+ と NetStream で appendBytes を使用する機能により、Flash で HTTP ストリーミングを使用してビデオを配信できます。しかし、配信方法では、セグメントをディスク上の単一のファイルに格納する必要があるようです。これは、FMS または Apache モジュールを使用して個別のセグメント ファイルに分割することしかできません。個々のセグメント ファイルは作成後にキャッシュできますが、ドキュメントによると、最初のインスタンスでそれらのファイルを生成するには、常に FMS / Apache モジュールを使用する必要があります。

FMS、Wowza 製品、または Apache を使用せずに、単一のディスク上のファイルを複数のディスク上のセグメントに分割することは可能ですか?