[Prototype] Controlling CasparCG with Elgato Stream Deck

#1
I've been looking for a cheap device for controlling CasparCG, something with tactile buttons but easily customisable. I think I have now finally found that device!

The Elgato Stream Deck https://www.elgato.com/en/gaming/stream-deck

It has 15 buttons, each with their own little LCD screen behind. 72x72 pixels per button. It seems to have bee developed primarily for gamer-broadcasters, Twitch/youTube etc. But I think it'd be perfect for controlling CasparCG with.

So I ordered one, it arrived yesterday so I set about developing a prototype. It doesn't do so much yet, but I have big plans for it! You can see below what I have made so far. I'm testing the performance at the moment to see what refresh rate I can get out of each button. It seems I can update one button at a decent (~30) fps.

I'd love to hear what you think, is it something you think you could use? How would you use it?

// Mark Olsson
IMG_4577.JPG
IMG_4577.JPG (158.65 KiB) Viewed 7103 times

Re: [Prototype] Controlling CasparCG with Elgato Stream Deck

#14
k0d wrote:Have started to write an API in Swift, I've got button states working fine, will write the code to send images to the device tomorrow hopefully.
Are you talking to the device directly or to the windows app? I haven't seen much doc on the device; are you reverse-engineering the API? It looks very interesting but I don't want to pop the (probably) $250 for the device without reading more about it.

thx.

Re: [Prototype] Controlling CasparCG with Elgato Stream Deck

#16
@emisiona Great that you ordered one! I really love mine.

It was super easy to link it with the AMCP nodejs lib, so have already got control of my CasparCG server with it. Of course, linking the buttons to specific macros and fetching some images will require some work. I'd say it's all very easy...just needs a little time.

@zbang Right now I'm using the nodeJS library to talk to the device. Someone has already started to reverse engineer the API. I've found some methods that they haven't implemented/mentioned yet. So I'll look to implement them.

Right now, there isn't simple integration between the device and CasparCG server, but it's only just been released and we already know how how the API works. So in the near future I'd expect to see a lot of implementations in various languages.

What I'm keen to know is how you'd think of using it? what would you wish the buttons to do when you press them and what info would you like to display on the buttons? A generic library is easy to make and is kind of already available, but I don't have production experience with CasparCG yet so would like to hear of some real-life examples of how you might want to use the Stream Deck to control CasparCG.

Re: [Prototype] Controlling CasparCG with Elgato Stream Deck

#19
By now, the easiest and fastest way for us to get the Stream Deck working with CasparCG is by using the "Website" buttons to make url calls. Just installing xampp and writing a few lines of php code does the trick.

For example, to play a video file we use something like this:

Code: Select all

http://127.0.0.1/playvideo.php?filename=amb&channel=1&layer=1
And the php code would be something like:

Code: Select all

<?php
require("./CasparCG-PHP/CasparServerConnector.php");
include_once("./config.php");

$connector = new CasparServerConnector($config['ip'], $config['port']); 

$channel = $_GET['channel'];
$layer = $_GET['layer'];
$video = $_GET['filename'];
$response = $connector->makeRequest("PLAY " . $channel . "-" . $layer . "\"" . $video . "\"");
$response = $connector->makeRequest("LOADBG " . $channel . "-" . $layer . " EMPTY MIX 20 AUTO");
?>
I've trying to start a node webkit client using Lange's library, but I'm getting errors from the arrow functions :-s

Re: [Prototype] Controlling CasparCG with Elgato Stream Deck

#20
I´ve emailed Elgato and asked for an SDK and Midi / OSC / Telnet Support:

"We're thrilled to see so many people interested in integrating Stream Deck with third party solutions. With Stream Deck's custom actions for global keyboard shortcuts you can start integrating for demo setups right away while we evaluate our options for a more developer-friendly SDK."

Midi / OSC / Telnet request hast been forwarded to the development department....

We´ll see...

Re: [Prototype] Controlling CasparCG with Elgato Stream Deck

#24
I had a converstion with their support yesterday. They will hopefully soon release a SDK that can send icons to the Stream Deck, so that a more elegant integration in custom client software would be possible.
Didi Kunz
CasparCG Client-Programmer, Template Maker & Live CG-Operator
Media Support, CH-5722 Gränichen, Switzerland http://mediasupport.ch/
Problems? Guide to posting Bug reports & Feature requests