Giter Club home page Giter Club logo

pyatem's Introduction

PyATEM

Library implementing the ATEM video switcher protocol and a GTK3.0 application

Screenshot of the control application

Installation

Install the pyatem protocol module::

setup.py build
sudo setup.py install

Build and install the gtk application and proxy::

meson build
meson compile -C build
sudo meson install -C build

Run the application::

switcher-control

There is also the openswitcher-install.sh script which will install the library, proxy and gtk application in /usr/local for a quick installation of all components.

External dependencies

The only external dependency for pyatem is pyusb for the USB protocol support. It contains a native compiled module so it also requires a toolchain and python-dev headers at build time.

OpenSwitcher depends on the python bindings from gtk3.

OpenSwitcher-proxy only depends on pyatem for the core functionality but it might need more dependencies when loading specific frontends or backends:

  • MQTT Frontend: paho-mqtt

Developing

To work on the pyatem library the quickest way to get up and running is using the openswitcher-develop.sh script that will install the pyatem library in devel mode where the files are symlinked to the git repository. It will also install the proxy and gtk application in /usr/local which will use the symlinked library.

Development happens on matrix on #openatem:brixit.nl

Proxy

There is also the openswitcher_proxy python module in this repository. It will run an API wrapper around one or more ATEM switchers. There is currently a single api supported which is a HTTP REST api for sending commands and reading the mixer state.

It can be run by starting the module::

python3 -m openswitcher_proxy --config /etc/myconfigfile.toml

Or if the software installed it can be started using the launcher script::

openswitcher-proxy --config /etc/myconfigfile.toml

The default config location is /etc/openswitcher/proxy.conf if not specified. Here's an example config:

[[hardware]]
id = "mini"
label = "Atem Mini"
address = "192.168.2.84"

[[hardware]]
id = "mini2"
label = "Local switcher"
address = "usb"

[[frontend]]
type = "http-api"
bind = ":8080"
auth = true
username = "bob"
password = "hunter2"
hardware = "mini,mini2"
 
[[frontend]]
type = "status"
bind = "127.0.0.1:8082"
auth = false

The status frontend provides a simple html page with the state of the connected switchers and a list of the enabled frontends.

The http-api frontend provides a HTTP server that can return any of the supported fields as json and trigger commands by sending a HTTP POST request with formfields or json

Translations

The main language for the software is english, the translation for the project happens on https://hosted.weblate.org/projects/openswitcher

pyatem's People

Contributors

automcoding avatar bdrung avatar comradekingu avatar jktjkt avatar martijnbraam avatar skinkie avatar the-jes avatar weblate avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.