ATEMModule is a PowerShell binary module (compiled C# cmdlets) that controls Blackmagic ATEM video switchers. It's a thin PowerShell-facing wrapper over LibAtem (a vendored git submodule at LibAtem/), which implements the ATEM network protocol over UDP.
It is written for .Net Core 3.0 and has been tested on Windows, Mac OSx and Linux (including Raspberry Pi)
Download a version from https://1drv.ms/u/s!ApGpqMMpRLhik5E1tVgBIJ0eq5wx2A?e=3jgAVQ
Install .net runtime or framework for Mac, Linux or Windows from https://dotnet.microsoft.com/download
Release archives contain the same portable .NET 8 module for Windows, Linux, and macOS. PowerShell 7.4 or newer is required. Extract the archive and import the module manifest:
Import-Module ./ATEMModule/ATEMModule.psd1To build the three archives, initialise the LibAtem submodule, restore the
project dependencies, and run ./build-release.ps1. The archives are written
to artifacts/releases; use -OutputPath to choose another directory and
-Force to replace existing archives.
You can connect to multiple ATEM's. E.g.
$AtemMini = Add-ATEMSwitch -IPAddress "192.168.1.10"
$AtemISO = Add-ATEMSwitch -IPAddress "192.168.1.71"
Using Mix Effect commands:
Set-ATEMMEProgramSource -ATEMref $AtemMini -MEID 0 -InputID 1
Where parameters are required, they are positional so the -directive can be omitted. E.g.
Set-ATEMMEProgramSource $AtemMini 0 1
Set-ATEMMETransitionProperties $AtemMini 0 -TransitionType DIP # or Mix, Dip, Wipe & Stinger
Set-ATEMMEWipeParameters $AtemMini 0 TopToBottomBar
Other commands:
Set-ATEMMEPreviewSource
Set-ATEMMEAutoTransition
Set-ATEMMECut
Set-ATEMMEFadeToBlack
Set-ATEMAuxSource
Set-ATEMStreamingStatus -ATEMref $AtemMini -StreamStatus $true
The image passed to Set-ATEMMediaPoolStillFrame must match the switcher's
video resolution exactly. The -Resolution parameter defaults to _1080
(1920 x 1080); specify the switcher's actual resolution for other video modes.
Resize or pad an image before uploading if its dimensions do not match.
Use the same resolution when downloading a still.
Set-ATEMMediaPoolStillFrame -ATEMref $AtemMini -stillID 0 -FilePath '.\still.png' -Resolution _1080
Get-ATEMMediaPoolStillFrame -ATEMref $AtemMini -stillID 0 -FilePath '.\downloaded.png' -Resolution _1080For a hardware transfer check, run
.\Tests\test-media-still-transfer.ps1 -UploadPath '.\still.png' -Resolution _1080 -AtemIp '192.168.1.10'.
This overwrites the selected still slot; compare the downloaded image with the
original, allowing for colour-conversion differences.
LibAtem is distributed under the GNU Lesser General Public License LGPLv3 or higher, see the file LICENSE for details.