videohubctrl - Blackmagic Videohub control application ====================================================== Blackmagic Design Videohub is SDI router device which can be controlled over the network using very simple text based protocol which videohubctrl implements. videohubctrl is tested with Blackmagic Design Micro Videohub 16x16 router and probably will work with other Videohub models. videohubctrl currently displays and can configure: - Video input port names - Video output port names - Video output routing - Video output locking The following features found in bigger Videohub models are currently not supported (I don't have the hardware): - Configuration of video processing units - Configuration of Video monitoring outputs - Configuration of Serial ports Configuration of Videohub's network settings can be made using Blackmagic's Windows program when the device is connected via USB. License ======= videohubctrl is released under MIT license. See LICENSE-MIT.txt for full license terms. Command line parameters ======================= videohubctrl is controlled using command line parameters. Here is a list of supported command line parameters: Usage: videohubctrl --host [..commands..] Main options: -h --host | Set device hostname. -p --port | Set device port (default: 9990). Misc options: -d --debug | Increase logging verbosity. -q --quiet | Suppress warnings. -H --help | Show help screen. -V --version | Show program version. Commands: -i --info | Show device info (default command). -m --monitor | Show real time monitor for config changes. -b --backup | Show the command line that will restore . the device to the current configuration. Video input/output configuration: --vi-name | Set video input port X name. --vo-name | Set video output port X name. --vo-route | Connect video output X to video input Y --vo-lock | Lock output port X. --vo-unlock | Unlock output port X. NOTE: For you may use port number or port name. Environment variables ===================== The following environment variables are checked and used by the program if they are set: VIDEOHUB_HOST Sets the device host name. It is equivallent to using -h / --host command line parameter. VIDEOHUB_PORT Sets the device port. It is equivallent to using -p / --port command line parameter. Example usage ============= # Rename video output videohubctrl -h sdi --vo-name 8 "Output 8 - test" videohubctrl -h sdi --vo-name "Output 8 - test" "Output 8" # Rename video input videohubctrl -h sdi --vi-name 4 "Windows 4 HD" videohubctrl -h sdi --vi-name "Windows 4 HD" "CPlay4" # Lock and then unlock output 16 (unlock assumes that the port is # named Output 16). The hostname is set via env variable. export VIDEOHUB_HOST=sdi videohubctrl --vo-lock 16 videohubctrl --vo-unlock "Output 16" # Set two outputs to receive from the same input using port names videohubctrl -h sdi --vo-route "Output 8" "Windows 4 HD" videohubctrl -h sdi --vo-route "Output 7" "Windows 4 HD" # Run several commands at once # Rename video input 11 and 12 # Rename video output 5, # Set output 5 to receive from input 12 # Lock output 5 videohubctrl --host sdi \ --vi-name 11 "Test input" \ --vi-name 12 "Playout input" \ --vo-name 5 "Encoder h264" \ --vo-route 5 12 \ --vo-lock 5 Example output ============== Here is how videohubctrl output looks like: |----------------------------------------------------------------------| gf@gf:~/git/videohubctrl$ ./videohubctrl --host sdi-matrix Device info ----------------------------------------------------------- | Device address | sdi-matrix | | Device port | 9990 | | Model name | Blackmagic Micro Videohub | | Unique ID | 7c2e0d021714 | | Protocol | 2.4 | | Video inputs | 16 | | Video outputs | 16 | ----------------------------------------------------------- Video inputs --------------------------------- | ## | Video input name | --------------------------------- | 1 | Windows 1 | | 2 | Windows 2 | | 3 | Windows 3 | | 4 | Windows 4 HD | | 5 | Input 5 | | 6 | Input 6 | | 7 | Input 7 | | 8 | Input 8 | | 9 | Input 9 | | 10 | Input 10 | | 11 | Input 11 | | 12 | DPlay1 | | 13 | DPlay2 | | 14 | Input 14 | | 15 | Input 15 | | 16 | Loopback | --------------------------------- Video outputs ---------------------------------------------------------------- | ## | x | Video output name | Connected video input | ---------------------------------------------------------------- | 1 | L | Enc1 1 | Windows 3 | | 2 | L | Enc1 2 | Windows 2 | | 3 | L | Enc1 3 | Windows 1 | | 4 | L | Enc1 4 | Windows 1 | | 5 | | Output 5 | Input 5 | | 6 | | Output 6 | Input 6 | | 7 | | Output 7 | Input 7 | | 8 | | Output 8 | Input 8 | | 9 | L | Enc2 1 | Windows 4 HD | | 10 | | Output 10 | Input 10 | | 11 | | Output 11 | Input 11 | | 12 | L | Denc | DPlay2 | | 13 | O | Output 13 | DPlay1 | | 14 | | Output 14 | Input 14 | | 15 | | Output 15 | Input 15 | | 16 | O | Loopback | Loopback | ---------------------------------------------------------------- gf@gf:~/git/videohubctrl$ |----------------------------------------------------------------------| Video outputs Legend ==================== Column 1 (##) - Input port number Column 2 (x) - Output port lock status L - The port is locked by another IP address (user) O - The port is locked by me (from my IP address) Column 3 - Output port names Column 4 - Which input port is routed to this output Development =========== The development is done using git. videohubctrl repository is hosted at http://github.com/gfto/videohubctrl To clone the repository issue the following commands: git clone git://github.com/gfto/videohubctrl.git cd videohubctrl git submodule init git submodule update make The code is developed and tested under modern Linux. It's also compiled from time to time under OS X but it's not tested there. Updating the code ================= To update cloned videohubctrl, go to the directory where the repository is cloned and run the following commands: git fetch origin git merge origin/master git submodule update make clean all videohubctrl's master branch should always be useful so it is safe to use it instead of official release. The master branch will always be better than any released version. Reporting bugs ============== If you think you have found bug in videohubctrl, please report it to the e-mail listed in Contact section (see below) of this README file. When reporting bugs, please send the whole output that videohubctrl generated (preferably by using --debug option) and also the full command line which you used and describe what you think the videohubctrl does wrong. Releases ======== Official releases can be downloaded from videohubctrl home page which is http://georgi.unixsol.org/programs/videohubctrl/ Contact ======= For requests, patches, bug reports, complaints and so on send e-mail to Georgi Chorbadzhiyski