2009-04-29 4 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(); 
    } 

나는 파이어 폭스와 스트림을 열려고하면은, 전혀 문제가 없다 (VLC는 계속 읽어 보이지만 비디오를 보여주지 않음)

어떤 아이디어-교체 X-혼합

나는 VLC - 투 - VLC 스트리밍을 스니핑 봤는데 그들은 HTTP 헤더 대신 다중/용의 "application/octet-stream"으로 사용하는 것?

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

또는 그 일부 변화 : 사전에

TKS, 호세

답변

2

호세, 나는 정확히 같은 문제가있었습니다. Firefox는 내 스트림을 재생하지만 VLC는 그렇지 않습니다. VLC 소스 코드를 디버깅하는 것을 포함하여이 점을 이해하기 위해 여러 가지 방법을 찾아갔습니다. btw 내 (REST) ​​URL은 다음과 같습니다 http://server:port/livevideo/xyz 그런 다음 시도해야한다고 생각했습니다. http://server:port/livevideo/xyz.mjpeg 그리고 VLC가 비디오를 재생하기 시작했습니다. VLC가 mjpeg 스트림이라는 것을 알아 내기 위해 VLC가 콘텐츠 유형보다 조금 더 힌트를 필요로한다고 생각합니다. 희망이 도움이됩니다.

신디

0

당신이 봤어?

0

내가 (크롬 괜찮 재생하지만) 파이어 폭스 내 스트림 재생을 얻을 수 없습니다. VLC의 경우 버퍼를 0ms로 설정하고 고급 데이터 옵션을 사용하면 데이터 전송 속도가 느려지더라도 작동하는 것으로 보입니다.