2009-04-29 3 views
4

Я генерирую поток MJpeg и пытаюсь передать его в VLC и играть там.Mjpeg VLC и потоковое HTTP

Код:

 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 не работает (VLC кажется держать чтении, но никогда не показывает видео)

Я обнюхивая VLC-к-VLC потоковой передачи и они, кажется, используют в качестве HTTP-заголовка «приложения/октет потока» вместо многочастных/X-смешанных замены

Любые идеи?

Tks заранее, Хосе

ответ

2

Jose, У меня была точно такая же проблема. Firefox играет мой поток, но VLC не делает. Я пошел так много способов понять это, включая отладку исходного кода VLC, и не получил нигде. btw URL-адрес моего (REST) ​​выглядит как http://server:port/livevideo/xyz Тогда я думал, что должен попробовать http://server:port/livevideo/xyz.mjpeg И угадайте, что, VLC начал играть в видео! Я думаю, что VLC может потребоваться небольшая подсказка больше, чем тип контента, чтобы понять, что это поток mjpeg. Надеюсь, это поможет.

Синди

0

Пытались это вы:

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

Или некоторые вариации этих?

0

Я не могу получить светлячок играть мой поток (хотя хром играет это хорошо). Для VLC я устанавливаю буфер на 0 мс (в расширенных открытых опциях), и он, похоже, работает оттуда, хотя моя скорость передачи данных убивает его.

Смежные вопросы