Setting up a VideoCoin Worker on Jetson Nano

Jetson Nano is popular for its AI capabilities in a small form factor and enabling numerous AI applications. But it also packs powerful HW Codecs for H.264/H.265 format and supports encoding and decoding up to Ultra HD resolutions. Unlike other Jetson devices, Nano has a port of ffmpeg that uses HW codecs. Availability of ffmpeg on Nano makes it readily integrate with VideoCoin Network, and provides a very power efficient VideoCoin Worker.

Setup

Follow the usual setup of downloading Ubuntu 18.04 64 bit OS and flash the microSD card as per the instruction specified in the following NVidia’s developer site :

Download and setup Ffmpeg for Nano

The following git repo contains a patch for enabling FFMPEG to use on Jetson Nano.

Follow the instructions in the site and prepare ffmpeg to use Nano HW Codecs,

Download the VideoCoin Worker Binaries for Nano

You can learn more about setting up a worker here

Setup VideoCoin Worker in VideoCoin Network Console

Use the “Worker” tab in VideoCoin Network Console and create the worker. The “Client Id” assigned to the worker needs to be used while running the worker as described in the following section.

Starting the worker

Download the binary “worker-linux-arm64” from the link to Jetson Nano.
Use the following command to start the worker in a terminal window

./worker-linux-arm64 start -k <worker key file> -s <password> -c <client-id>

<worker key file>: Worker wallet file in UTC/JSON format. This wallet should be self staked before using with the worker.

<password>: Password for the <worker key file>.

<client-id>: Client ID created for the worker using VideoCoin Console( worker page )

Example:

./worker-linux-arm64 start -k worker_key.json -s test123 -c 26cfe429-4479-4c5c-b988-d7c82991cd75

When the worker is running, you should see the messages something as follows:

Please note that you can use a utility such as systemd or start-stop-daemon to run the worker as a background process:
http://manpages.ubuntu.com/manpages/trusty/man8/start-stop-daemon.8.html
http://manpages.ubuntu.com/manpages/xenial/man1/systemctl.1.html

Testing the Ffmpeg installation:

After installing Ffmpeg as specified in the setup section, you may run the following command to verify the installation:

ffmpeg -f lavfi -i testsrc=duration=10:size=1280x720:rate=30 -c:v h264_nvmpi test.mp4

This command generates a test video input of 10 seconds, 1280x720@30fps internally using a video filter and transcodes the input to an output file test.mp4

Installation of ffmpeg binaries is missing in the repo https://github.com/jocover/jetson-ffmpeg.
After building the ffmpeg as per the instructions in section 2.patch ffmpeg and build, install it using the following instruction:

sudo make install