2009-04-29 23 views
4

MJpegストリームを生成してVLCにストリームして再生しようとしています。 Mjpeg VLCとHTTPストリーミング

コード: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ストリーミングを盗聴してきた彼らが "application/octet-stream" HTTPヘッダーとして使用しているようだの代わりに、マルチパート/

任意のアイデアを、X-混合置き換えますか?

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

またはそれらのいくつかのバリエーション:事前に

TKS、 ホセ

答えて

2

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

シンディ

0

は、あなたはこれを試したことがありますか?

0

私は(クロームは大丈夫、それを果たしているが)Firefoxは私のストリームを再生するために取得することはできません。 VLCの場合、バッファを0msに設定しました。(先進のオープンオプションの下で)、データレートはそれを殺していますが、そこから動作していたようです。

関連する問題