Integrating the Blackmagic Videohub SDK into your broadcast workflow allows you to automate SDI routing, build custom control panels, and synchronize signal switching with production software. Because Videohub routers operate on an exceptionally straightforward, text-based TCP/IP layer, developers can integrate them using native C++ libraries or direct raw network sockets. 1. Key Integration Paths
Developers have two main options for interacting with the Videohub hardware ecosystem:
The Native C++ SDK: Blackmagic provides comprehensive C++ libraries and software sample code. This is ideal for compiling high-performance, native applications embedded inside desktop environments (Windows, macOS, Linux) or complex broadcast automation systems.
The Videohub Ethernet Protocol: Instead of linking code libraries, developers can communicate over the network via TCP Port 9990. It is entirely text-based and readable, making it easy to implement with Python, Node.js, or embedded devices like Raspberry Pi and Arduino without compiling C++. 2. Core Architecture & Protocol Behavior
To design your control software, you must account for how the Videohub communicates and maintains its state:
State Dumps: Upon establishing a TCP connection to port 9990, the Videohub immediately drops a complete status block containing all metadata (e.g., current routing matrix, input labels, output labels).
Asynchronous Push Notifications: The Videohub serves as a single source of truth. If a physical button is pushed on a rack unit or a change is made from an official Videohub Smart Control Pro panel, the router actively broadcasts the new block changes to all connected network clients.
Response Handshaking: Commands sent to the Videohub return an immediate acknowledgment (ACK), or a negative acknowledgment (NAK) if a syntax error occurs, followed shortly after by the broadcasted status update.
[Your Custom Broadcast App] —- (TCP Port 9990) —-> [Blackmagic Videohub] | | |—- 1. Establish Connection —————————–>| |<— 2. Full State Dump (Labels, Routing Matrix) ———-| (Parses initial setup) | | |—- 3. Send Route Command (VIDEO OUTPUT ROUTING:) ——–>| |<— 4. Receive Immediate ACK / NAK ———————–| (Validates syntax) |<— 5. Broadcast State Update (To all clients) ———–| (Confirms cross-point switch) 3. Basic Code Syntax (Ethernet Protocol)
The communication format relies on block headers in ALL-CAPS followed by a colon, line-terminated attributes, and an empty trailing line to close the execution block. Querying or Modifying Routes
Leave a Reply