Pergunta

Eu estou gerando um fluxo MJpeg e tentando transmiti-lo para VLC e jogá-lo lá.

O código:

        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();
    }

Se eu tentar abrir o fluxo com o Firefox, não há nenhum problema em tudo, embora com VLC não funciona (VLC parece continuar lendo, mas nunca mostra o vídeo)

Eu tenho sniffing VLC-to-VLC streaming de e eles parece usar como cabeçalho HTTP "application / octet-stream" em vez de multipart / x-mixed-substitua

Todas as idéias?

Tks antecipadamente, Jose

Foi útil?

Solução

Jose, Eu tinha exatamente o mesmo problema. Firefox desempenha meu fluxo, mas VLC não funciona. Eu fui através de tantas maneiras de descobrir isso, incluindo a depuração de código fonte VLC, e não onde tem. btw Meus (REST) ??aparência URL como http: // server: port / livevideo / xyz Então, eu pensei que eu deveria tentar http: // server: port / livevideo / xyz.mjpeg E adivinhem, VLC começou a reprodução de vídeo! Acho VLC pode precisar de uma pequena dica mais que tipo de conteúdo para descobrir o que é um fluxo MJPEG. Espero que isso ajude.

Cindy

Outras dicas

Você já tentou isso:

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

ou alguma variação desses?

Eu não posso obter o Firefox para jogar meu fluxo (embora cromo desempenha tudo bem). Para VLC eu definir o tampão a 0 ms (sob opções abertas avançadas) e parecia trabalhar a partir daí, embora a minha taxa de dados é matá-lo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top