0

ビデオをストリーミングするには、基本的な netty HTTP ファイル サーバー ( https://github.com/netty/netty/tree/master/example/src/main/java/io/netty/example/http/file ) を拡張する必要があります。ビデオにカスタム エンコーディングを行った後の HTTP。vlcj を使用してストリームを再現する Java アプリケーションを作成する予定です。

しかし、ファイルサーバーの拡張を開始する前でも、奇妙な動作が発生しています。VLC (バージョン 2.0.6) を使用してファイルを再生するときに、基本的なサーバーの例 (netty 3.6.5 と netty 4.0.0.CR1 の両方) を使用すると、次のようになります。

  • VLC はファイルの再生を開始できます
  • ファイルを数回シークするとすぐに、次のエラーが表示されます: java.io.IOException: Connection reset by peer

mpc-hc ( http://mpc-hc.org/ ) で同じストリームを再生している間、この問題は発生しません。

VLC がストリームを正しく再生できるようにするために、特定の方法でサーバーを構成する必要がありますか? VLC と VLCJ の両方の Web サイト/フォーラムで特定の情報を見つけられませんでした。

どんなヒント/提案も受け入れられます。

4

1 に答える 1

2

残念ながら、ビデオを VLCj プレーヤーにストリーミングするための基本的な http ファイル サーバーを起動するだけでは十分ではありません。

サーバーは「範囲リクエスト」を処理できる必要があります。範囲リクエスト中に、VLC プレーヤーは、次に再生するビデオの特定の部分 (バイト 3212 ~ 5678 などのバイト範囲) をリクエストします。ビデオ プレーヤーは、最初の要求がすべてのバイトに対するものであったとしても、再生中に範囲要求を繰り返します。

シークすると、ビデオ プレーヤーはサーバーにファイルの次の部分の範囲要求を行います。サーバーがリクエストを処理できない場合、プレイヤーはあなたが説明したような動作をします。(つまり、ピアによる接続の残り)

それが役立つことを願っています。

于 2013-05-11T22:06:27.267 に答える