All required files
All files like, ready to use Ubuntu image and test video could be founded here
Install Easy-NMOS
-
Install VMware Workstation
-
Install Ubuntu 22.04 on virtual machine
ubuntu-22.04.3-desktop-amd64.iso
or
download ISO from https://ubuntu.com/download/desktop
-
Install Docker (https://github.com/rhastie/easy-nmos/blob/master/install_docker.md)
Install needed script dependencies using your package manager:
sudo apt-get install curl
Install git:
sudo apt-get install git
Clone repository to your virtual machine:
git clone <https://github.com/rhastie/easy-nmos>
or copy files manually:
\ST2110\easy-nmos-master.zip
Change your directory:
cd /home/$USER/easy-nmos/
Install latest Docker and Docker-compose:
sudo ./install.sh
-
Run this command to check installed docker:
sudo docker run hello-world
If everything installed correctly, you receive this message:
-
Now you need three free IP addresses. I used 192.168.10.90, 192.168.10.91, 192.168.10.92. Add these addresses to
docker-compose.yml
(which you cloned from repo). And change subnet mask at the very end of file.Here is an example of file:
version: '3.6' services: # Create NMOS Registry/Controller container instance nmos-registry: image: rhastie/nmos-cpp:latest container_name: nmos-registry hostname: nmos-registry domainname: local ports: - "80-81:80-81" - "1883:1883" volumes: - "./registry.json:/home/registry.json" environment: - RUN_NODE=FALSE networks: external: ipv4_address: '192.168.10.90' # Create NMOS Virtual Node container instance nmos-virtnode: image: rhastie/nmos-cpp:latest container_name: nmos-virtnode hostname: nmos-virtnode domainname: local ports: - "80-81:80-81" volumes: - "./node.json:/home/node.json" environment: - RUN_NODE=TRUE networks: external: ipv4_address: '192.168.10.91' depends_on: - nmos-registry # Create AMWA NMOS Testing container instance nmos-testing: image: amwa/nmos-testing:latest container_name: nmos-testing hostname: nmos-testing domainname: local entrypoint: | /bin/bash -c "/etc/init.d/dbus start; /etc/init.d/avahi-daemon start; python3 nmos-test.py" ports: - "5000:5000" volumes: - "./UserConfig.py:/config/UserConfig.py" networks: external: ipv4_address: '192.168.10.92' depends_on: - nmos-virtnode networks: external: # Create external macvlan subnet using host physical interface allowing containers to have their own IP addresses driver: macvlan driver_opts: parent: ens33 ipam: config: - subnet: 192.168.10.0/24
-
Start Easy-NMOS:
sudo docker compose up
Connection
In our test environment, we're connecting DeckLink IP cards according to this scheme:
TP-Link TL-SX105 – 10G Switch. When plugging into your network, make sure you connect via a Cat 6 (or higher) network cables.
Configure
After connecting the DeckLink IP cards, you need to set IP address manually if your network does not have DHCP server:
After that, you will see your DeckLink IP/SDI HD cards in the list of nodes.
To configure the receiver, you need to select the desired device, in my case it is First/Video:
Next “Connect”:
And then you need to select the source card (in my case, the card name is “Second/Video”). And note that the “Active” switch must be turned on (purple arrow):
Done, now you can send video using BMD samples (CapturePreview.exe and SignalGenerator.exe) or Medialooks SDK (Playlist Sample). For initial test, please use HD1080_25p video format and ARGB pixel format.
Note: video is output simultaneously to both SDI and Ethernet.
And you can receive the video using Writer Sample. Select Ethernet: