NDI WebLink provides a network service to dynamically transcode NDI and NDI HX Sources into HTTP based streams, either in a streaming JPEG format (video only, low latency) or in Apple HLS (HTTP Live Streaming, several seconds latency, but includes audio and video with extensive buffering for smooth playback).  You can use both modes at once for different viewing clients.


JPEG Stream mode: This delivers a constant flow of simple JPEG images to the viewer, and is compatible with virtually any Web Browser on any device (although performance may vary considerably between devices). On modern browsers JPEG Stream can operate in a more efficient mode using web sockets which helps playback performance.  Since this mode is just images, there is no sound, but the latency on the stream is almost zero.


HLS HTTP Live Streaming mode:  This mode uses Apple HLS to deliver a reliable and high quality audio and video stream to viewers, and requires an HLS compatible browser. Most modern Web Browsers on mobile devices and sophisticated operating systems support HLS. HLS works by chopping the video stream into pieces of 1-10 seconds which are fed to the viewer. This means that latency on HLS is based on the length of the first few pieces which must all be ready before the stream starts.  Typically this means at least 5 seconds latency between the NDI source and the delivered HLS.  Also, the HLS engine in the web browser will take a few seconds to get started. NB. HLS Mode is not currently available in the Ubuntu version of NDI WebLink.



In both Modes users can control the Quality - which also adjusts the bandwidth used. For HLS you can additionally control the Buffer size, which alters the size of the HLS buffers - for a local area network you can usually leave this set to the lowest value, which delivers a latency of 5-7 frames, but for poor quality networks you can increase the buffer to accomodate choppy connectivity.


In JPEG mode, you can adjust the Quality whilst the stream is flowing, since it alters per frame, but for HLS mode you can only adjust latency when no transcoders are active. To force external viewers to disconnect and release the transcoders, you can uncheck "HLS Streams" to allow you to adjust the sliders before re-checking the box.  At this point external viewers will need to reconnect.


Another checkbox at the bottom of the window enables "Full Raster" which uses the fill pixel resolution of the NDI source. This gives best quality but increases the data rate and the load on the sending and receiving CPUs and the network connection. When this checkbox is off, NDI WebLink uses the Proxy represenation from the NDI Stream which is scaled down version, although still generally adequate quality.





To connect to either type of stream, navigate any web browser to the IP Address of the NDI Weblink computer on port 8994, for example

You will be presented with the choice of HLS or JPEG mode.  Click on the appropriate button to proceed. You can also navigate directly to either page with the /jpeg.html or /hls.html which you can also access locally with the 2 buttons in WebLink: HLS Live Stream and Source Monitor (JPEG).






After selecting the source type you will see the NDI WebLink splash screen.  Now you can click in the middle of this screen and it will present a list of discovered NDI Sources for you to choose from.





Click on the desired NDI Source, and WebLink will startup a transcoder to serve your playback.  Be patient since this takes a few seconds.


If you are using a JPEG mode viewer, you should start to see images on the screen after a few seconds.





However, if you are using the HLS mode, you will see the WAITING image. This tells you that NDI WebLink is starting up an HLS Streaming transcoder for you and it is currently building up enough buffers of encoded video to get started.  This usually takes a number of seconds, so be patient.



Once the NDI WebLink end has generated enough buffers you will see the LOADING image.  This means that your local browser is downloading the first few buffers and is getting ready to play.


Depending on which device you are using the video may start to play automatically after a few seconds, or you may need to press the PLAY icon.  Platforms like iOS dont allow video to autoplay so a user-intervention is required to start playback.


If you want to change NDI Sources at any time, just click in the middle of the window and you will see the NDI Source Selector again.


Closing the viewer window will shut down the transcoder engine in WebLink after 10-15 seconds.


NDI WebLink uses ports 8993, 8994 and 8995, all TCP.  You will need to port forward these 3 ports to your NDI WebLink machine to enable operation outside of your NAT local area network.



Some reports of issues with WireCast 8.20 have surfaced, where HLS mode doesn't appear to stream in web browsers from WireCast sources (but works fine from other NDI Sources).  This is due to an issue with the version of NDI shipped with WireCast 8.20. There is a workaround to solve the problem.  If you need this please email us on the address below.