This is a improvement done in the Motion JPEG over HTTP shared at "Example of streaming images over Internet. Single image, java script auto refresh and Motion JPEG" post. In this version, multiple browsers can receive the MJPEG stream at same time, however the performance is fairly system dependency. There is a benchmark attached comparing cRIO-9068 and cRIO-9033 streaming to 10 browsers.
Project content
Startup VI (cam_grab.vi) is responsible to initialize resources, monitor the Web Service status, grab, compress and store images in a ring buffer (FIFO based), and close resources if the Web Service be stopped or Stop button pressed.
HTTP_MJPEG.vi is a GET HTTP Method configured as Stream Output Type and deselected the “Use Headers” to LabVIEW Web Services not include the HTTP Headers, because it uses a non native HTTP MIME Type for stream MJPEG images over HTTP.
Ref1: https://en.wikipedia.org/wiki/Motion_JPEG#M-JPEG_over_HTTP
Ref2: http://www.ietf.org/rfc/rfc2616.txt
OBS: MJPEG over HTTP is not supported by Internet Explorer natively, it is required to install an add-on, at least when I tested it. I didn’t investigate much though.
How to run
1. Open the project
2. Right-click on “myWebService” and select “Start”
3. Right-click on "HTTP_MJPEG.vi" and select “Show URL Method…”
4. Copy this URL in an Internet Browser
Final considerations
Dependencies: NI Vision Acquisition Software, LabVIEW 2016