問題タブ [pseudo-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.
streaming - Flowplayer Secure Streaming (PHP 経由): MP4 ビデオは疑似ストリーミングではありません (FLV は行います)
MP4 セキュア疑似ストリーミングで問題が発生しました。
まず第一に、あなたがアイデアを得るためにいくつかの事実があります:
- フロープレイヤーを使用しています
- mod_h264_streaming をインストールして動作させています。
- 安全なストリーミング プラグイン (PHP 検証) の追加に成功し、FLV ビデオの擬似で動作しています (もちろん、mod_h264_streamin のおかげです)。
- 最初にmoov-atomを含むMP4でテストしています(ビデオはすぐに始まりますが、擬似はありません)。
さて... flowplayer が MP4 をロードするとき、プレーヤーは次のようなリクエストを行います:
?start=0に注意してください
ビデオの別の部分 (まだロードされていない) をシークすると、プレーヤーは次の要求を行います。
?start=33.342に注意してください
これにより、ビデオが最初からやり直されます。これが問題です。
追加の事実: MP4 ファイルの開始は、クリックしたタイムラインの秒として (PHP スクリプトに) 送信され、FLVの開始はバイト単位のシーク位置として送信されます。この違いが問題の主な理由であると思います.
私の質問は:
PHP 疑似ストリーミング スクリプトで、MP4 ビデオ ストリーミングを処理するにはどうすればよいですか?
自動質問:バイト範囲ヘッダーを使用する必要がありますか?
コーディングの問題ではなく、概念的な問題であるため、コードを投稿していません。ここでは、アイデアに焦点を当てましょう。また、私がテストしているすべてのファイルは適切にエンコードされており、問題はありません。
ありがとう
ffmpeg - 疑似ストリーミング mp4 ファイルが Flash Player で動作しない
Web サイトでのオーディオのストリーミングに問題があります。h264 コーデックの MP4 コンテナー内に MP3 ファイルを配置できると考えたので、mp4 コーデックの疑似ストリーミング機能を使用できます。
ファイルを変換するために使用しているコードは次のとおりです。
疑似ストリーミング (メディアの読み込まれていない部分をシークする) は HTML5 プレーヤーで機能するようになりましたが、JWPlayer や FlowPlayer などの Flash メディア プレーヤーでは機能しません。
モジュールを有効にしたApacheサーバーと有効にしたh264
Nginxの両方でファイルをテストしましたが、うまくいきませんmod_mp4
でした。
MP4Box、QTIndexSwapperを試し、画像ループとオーディオ ファイルを混合して実際のビデオ ファイルを作成することさえしました。
私は何を間違っていますか?機能させるにはどうすればよいですか?
apache - mod_cband または lighttpd 用の同様のモジュールで、地理的に異なるユーザーの帯域幅制限を設定します
私は mod_cband を使用して、CBandClassRemoteSpeed および CBandClassLimit パラメーターを使用するなど、さまざまな国のさまざまなユーザーの帯域幅を制限しています。
Web サーバーは疑似 mp4 ストリーミング用です。静的コンテンツのパフォーマンスが向上するため、代わりに Lighttpd を使用することを考えています。地理的に異なるユーザーの帯域幅を制限できる Lighttpd に同等の方法はありますか?
ありがとう
actionscript-3 - 位置をシークするときにメタデータをストリーミングしないPHP
PHP を使用してビデオ ファイルをストリーミングしていますが、ある位置から開始しようとするまで、すべてが機能しています。
ns.play('flvprovider.php?file=video.flv&pos=156212');
シークしますが、メタデータを受信しません。メタデータがビデオ ファイルの先頭に挿入されていることはわかっています。これが、ある位置からビデオをロードしたときにメタデータを取得できない理由だと思われますが、そこにあるかどうかはわかりません。私が使用しているプロバイダーの下でこの問題を回避するための解決策
ありがとうございます !!
html5-video - 疑似ストリーミング、バイト範囲リクエスト、mp4 フラグメント化
疑似ストリーミング、バイト範囲リクエスト、および mp4 フラグメンテーションを正しく説明している適切なドキュメントへのリンクを最初に探します。mp4 コンテナー (h264 コーデック) と HTML5 ビデオ (フラッシュなし) のみを使用することに注意してください。
疑似ストリーミングについての私の理解では、クライアントは、サーバーがその応答で「シーク」する開始パラメーターを送信できるということです。MOOV データは先行する必要があり、「開始」/シーク位置から始まる新しい応答を優先して、元のソースのバッファリングが停止することを暗黙的に意味します。クライアントはどのようにして疑似呼び出しを強制されますか? MP4 は特別な方法でフォーマットする必要がありますか?
バイト範囲リクエストは、単に範囲が送信される開始パラメータではなく、別の送信です。プログレッシブダウンロードのように聞こえます。「求める」はどのように機能しますか?バイト範囲でそれはありますか?セグメント サイズは、ムービー ボックス情報で事前に決定できますか?
MP4 フラグメンテーションはどのように適合しますか? もともと Microsoft が Silverlight 用に設計した構造のように見えます。しかし、他のブラウザの html5 ビデオ実装にも適用できますか?
Web上の情報を整理するのは難しいと感じています。ライブ フィードと、rtp カメラ ストリームから生成された h264 ファイルの履歴セグメントの両方を調べます。MongoDB で時間順に並べられた一連のファイルを取得しました。JavaScript で独自の h264 デコーダーを作成し、範囲クエリからオンザフライで mpeg-dash ボックスを構築できます。MSE に対する Chrome のサポートを使用してセグメントを追加します。うまく機能しますが、普遍的なソリューションではありません。フラッシュ以外の他の手法に頼りたいが、html5 ビデオを使用する。