All required files
All files like, ready to use Ubuntu image and test video could be founded here
Install VMware Workstation
Install Ubuntu 22.04 on virtual machine
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
sudo apt-get install git
Clone repository to your virtual machine:
git clone <https://github.com/rhastie/easy-nmos>
or copy files manually:
Change your directory:
Install latest Docker and Docker-compose:
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
sudo docker compose up
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.
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:
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: