Low Latency Viewer


A streaming h.264 video player

Low latency viewer is a simple player for H.264 streams from an IP camera. It doesn't make use of graphics (GPU) acceleration but it achieves a good latency. Depending on the camera 120 - 150ms end-to-end latency for a 1080p stream is possible. With faster hardware the best results are ~70 ms end-to-end.


It's a test tool, not suited for  movies (no audio). There is a binary version for Windows and Linux. These are statically linked and free of dependencies, so zero-install. For Linux this may not be 100% true, depending on your setup some installation of extra components may be required


Features

  • H.264 (base/main/high profile)
  • HTTP-JPEG
  • RTSP with unicast and multicast UDP-RTP, TCP-over-RTSP transports
  • Basic and Digest Authentication
  • Commandline interface and GUI
  • Joystick PTZ-control for Axis cameras (0.0.3)
  • Single self-contained executable, no install
  • Client-side metadata overlay of some camera analytics
  • Some error condition overlays explained on the documentation page

What makes it low latency?

  • It shares the load (receive & reconstruct, decode, scale, render) over multiple threads
  • When it runs late:
    • Skips remaining P-frames in the queue when an I-frame arrives
    • Drops scale/render but continues to decode to keep consistent decoder state
  • Explicitly requests I-frames in case of decode error, thus allowing very long GOPs, which improves networkload and with that jitter/latency
  • By default it does not attempt to correct jitter

What makes it a test tool?

  • Lack of playback features :)
  • It highlights errors. Jitter will be visible, overlays are shown for packetloss, frame drop or running late.

Compared to VLC

VLC is complete media application which can play-, record-, convert- and stream almost every media format. Llv just plays a h.264 videostream in a simple way. It does add some IP camera-, mostly Axis-, specific tricks. The main differentiator is low latency, which is something VLC is not. But VLC is a must-have companion program. Where Llv is not enough and you need to use VLC, here is a page with tips.

Credits

The program builds on Open Source, most importantly FFmpeg, wxWidgets, libcurl and the GNU Compiler. The portal is built on Django running on nginx/gunicorn. Even with all those free tools around it wouldn't be possible without all the guidance found on StackOverflow.