問題タブ [http-range]

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 に答える
1558 参照

video - 指定されたセグメントの WebM ビデオのバイト範囲を検索

webm 形式のビデオがあります (video.webm のように、長さは 60 秒です)
http ヘッダー範囲 (範囲: 100-200) でビデオの指定されたセグメント (つまり、ビデオの分割) を取得したいと考えています。
言い換えれ
ば、ビデオのセクション (4 秒目から 12 秒目など) を取得したいのですが、ffmpeg のようなコンバーターは使用したくありません。サーバーにhttpリクエストを送り、指定範囲のwebmファイルを取得したい。

このメソッド (http 範囲ヘッダー) を使用できますか?

ありがとう

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

android - 動画のストリーミング中に Android がシークする http 範囲ヘッダー

範囲ヘッダーを使用して、HTTP プロトコルを介してビデオをストリーミングしながらシークを実装した人はいますか?

http プロトコルを介してビデオをストリーミングするための範囲ヘッダーを使用してサーバーを実装しました。これは、Chrome ブラウザーで再生すると正常に動作します。

しかし、Android では、VideoView と MediaPlayer でデータをストリーミングできます。しかし、ストリーミングで問題が発生します。

1) MediaPlayer を使用すると、バッファリングされたビデオまでしかシークできません。バッファを超えてシークしようとすると、再生が停止します。
2) Vitamio ライブラリを使用してみましたが、シークできません。しかし、それは最初から再生されます。(理由がわからない)

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

node.js - 指定されたコンテンツ範囲で 206 を受信した後、Firefox はそれ以上のデータを要求しません

コンテキストを示すために、node.js サーバーのメソッドを指す属性を<video>持つタグがあります。srcこのメソッドは、ブラウザによって指定された HTTP ヘッダー に応じて、mp4別のサーバーからファイル、またはファイルの一部を取得します。mp4RangeRange:bytes=0-

期待される動作 (Chrome の動作)

私のnode.jsサーバーがサードパーティのサーバーからファイル全体をダウンロードするのを防ぐために、一度にダウンロードするために約5MBの最大バッファを実装しました。したがって、ユーザーがヘッダー付きのビデオを取得するためにリクエストを送信した場合

..その後、サーバーは次のように応答します

これは十分に一般的なパターンだと思います。クライアント (この場合はブラウザー) が要求したbytes=0-(開始から終了まで) にもかかわらず、私は代わりに最初の 5MB で応答し、最も重要なことに、応答には合計 415MB のうちの 5MB ( Content-Range: bytes 0-5000000/415473786)。206応答には、応答が部分的な応答であることを示すステータスもあります。

Chrome では、これは期待どおりに機能します。ビデオが最初の 5 MB のビデオの再生を終了する直前に、同じエンドポイントにヘッダーを使用して別のリクエストを行います。

繰り返しますが、最大5MBで応答します...

このパターンは、動画が終了するまで続きます。ユーザーがシーク バーを使用して一時停止またはスキップすると、ブラウザは必要な時間の特定のバイト範囲を要求します。私が言ったように、すべてがChromeでうまく機能します。

Firefox の動作

Firefox の動作を説明することは、正しい動作を説明することよりもはるかに簡単です!

Firefox リクエスト

応答

それだけです - Firefox はビデオの最初の 5MB を再生し、それ以上のリクエストはサーバーに対して行われません。シーク バーにはビデオの正しい再生時間が表示されますが、シーク バーは機能しません。ユーザーがビデオをシークしようとすると、最初にスキップして最初の 5MB をもう一度再生します。

どんな助けでも大歓迎です。

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

http - HTTP Range リクエスト multipart/byteranges - 最後に CRLF がありますか?

RFC7233は、行末を除いて、素晴らしく明確です。

応答の HTTP 応答本文に特に関心がありますmultipart/byteranges。HTTP ヘッダーと同様に、各行は CRLF で終了すると想定していますが、このドキュメントではそれについて明示していません。私が完全に困惑しているのは、最後の行です: --THIS_SEPARATOR_SEPARATES--. その後に CRLF が続きますか?

フルブロック:

なかなか見つからないので、助かります。注: 直観はやめてください。RFC の参照だけにしてください。

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

curl - HTTP マルチレンジ リクエストが遅い

サーバーに 8 GB のファイルがあり、http マルチレンジ リクエストを使用してこのファイルから 1.5 GB をダウンロードしたいと考えています。カールを使用しています。

500MB の大きな範囲を含む最初のリクエストを除いて、すべてのリクエストはファイル上で均一に分散されます (合計 161 のリクエストがあります)。

大きな範囲のこの最初のリクエストのダウンロード時間は約 40 秒、合計時間は約 560 秒であることがわかりました。つまり、500MB を 40 秒間ダウンロードし、1GB を 520 秒間ダウンロードします。したがって、均一に分散されたリクエストの速度が 6 倍になります。また、この均一に分散されたリクエストが実行されると、ダウンロード率が 6 ~ 8 倍に低下することにも気付きました。

なぜこれが起こるのか分かりません。各リクエストの範囲はオフセットの増加によってソートされるため、なぜこのような速度低下が発生するのかわかりません。何がこのような混乱を引き起こすのか説明していただけますか? さらに、そのような一連のリクエストのパフォーマンスを向上させるにはどうすればよいですか?

必要に応じて、一連のリクエストとタイミングを提供できます。

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

html - 206 Partial Contentでブラウザリクエストの範囲を狭くする方法

私は現在、ビデオがそれぞれ約 1MB のチャンクでトランスコードされるビデオ ストリーミング サービスを作成しています。Firefox、Chrome、および IE の HTML5 プレーヤーはすべて、(Range ヘッダーを要求に追加することによって) 部分的なコンテンツを要求するために最善を尽くします。残念ながら、ほとんどの場合、このヘッダーは次のようになります。

コンテンツ全体を返すのではなく、コンテンツの 1 MB のみを返したいので、これを返します。

これで、Chrome はこれを完全に受け入れ、全体の長さに達するまで部分的なコンテンツを要求し続けます。ただし、Firefox は、完全なコンテンツではなく、部分的なコンテンツを含む 1 つのリクエストのみを行います。Firefox はそれが完全なコンテンツであると認識しているため、ビデオ全体が再生されているわけではなく、その一部のみが再生されています。Chrome と同じ動作を Firefox で行うにはどうすればよいですか? 416 Range not Satisfiable を返そうとしましたが、Chrome と Firefox の両方がこのステータス コードを受け取った後にリクエストしているようです。

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

android - HTTP Range ヘッダーを使用した Android VideoView

ビデオ コンテンツの HTTP Range ヘッダーをサポートする Web サーバーがあり、Web Browsers and iOSうまく機能しますが、基本を使用して Android アプリケーションでテストを開始した後、アプリケーションがHTTP ヘッダーVideoViewでリクエストを作成していないことがわかりました。Range: 0-

HTTP Rangeヘッダーの仕様に基づいて、最初はこのヘッダーで応答しようとしました。2 バイトのファイル ヘッダーを送信すると、クライアントは応答の範囲を送信します。

iOS および Web ブラウザーではこれをうまく処理できますが、AndroidではヘッダーをまったくVideoView送信しません。Range

これをどのように機能させるのVideoViewですか?

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

http - 範囲ヘッダーを取得していません

Google ドライブからのアップロードを再開しようとしています。接続を閉じると、ファイルの ID が表示されます。インターネットが再び接続された後、このセッションを作成します。

Range ヘッダーを取得できません。なぜですか?

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

php - HTTP 範囲、ストリーミング、音楽、オーディオ

オーディオ ファイルのストリーミングに使用する Web サイトがあります。主にMP3とOGG。数ヶ月以来、私は自分自身 (PHP) を処理しています (Apache2 になる前)。最初に、マルチメディア オーディオ ファイルのスライスされたバイナリ レスポンスで通常の 200 OK レスポンスを実行します (メモリ割り当て用)。正常に動作していますが、すべてのオーディオで無限の持続時間を取得しました。この質問によると、昨日ストリーミング部分を更新しました。

そして今、私は想像できる最も奇妙なバグの 1 つを持っています。私のコードのリファクタリングは、MP3 ではうまく動作しますが、OGG ではうまく動作しません... 画像、または zip ダウンロードも上記のクラスで動作し、どちらも以前と同じように動作します。

これが私のストリームクラスです。

私は HTTP_RANGE と少し混乱しています。ありがとうございました、