Video streaming from Blackmagic Atem Mini Pro to AWS MediaLive

974 views Asked by At

Has anyone managed to stream from Atem Mini Pro to AWS MediaLive?

This works fine from OBS, but will not work from the Atem with a customised streaming.xml file.

I have previously customised streaming.xml to work Atem > Wowza. So I know it should work. But the red ON AIR message just flashes and it will not connect.

I have tried changing the MediaLive input codec to AVC/MPEG2, but no joy. Can anyone please help?

Thank you!

2

There are 2 answers

2
RickE On

A. Create a MediaLive RTMP Push input. Set the Input Security Group Set the Application Name and the Application Instance. The Application Instance is also called the Stream Key or Streaming Key Press the Create button The console will now display the endpoint(s) created for the input.

As an example set the Application Name to 'live' and the Application Instance to 'AtemPro_1' You would see the RTMP input endpoint then defined as 'rtmp://<IP_Addr>:1935/live/AtemPro_1' The stream URL used in the streaming.xml file will be the portion 'rtmp://<IP_Addr>:1935/live/', i.e. rtmp://Addr:Port/ApplicationName/

B. Edit the Atem Streaming.xml file.

  1. Locate the Streaming.XML file
    1. Mac location: /Library/Application Support/Blackmagic Design/Switchers/Streaming.XML
    2. Windows location: C:\Program Files (x86)\Blackmagic Design\Blackmagic ATEM Switchers\ATEM Software Control\Streaming.XML
  2. Make a copy of the Streaming.XML file, to ensure you have a backup to fall back on if you make a mistake.
  3. Open the file in a text editor and edit the parameters - see below for an example
  4. Save the document, and back it up — every time you update your ATEM software, this file will be overwritten
  5. Quit and relaunch the ATEM Software - this reloads the Streaming.xml file in to the switcher.
  6. Select the service that you just created, select the server that was created, select the appropriate quality, enter the streaming key, then start the MediaLive channel and then the stream.

Example Streaming.XML file:

<streaming>
    <service>
        <name>AWS MediaLive</name>
        <servers>
            <server>
                <name>Primary</name>
                <url>rtmp://<IP_Addr>:1935/live</url>
            </server>
        </servers>
        <profiles>
            <profile>
                <name>Streaming 1080p30 6M Audio 128k</name>
                <config resolution="1080p" fps="30">
                    <bitrate>6000000</bitrate>
                    <audio-bitrate>128000</audio-bitrate>
                    <keyframe-interval>2</keyframe-interval>
                </config>
            </profile>
            <profile>
                <name>Streaming 720p60 6M Audio 128k</name>
                <config resolution="720p" fps="60">
                    <bitrate>6000000</bitrate>
                    <audio-bitrate>128000</audio-bitrate>
                    <keyframe-interval>2</keyframe-interval>
                </config>
            </profile>
        </profiles>
    </service>
</streaming>

You can define any number of profiles from which you can then select one for the specific event.

C. Configure the event. Once the file has been edited and saved, simply restart the ATEM Software Control application, and select the Output Tab, then select the Platform, which in the example above is called "AWS MediaLive". Select the Server (Called Primary in the example), set the Stream Key to the Application Instance you defined when creating the MediaLive Input, and finally select the profile to be used.

To start streaming to MediaLive, either:

  • press the ON AIR button (top right) on the ATEM Mini Pro
  • click the ON AIR button on the software

If everything is correct, then the ON AIR button on the ATEM Mini Pro will go RED, and the software will show ON AIR, with the time code incrementing. If any of the parameters are incorrect, say the key is invalid, then the ON AIR will flash, and the timecode will not increment.

Note that the MediaLive channel must be in the Running state before the RTMP session handshake can complete between the Atem and the MediaLive channel. Therefore, start the MediaLive channel, and once shown to be in the running state only then start streaming on the Atem.

1
RickE On

Silverink We've successfully tested Atem Mini Pro - RTMP - MediaLive. Looking at your update, the issue may be one of two things:

  1. Did you copy the Application Instance as defined in the MediaLive Input to the Key field (between the Server and Quality fields) in the Atem streaming SW? Note this field is case sensitive and must match exactly the field as entered in the MediaLive Input.
  2. Did you define an Input Security Group in the MediaLive console that allows for traffic from the WAN IP address of your Atem Mini Pro. You want to test with an ISG set to 0.0.0.0/0, just to see if this is the issue, and then when that works tighten it down to a specific address/address range to make the workflow more secure. It is not recommended to run a production workflow with such an open ISG...

If both of these are correct then we will need more detailed info from you to allow us to troubleshoot your MediaLive channel to see what issues it reports. This is not info we can request in an open forum such as this. I would suggest then to either open a ticker from the Support Center that is available in the top-right corner of the MediaLive console. Or you can post a question in the AWS Elemental MediaLive forum (https://forums.aws.amazon.com/forum.jspa?forumID=269), and someone from support will reach out to ask for the specific information needed.