A C++ implementation of the AMWA NMOS specifications for discovery, registration, and connection management in networked media systems.
nmos-cpp is an open-source C++ library and application suite that implements the AMWA Networked Media Open Specifications (NMOS). It provides a NMOS Registry (for discovery and registration) and a NMOS Node (a virtual media device), solving the problem of interoperability in IP-based media workflows by standardizing how devices find each other and manage connections.
Media systems engineers, broadcast equipment vendors, and software developers building professional media-over-IP products, ST 2110 systems, or any application requiring standardized device discovery and control in networked media environments.
Developers choose nmos-cpp because it's a proven, JT-NM Tested reference implementation of the NMOS specs, offering a robust, portable C++ codebase that reduces development time and ensures compliance with industry standards for interoperability.
An NMOS (Networked Media Open Specifications) Registry and Node in C++ (IS-04, IS-05)
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements a wide range of AMWA NMOS specs including IS-04, IS-05, IS-07, IS-08, and BCPs, ensuring full interoperability in professional media workflows, as listed in the README.
Built with CMake and tested on Linux, Windows, and macOS with various DNS-SD backends like Avahi and mDNSResponder, making it portable across different environments.
Supports secure communications per BCP-003 with TLS, HTTPS, WSS, HSTS, and OCSP stapling, essential for protected media networks, as highlighted in the build-test status.
Used as a reference implementation in the JT-NM Tested programme, with several vendors deploying badged products, ensuring reliability and standards adherence.
Requires managing multiple external dependencies like Boost, OpenSSL, and DNS-SD backends, which complicates setup and maintenance, as noted in the dependencies documentation.
Assumes deep knowledge of both C++ and the NMOS specifications, with the example applications being basic starting points that need significant customization for real products.
The Conan package is only occasionally published at Conan Center Index, which might delay access to latest features or fixes for teams relying on package managers.