File: README.md

package info (click to toggle)
pyatem 0.13.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 6,776 kB
  • sloc: python: 15,193; xml: 435; ansic: 256; sh: 26; makefile: 20
file content (102 lines) | stat: -rw-r--r-- 2,994 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
PyATEM
======

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

![Screenshot of the control application](https://brixitcdn.net/metainfo/openswitcher.png)

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.toml 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