creando mi propio flujo MJPEG

Estoy tratando de crear un flujo MJPEG, tengo una serie de jpegs que quiero juntar en un flujo para que un usuario pueda simplemente acceder a una URL y obtener un flujo de mjpeg. Durante los últimos días he estado intentando que esto funcione, y puede que no sea posible. Traje etéreo y escuché los paquetes que provenían de una cámara de eje en la red en algún lugar, y traté de imitarlo. Originalmente intenté usar WCF y devolver un "flujo", pero luego descubrí que necesitaría establecer el tipo de contenido en ese flujo, entonces probé la api WCF REST, pero eso tiene el mismo problema. así que ahora solo uso un HTTPListener básico y gestiono el evento. Preferiría mucho usar WCF, pero no estoy seguro de que me permita devolver una secuencia con el tipo de contenido correcto. así que aquí está lo que tengo para el httpListener.

en el controlador de la llamada del oyente pongo lo siguiente.

        HttpListenerResponse response = context.Response;
        response.ProtocolVersion = new System.Version(1, 0);
        response.StatusCode = 200;
        response.StatusDescription = "OK";
        response.ContentType = "multipart/x-mixed-replace;boundary=" + BOUNDARY + "\r\n";
        System.IO.Stream output = response.OutputStream;
        Render(output);

El método Render se ve así

        var writer = new StreamWriter(st);
        writer.Write("--" + BOUNDARY + "\r\n");
        while (true)
        {
            for (int i = 0; i < imageset.Length; i++)
            {
                var resource = Properties.Resources.ResourceManager.GetObject(imageset[i]) as Bitmap;
                var memStream = new MemoryStream();
                resource.Save(memStream,ImageFormat.Jpeg);
                byte[] imgBinaryData = memStream.ToArray();
                string s = Convert.ToBase64String(imgBinaryData);
                writer.Write("Content-type: image/jpeg\r\n");
                foreach (var s1 in imgBinaryData)
                {
                    writer.Write((char)s1);
                }
                writer.Write("\n--" + BOUNDARY + "\n");
                writer.Flush();
                Thread.Sleep(500);
            }
        }

En este punto, acabo de agregar algunas imágenes jpeg como propiedades en la dll, y estoy iterando sobre ellas, eventualmente serán imágenes dinámicas, pero por ahora solo quiero que funcione.

Por lo que entiendo sobre el MJPEG (espec.) Es que el contenido debe configurarse como multipart / x-mixed-replace y un conjunto de límites. y luego simplemente eliminas los jpegs dentro del flujo por el límite.

Esto parece que debería ser más simple de lo que lo estoy haciendo, pero me pregunto a dónde me voy mal. Si carga esta URL en IE o Firefox, simplemente se cuelga. Si trato de hacer una página html de código auxiliar con una etiqueta img, cuya fuente es la URL, obtengo una imagen rota.

Cualquier idea, gracias.

Josh

Respuestas a la pregunta(2)

Su respuesta a la pregunta