4

MJpegストリームを生成し、それをVLCにストリーミングして、そこで再生しようとしています。

コード:

        public void SendMultiPartData(String contentType, Func<byte[]> getData)
    {
        MemoryStream mem = null;
        response.StatusCode = 200;
        for ( byte[] buffer = getData(); buffer != null && buffer.Length > 0; buffer = getData())
        {
            response.ContentType = "multipart/x-mixed-replace; boundary=--testboundary";
            ASCIIEncoding ae = new ASCIIEncoding();
            byte[] boundary = ae.GetBytes("\r\n--testboundary\r\nContent-Type: " + contentType + "\r\nContent-Length:" + buffer.Length + "\r\n\r\n");
            mem = new MemoryStream(boundary);
            mem.WriteTo(response.OutputStream);
            mem = new MemoryStream(buffer);
            mem.WriteTo(response.OutputStream);
            response.OutputStream.Flush();
        }
        mem.Close();
        listener.Close();
    }

Firefoxでストリームを開こうとすると、まったく問題はありませんが、VLCでは機能しません(VLCは読み続けているようですが、ビデオは表示されません)

私はVLCからVLCへのストリーミングをスニッフィングしてきましたが、multipart/x-mixed-replaceの代わりにHTTPヘッダー「application/octet-stream」として使用されているようです。

何か案は ?

事前にTks、ホセ

4

3 に答える 3

4

ホセ、私はまったく同じ問題を抱えていました。Firefoxは私のストリームを再生しますが、VLCは再生しません。私はVLCソースコードのデバッグを含むこれを理解するために非常に多くの方法を通り抜けました、そしてどこにも行きませんでした。ところで、私の(REST)URLはhttp:// server:port / livevideo / xyzのようになります。次に、 http:// server:port / livevideo / xyz.mjpeg を試してみるべきだと 思いました。そして、VLCがビデオの再生を開始しました。VLCがmjpegストリームであることを理解するには、コンテンツタイプよりも少しヒントが必要かもしれないと思います。お役に立てれば。

シンディ

于 2009-05-08T18:51:45.393 に答える
0

Firefoxにストリームを再生させることができません(Chromeは問題なく再生しますが)。VLCの場合、バッファを0ミリ秒に設定し(高度なオープンオプションの下で)、データレートがそれを殺しているにもかかわらず、そこから機能しているように見えました。

于 2009-07-09T20:21:43.360 に答える
0

これを試しましたか:

Response.Buffer = false;
Response.BufferOutput = false;

またはそれらのいくつかのバリエーション?

于 2009-05-01T21:39:33.203 に答える