Domanda

Sto generando un flusso MJpeg e sto provando a trasmetterlo su VLC e riprodurlo lì.

Il codice:

        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 provo ad aprire lo stream con firefox, non c'è nessun problema, anche se con VLC non funziona (VLC sembra continuare a leggere ma non mostra mai il video)

Sto annusando lo streaming da VLC a VLC e sembra che usino come intestazione HTTP " application / octet-stream " invece di multipart / x-mixed-replace

Qualche idea?

Tks in anticipo, Jose

È stato utile?

Soluzione

Jose, Ho avuto esattamente lo stesso problema. Firefox riproduce il mio stream ma VLC no. Sono andato in tanti modi per capirlo, incluso il debug del codice sorgente VLC, e non ho trovato dove. tra il mio URL (REST) ??sembra http: // server: port / livevideo / xyz Quindi, ho pensato di provare http: // server: port / livevideo / xyz.mjpeg E indovina un po ', VLC ha iniziato a riprodurre video! Penso che VLC potrebbe aver bisogno di un piccolo suggerimento in più rispetto al tipo di contenuto per capire che si tratta di un flusso mjpeg. Spero che questo aiuti.

Cindy

Altri suggerimenti

Hai provato questo:

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

O qualche variazione di quelli?

Non riesco a far funzionare Firefox sul mio stream (anche se Chrome lo riproduce bene). Per VLC ho impostato il buffer su 0 ms (in opzioni di apertura avanzate) e sembrava funzionare da lì, anche se la mia velocità di dati lo sta uccidendo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top