Streaming Recorded Videos to Twitch

Every now and again I have a need to stream pre-recorded videos to the Twitch Platform. It took me awhile to work out how this can be achieved which turned out to be a multi-step process.

In my case, I have a Rock64 single board computer running Ubuntu and Windows File Sharing (SMB), this has allowed me to create a network drive where I can put in a mp4 file and once this is seen, the rock64 will begin automatically streaming to twitch.

The first step is to install a program called Watchman which was initially developed by Facebook, it allows a folder to be monitored and when a specific file, or extension is detected it can be used to trigger an event.

The Instructions for watchman can be found here.

In terms of configuring watchman, I used the following command;

sudo watchman — trigger /home/rock64/share ‘*.mp4' — sh /home/rock64/

This command tells watchman to watch the directory /home/rock64/share, and if it sees any file with the MP4 extension it should run the script at /home/rock64/

The script is fairly simple, and can be seen below;

for i in $@
ffmpeg -re -i $i -c copy -g 30 -f flv “rtmp://”
rm $i

This command basically loops through each of the files, and runs FFMPEG to stream the file to the rtmp server address which can be found from twitch. I have not tried multiple files (I suspect it might try to play more than one) but for one file it seems to work fine.