Question

Je génère un flux MJpeg et j'essaie de le diffuser sur VLC et de le lire là-bas.

Le code:

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

Si j'essaie d'ouvrir le flux avec firefox, il n'y a aucun problème, bien qu'avec VLC cela ne fonctionne pas (VLC semble continuer à lire mais ne montre jamais la vidéo)

J'ai détecté la diffusion en continu de VLC à VLC et ils semblent utiliser comme en-tête HTTP "application / octet-stream". au lieu de multipart / x-mixed-replace

Des idées?

Merci d'avance, Jose

Était-ce utile?

La solution

Jose, J'ai eu exactement le même problème. Firefox lit mon flux mais VLC ne le fait pas. Je suis passé par tant de façons de comprendre cela, y compris le débogage du code source VLC, et je n’ai rien trouvé. Mon URL (REST) ??btw ressemble à http: // serveur: port / livevideo / xyz . Ensuite, je me suis dit que je devrais essayer http: // serveur: port / livevideo / xyz.mjpeg . Et devinez quoi, VLC a commencé à jouer la vidéo! Je pense que VLC pourrait avoir besoin d'un indice plus que le type de contenu pour comprendre qu'il s'agit d'un flux mjpeg. J'espère que cela vous aidera.

Cindy

Autres conseils

Avez-vous essayé ceci:

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

Ou une variante de ceux-ci?

Je ne parviens pas à faire lire mon flux par firefox (bien que chrome le lise bien). Pour VLC, je règle le tampon à 0 ms (sous les options d'ouverture avancées) et il semble fonctionner à partir de là, même si mon débit de données le tue.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top