Thursday, May 14, 2020

Live Streaming AmigaOne X1000

Sorry for the long wait for another blog post. Today I wanted to look at the setup I have done recently which allows me to live stream the output of the AmigaOne X1000 with AmigaOS 4.1 Final Edition Update 1 to the internet via Twitch!

The last month has been very difficult for me to say the least. 

Work was very busy with the company being taken over, and then finding out that all the IT operations would be moved to Queensland. I was made redundant in the middle of the Coronavirus pandemic last week with many of my colleagues. This is like many others globally too I know. 

Unlike many others affected in Australia by this, I am unable to get government financial assistance as the company I worked for was not impacted much by COVID-19, making me ineligible for government help...great.

Fortunately I saved money for a rainy day, and now it is here. I will be ok for a bit, while looking for a new job. With the market right now being very tough job-wise, I don't expect to find anything for a while.

This of course means I have some significant free time on my hands, for the first time in many many years.

I decided first to up skill in various IT I am weak in currently, and one of those areas was streaming technologies. I decided to learn more about how it works, what is needed to set it up, and try to weave my love of all things Amiga into it too by streaming some Amiga generated content out to the world live!

I was inspired watching some of my favourite F1 drivers live streaming their esports sim gaming (while motorsports are all stopped) to keep their skills sharp. It was a great way to get to know their real personalities better too outside the cockpit.

To say there was a lot of work to do to get this working was an understatement. But getting it working and live streaming the X1000 on the internet was very satisfying.

I enjoy gaming too, and in addition to the AmigaOne X1000 I was keen to connect my PC, Nintendo Switch and PS4 to stream as well.

To do this I needed a lot of things. Fortunately I had most of them already, and for things I didn't have (like a dedicated webcam) I found an innovative solution from Newtek (remember them?) to use my iPad as a dedicated webcam.

For the capture of the HDMI output from the X1000, I needed a game capture card. Because I plan to use my Mac as the streaming machine (to keep the load off the PC and other devices), I needed to get an external game capture device.

Previously I had purchased a Game Capture HD device for this purpose, but didn't get far with it, as it is limited to using it's own software on the Mac for streaming, which didn't allow me much freedom with how I wanted to stream content. Also, it couldn't stream 1080p, only 720p due to limits of USB2. (it will though pass through 1080p to your screen)

The newer devices are sold out worldwide, and so I found one (Elgato HD60S) second hand, and still boxed, on Ebay. After a thorough cleaning after arrival, I could get to work setting it up.

These Elgato capture devices work by taking an input HDMI source (like PS4, PC, Switch, etc), and passing through the signal to HDMI out port to your normal screen.

They have a USB cable connection to your streaming PC running the software to grab that HDMI data and give it to the PC to process, either to record to the local disk, or stream live to YouTube, Twitch, Facebook live and more.

I then use a HDMI switch box to take multiple HDMI inputs (PC, Switch, X1000), and output to this HD60S.

Something to keep in mind is that this capture device is limited to 1080p60 pass through, so no 4K HDMI connections are possible. The newer HD60s+ model supports this I believe, but I was unable to find one. In any case, most of the systems I am currently using (apart from my PC) are outputting 1080p anyway, so it is not such a big hassle. I changed the PC to output 1080p for now.

One obvious hassle I knew I would hit early on is the audio from the X1000. Unlike the PS4, Switch, PC, etc, the AmigaOne X1000 does not output audio via its HDMI output. Instead it uses a standard line out phono plug via the onboard HDAudio.

So I needed to think outside the box on how to fix this and merge the audio into the HDMI output somehow, before it reaches the capture card.

There is an audio in phono port on the HD60S (unlike the Game Capture HD I was using before), but it is intended to be used for the chatlink function of the PS4, so that audio from the PS4 controller audio input is spliced into the HDMI output. I don't want to use that, since I intended to use it for that purpose later on, and also it is annoying and expensive to buy another set of RCA audio switch box setups and more cables to accomodate different inbound streams in a convenient manner.

The Radeon Southern Island card installed in the X1000 has DVI, HDMI and DisplayPort outputs, as below.

I purchased a VGA to HDMI converter from Jaycar Electronics, which has VGA and RCA audio input, with HDMI blended video + audio output. It uses a USB power source.

I then used a DVI to VGA converter to connect the X1000 to the converter. I then ran a phono to RCA audio cable from the X1000 HDAudio out to the converter.

I then hooked it up and connected to my HDMI switchbox, which then allowed me to see the output on my screen to confirm the normal output was working

I checked the audio output was working using the VGA converter to HDMI and pleased to say it worked perfectly:

Naturally I soon got distracted and tested the audio in a game or two...

With that done, I turned my attention to the streaming part of this setup, which is connected to my "Trashcan" 2013 Mac Pro.

I bought this system second hand from Ebay a few years ago (for a fraction of the price of it new) to replace my similarly ageing 2013 MacBook Pro, which was necessary as the battery had ballooned and made the system unusable. The quote to replace the battery was ridiculous so I replaced with a second hand system instead.

This system is still running Mojave, rather than the newer Catalina. The reason for this is because Catalina dropped 32bit application support, and I still have a number of applications and games that are 32 bit and will not run on Catalina. Including AmiKit XE...I am looking forward to the upgrade for that soon please...

The software provided by Elgato is functional for basic streaming, but I really wanted to use all the cool features that the freeware OBS Studio makes available for streaming.

There is an open source variant of this called Streamlabs, which is the software I wanted to use for streaming, and is based on OBS with some other features added to make streaming easier. It allows to use of themes and programming different inputs and screen layouts to make the stream more professional.

This needed the HD60S device in order to work on MacOS, due to the need to use OBS Link software to connect the game capture device to OBS running under Streamlabs. The older Game Capture HD device doesn't work with OBS Link.

With that working now with Streamlabs (as above), I turned my attention to the webcam so people can see me when streaming.

As you may know quality webcams are in high demand due to the working from home happening globally due to the Coronavirus pandemic. In Australia, it is basically impossible to buy one that support 720p or 1080p streaming right now.

In addition, many countries are simply not shipping to Australia now due to the removal of most flights to/from Australia. This further limits my options!

I do have an Apple Thunderbolt display, and yes, I could use the 720p webcam on that, but I can't easily re-position the screen in the right place while I am streaming, and since it contains the streaming software too, it would be distracting to look at it while streaming live. I don't want to have to move it every time.

I know that I could buy an Elgato Camlink to take a camera input, but that would mean spending more money, which in my current position I don't want to do for obvious reasons.

So, I did some research and found out you can connect iPads and iPhones as webcams over WiFi in Streamlabs using NDI software from Newtek (yep, the Amiga guys) on the iPad! This month Newtek is offering the NDI app on the App store for free so I took full advantage of it.

This meant I could get an easily movable webcam solution without spending any money! Awesome.

Here is the setup, showing the X1000, iPad, PC, Xbox One, with the Mac out of shot on the left.

For those eagle-eyed people, I also tried using the MIST (Pictured) on this setup too, but the resolution outputted is a problem it seems for the capture card to feed correctly. I'll try it again soon.

In the meantime I have working output from the X1000 with audio, ready to stream to the world.

I did this stream on the 13th May 2020 via Twitch. My Twitch profile is here:

If you follow me on Twitch you can be advised when I go live with new streams to view, listen and chat live, or just view the older broadcasts if you miss the live streams. There are some C64 Max and PC gaming streams you can still view too.

You can see the broadcast for another 14 days from when I wrote this blog post - from this link:

In case you missed that, I also recorded this particular stream locally, and uploaded it to YouTube. You can view it below but recommend you click the link instead:

Despite my best efforts, I will soon have to mute sections of the YouTube video audio since YouTube are annoying when it comes to copyright claims. The audio they claim copyright is from Supertuxkart and Prototype games when I was playing them. Seriously? freeware games?

This is why people use Twitch and not Youtube for live streaming. Anyway..

It was fun doing this, and I have a new high respect for the excellent work of Bill Borsari doing the live streams from AMIWest every year. It is a lot more difficult and involved to setup a professional stream than people think - thanks Bill for your hard work to make that happen.

I learnt a lot more now about the technologies involved in live internet streaming, and finally getting my AmigaOne X1000 live streaming to the world. I am sure there will be more to follow.

I hope you enjoy the stream and future ones too!