Bitfocus AS
logo
logo
Bitfocus AS
logo
logo
Sign upSign in

Loading...

Bitfocus

Subscribe to our newsletter

The latest news, articles, and resources, sent to your inbox.

FacebookInstagramGitHubYouTubeLinkedIn

Products

  • Buttons
  • Companion

Integrations

  • Supported Devices
  • Developer Community
  • Connection Development

Support

  • Support Overview
  • Documentation
  • Video Tutorials
  • Community Forum

Sales

  • Resellers & Integrators
  • Buttons Pricing

Updates

  • Case Studies
  • Events & Trade Shows
  • Press Releases
  • Product Updates
  • Webinars

Legal

  • Legal Overview
  • Privacy Policy
  • Buttons EULA
  • Terms & Cookie Policy

Company

  • About us
  • Press kit
  • Careers

© 2026 Bitfocus AS. All rights reserved.

Understand NMOS in Buttons
Docs for
Overview
Getting started
What is Bitfocus Buttons?
Install Buttons and get started
Manage your Buttons license
Activate Buttons offline
Find your way around Buttons
Create your first backup
Add an ATEM connection
Choose a control method
Choose an installation path
Install Buttons on Debian or Ubuntu
Understand HA clustering
Kubernetes HA
Update or remove Buttons
Positions
Understand positions
Create a position
Add controls and sections to a position
Create your first button
Use a connection's presets
Build more capable button actions
Add more feedback to a button
Organize controls in a section
Shift Section
Organize controls with a Folder Section
Add a Popover Section
Build and reuse a Shared Section
Build a Router Section
Understand Custom Routers
Custom Router panel
Surfaces
Surface compatibility
Add and attach a surface
Device orientation
Connections
Update a connection's module safely
Monitor and troubleshoot a connection
Router integrations
VideoHub and AJA KUMO
Utah Scientific BPS
Generic SW-P-08
Nevion VideoIPath
Arkona BLADE//runner
Routing
Physical routing
Configure ports and labels
Take a physical route
Understand route status
Topology graph
Routing Presets
Get started with virtual routing
Configure Nested Shapes
Reverse routing
Tielines
Routing Projects
Routing settings
Troubleshoot a route
Tally
Understand the Tally system
Send ATEM tally and labels to a UMD
Interpret Active Tally state
TSL/UMD connections
Diagnose tally problems
NMOS
Understand NMOS in Buttons
Connect Buttons to an NMOS Registry
Built-in Registry Server
Configure NMOS connections
Discover and adopt
Browse the NMOS inventory
Manage NMOS multicast addresses
Diagnose NMOS problems
Understand Cuelists
Build a Cuelist
Read and advance a running Cuelist
Control a Cuelist from a Position
Workflows
Understand workflows
Build your first workflow
Reuse a group of workflow nodes safely
Troubleshoot a workflow
Recipes
Sequence a timed automation
Call an HTTP endpoint from a workflow
REST endpoint
Use variables
Understand variable scope
Understand nested variables
Update expressions for v1.8
Plan and use Tags
Access
Create and manage users
Create roles and assign permissions
Grant access to specific resources
Show different controls by role
Sessions
Set up PIN and NFC sign-in
SSO
Get started with SSO
Connect a generic OIDC provider
Connect LDAP or Active Directory
Map identity claims to roles
Secure a Buttons deployment
Integrations
External control
Connect to Bitfocus Listener
USB Relay
Install USB Relay on Windows
Install USB Relay on macOS
Install USB Relay on Linux
Install USB Relay on a Raspberry Pi
Get started with the Control API
Secure and monitor the Control API
Control API reference
API reference
Administration
Enable and manage installable features
Services and health
Configure and monitor scheduled backups
Restore a backup and verify it
Export or import Buttons configuration
Store and rotate connection secrets
Replace the HTTPS certificate
HA backup and recovery
Settings
Collect support information
Reference
Glossary
Button Inspector reference
Network ports reference
Expressions
Internal actions reference
Routing Presets panel reference
Startup configuration reference
Workflow nodes
Connection workflow nodes
Workflow workflow nodes
Internal workflow nodes
Position workflow nodes
API workflow nodes
Utility workflow nodes

Loading...

Previous
← NMOS
Next
Connect Buttons to an NMOS Registry →
Contact support →
You are viewing documentation for Buttons 1.8.See the docs for Buttons 1.6
Buttons/NMOS/Understand NMOS in Buttons

Understand NMOS in Buttons

NMOS (Networked Media Open Specifications) lets IP media devices from different vendors describe themselves and expose controllable connections in a consistent way. Instead of learning a proprietary integration for every camera, mixer, or gateway on the network, Buttons can discover NMOS-speaking devices, understand what each one can send or receive, and route between them the same way it routes any other connection.
This page explains only the NMOS concepts you need to configure Buttons correctly. It does not cover the full AMWA specifications.

The pieces and how they fit together#

Node (one NMOS-speaking device or software instance)
→ Device (a logical function the node hosts)
→ Senders and Receivers (what that device can transmit or accept)
  • A Node is one thing on the network that speaks NMOS: a camera, a software gateway, a multiviewer. A node advertises itself so it can be found, and exposes an API describing its own resources.
  • A Device is a logical function hosted by a node. A single node can host more than one device: for example, a multi-channel gateway node might expose a separate device per channel.
  • A Sender is something a device can transmit onto the network: an output. A Receiver is something a device can accept a stream into: an input. These are the resources you actually route.
  • Internally, NMOS also models a Source (the raw origin of the content) and a Flow (one formatted version of that source, such as a specific video format). Buttons uses these to resolve compatibility but does not surface them as something you configure directly.
A Registry is a shared directory where nodes can register themselves so they can be found without entering an IP address for every device by hand. Buttons can run its own registry, connect to someone else's, or skip registries entirely and find nodes directly on the local network.

Two ways Buttons finds nodes#

  • Peer-to-peer (mDNS) discovery: nodes announce themselves directly on the local network, and Buttons finds them without any registry in the middle. This is the simplest path for a small or flat network.
  • Registry-based discovery: nodes register into a Registry, and Buttons connects to that Registry to see everything it knows about in one place. This scales better across larger or segmented networks, and it's the only practical option when nodes and Buttons aren't on the same local segment for mDNS to reach.
Buttons can also look up registries themselves via DNS-SD instead of mDNS, which matters more on networks that route mDNS traffic differently or not at all.

Discovery and adoption are different steps#

Being discovered only means Buttons can see that a node exists: its type, label, and address. Adoption is the separate step that turns a discovered node into a real Buttons connection: only an adopted node's Senders and Receivers become available to route.
This distinction matters because visibility never implies control. A node can be fully visible and still need adoption, and once adopted, still need its own resources to be readable, before you can route anything to or from it.

Adopted resources become ordinary routing ports#

Once a node is adopted, its Senders and Receivers appear the same way any other connection's ports do: under Sources for what you can route from the node, and Destinations for what you can route to it. You don't need to think in NMOS terms (sender, receiver, IS-04, IS-05) to take a route once adoption is done; you work with the same bundles and ports used everywhere else in Buttons.
The one place NMOS's own resource model surfaces directly is a node's own Node detail tab, which lists its raw Devices, Sources, Senders, and Receivers as NMOS describes them: useful when you need to confirm exactly what a device is advertising, separate from how Buttons has organized its routing bundles.

Two specifications worth knowing by name#

You don't need deep AMWA specification knowledge to use Buttons, but two names appear throughout the NMOS pages:
  • IS-04 is the discovery and registration layer: it's what lets Buttons find nodes and registries and read their descriptions.
  • IS-05 is the connection management layer: it's what Buttons uses behind the scenes to stage and activate an actual route once you select Take.
Buttons handles the IS-05 mechanics itself; you don't stage or activate connections manually. Buttons speaks IS-05 versions v1.0 through v1.2 and prefers the newest a device advertises, so devices that only implement the older v1.0 connection API (common on some ST 2110 hardware) still route.

Where to go next#

  • Discover, adopt, and route NMOS resources, for the shortest path from a visible node to a working route.
  • Set up the built-in NMOS Registry Server, if Buttons should host the registry other nodes register into.
  • Connect Buttons to an NMOS Registry, to adopt nodes a registry already knows about.

Was this helpful?

Was this helpful?

0 of 0 users found this page helpful