type
status
date
slug
summary
tags
category
icon
password
文档更新时间:2023-11-13。文档专有名词较多,机翻+粗校难免有翻译错误。
Tally Arbiter 官网可以查看这里
官方最新文档可以查看这里
Tally Arbiter 中文文档
介绍
Tally Arbiter是一款软件,可让您合并来自多个信号源或视频切换器(如Ross Carbonite(通过TSL 3.1协议)、Blackmagic ATEM或VideoHub、OBS Studio、VMix等)的传入理点数据,并对所有信号源的总线状态进行仲裁,这样摄像机等设备就能准确反映来自多个位置的理点数据,而无需每个设备同时连接所有信号源。
功能
- 支持多种不同的Tally源/切换台
- 支持输出Tally数据到多种不同类型的设备(web/phone, blink(1) USB light, relay, GPO, M5StickC/Arduino)
- 根据Tally状态输出webhooks,TCP消息,或者OSC
- 无限制的源和设备
- 云支持-将数据从封闭的生产网络发送到云端服务器
- 通过Bitfocus Companion进行反馈和控制-在你的stream deck上查看实时Tally数据
- 模拟VMix服务器,使其与您最喜爱的VMix Tally客户端兼容
- 从服务器向支持的客户端发送信息
视频
安装
桌面应用程序/安装程序
安装
这是最简单的方法,推荐给终端经验较少的用户。只需前往发布页面,获取最新的 Windows,MacOS或Linux安装程序,运行它,您就可以开始使用Tally Arbiter!安装后,您可以像运行任何其他程序一样运行它。
升级
在Windows和Linux上,都有自动更新程序可用。一旦有新版本可用,它会自动提示你。
如果你正在运行MacOS,不幸的是,只能手动下载最新发布版本。这是因为苹果公司要求应用程序必须签名才能使自动更新程序工作。为此,我们需要一个苹果的开发者帐户,这大约需要每年100美元,我们(作为一个开源项目)无法承受。也许你想赞助我们?😉
CLI
安装
如果您已安装了Node.js和npm,您可以将Tally Arbiter安装为CLI,并使用命令行或终端运行它
或者用:
npm i -g tallyarbiter
根据您的操作系统,您可能需要使用前缀“sudo”以root身份运行命令。
然后,通过输入
tallyarbiter
来启动服务。升级
要安装最新版本,只需再次运行上面的相同命令(
npm i -g tallyarbiter
)。作为服务运行
- 打开一个终端窗口并更改目录到您放置源代码的文件夹。
- 通过输入
npm install -g pm2
来安装 Node.js 库,pm2
。这将在您的系统上全局安装它。
- 在
pm2
安装后,输入pm2 start tallyarbiter --name TallyArbiter
来将其作为服务守护进程化。
- 要在使用
pm2
运行软件时查看控制台输出,请键入pm2 logs TallyArbiter
。
- 如果您希望它在启动时自动开始,请键入
pm2 save
然后键入pm2 startup
并按照屏幕上的指示操作。
- 要在使用
pm2
运行软件时查看控制台输出,请输入pm2 logs TallyArbiter
。
Docker
安装
如果你已经安装了Docker,你可以使用我们的官方Docker镜像
TallyArbiter
来安装Tally Arbiter。
你可以使用以下命令从DockerHub拉取镜像:然后,通过输入
docker run -d -p 4455:4455 -v $(pwd):/app/config --env APPDATA=/app/config --restart unless-stopped josephdadams/tallyarbiter
来启动它。
如果你正在使用传统的Windows CMD,你可以使用 docker run -d -p 4455:4455 -v %CD%:/app/config --env APPDATA=/app/config --restart unless-stopped josephdadams/tallyarbiter
。
如果你正在使用Powershell,你可以使用 docker run -d -p 4455:4455 -v $pwd:/app/config --env APPDATA=/app/config --restart unless-stopped josephdadams/tallyarbiter
。
如果你更喜欢使用docker-compose,你可以使用这个配置(把 /home/pi
路径改为你选择的目录):从源代码构建并运行
安装
要尝试最新的功能,您可能需要从源代码构建并运行TallyArbiter。但是不用担心,这非常简单。
您必须安装 Node.js。您可以在这里下载:https://nodejs.org/en/download/。
如果您使用的是 MacOS,您可能还需要下载并安装 XCode 命令行工具。
下载 Tallly Arbiter 源代码。您可以直接从 GitHub 下载,或者您可以使用命令行中的
git
下载文件。输入
git clone <https://github.com/josephdadams/tallyarbiter>
下载源代码。这将下载到您当前工作文件夹的子文件夹。下载软件后,输入
npm install
安装所有必要的库和包。然后,您可以通过在终端中输入
npm start
来启动它。升级
如果你使用
git
下载了软件,升级就很简单。在终端窗口中,直接更改到Tally Arbiter文件夹,然后输入: git pull
。这将下载最新的源代码。如果你手动下载了源代码,只需手动替换文件夹中的文件。
现在运行
npm install
以确保所有包都是最新的。使用
控制接口
Tally Arbiter运行一个HTTP服务器,监听
4455
端口。如果此端口正在使用中并且无法打开,您将收到错误。
要进入网络接口,如果您在运行软件的同一台机器上,打开浏览器到http://127.0.0.1:4455。如果不是,在127.0.0.1
处替换为该机器的IP地址。如果您正在运行桌面应用程序,您将得到一个显示GUI的窗口。然而,上述描述的网址也可用于网络接口。
配置
在配置接口中,设置页面可以在
/settings
:http://127.0.0.1:4455/settings此页面受用户名和密码限制。默认用户名是`admin`,默认密码是`12345`。
您在那里做的所有更改都将保存到
config.json
文件中。此文件也应频繁备份,以防更新时数据丢失。它的路径根据您运行的操作系统而不同:- Windows:
C:\Users\YourUsername\AppData\Roaming\TallyArbiter\config.json
- MacOS:
~/Library/Preferences/TallyArbiter/config.json
- Linux:
~/.local/share/TallyArbiter/config.json
您也可以手动编辑该文件。
在进行更改时,请确保Tally Arbiter已关闭,否则它们将被覆盖!
您可以通过添加或替换以下部分到您的
config.json
文件,以更改设置和生产者页面的安全性:在新版本的Tally Arbiter取消了明文密码,采用bcrypt密文存储
核心部分
设备(Devices)
设备代表您想要用来追踪Tally数据的输入(如摄像机)。设备可以通过每个源分配不同的地址或输入。在Tally Arbiter中,您可以创建尽可能多的设备,并为每个设备命名和描述,以便帮助识别。
- 设备源
- 链接设备源
- 关于地址的说明
为了将Tally数据与设备关联,您必须为每个设备分配源地址。这些地址可能会因源而异,因此必须手动分配。
例如,摄像机可以连接到
Blackmagic ATEM
的 Input 1
上,但也能同时连接到 OBS Studio
的 Scene 2
上。Tally Arbiter会追踪每个源的Tally数据,并通过汇总所有源的数据来裁定设备最终是否处于预览或节目(或两者)状态。要将一个源分配给设备,请在列表中的设备旁点击“设备源”。从下拉列表中选择已启用的源,输入地址,然后点击添加。
设备源可以在预览总线、节目总线或两者上“链接”。如果链接,这意味着除非Tally Arbiter确定了设备在所有分配给该设备的源上该总线都是活跃的,否则设备不被认为是在那个总线上活跃的。
源地址通常是切换器上的实际输入号码。所以,如果您的ATEM上的摄像机输入是5号,只需输入
5
。然而,如果您使用的是像OBS Studio这样的源,您的地址可能是一个字符串,像 Scene 2
或者 Image 1
。一些源类型也支持通过列表选择设备地址。- 设备动作
- TSL 3.1 UDP/TCP
- TSL 5.0 UDP/TCP
- 外发网络钩子(Webhook)
- 通用TCP/UDP
- 本地控制台输出/日志记录(用于测试)
- Open Sound Control (OSC) (支持多个参数)
一旦设备被分配到一个或多个源,如果满足匹配条件,就可以执行一个动作。您可以指定动作是在设备进入总线时执行还是离开总线时执行,这对于特定总线的动作非常有用,比如操作继电器。每个设备和每个总线(预览和节目)都支持多个动作。
实施的设备动作包括:
设备动作只能在设备状态进入或退出那个总线时运行一次。这是为了防止如果Tally数据是分块接收的,动作被连续运行。要再次运行一个动作,设备必须在那个特定的总线(预览或节目)上改变状态,之后才能再次运行。
源(Source)
源代表所有生成的Tally数据。这通常是您的视频切换器或混合软件。可以添加多个不同类型的源。
支持以下源类型:
- TSL 3.1/5.0 UDP/TCP (如Ross切换器,Streamstar,FOR-A等 - 任何使用TSL UMD协议的设备)
- Blackmagic ATEM
- Blackmagic VideoHub
- OBS Studio
- StudioCoast VMix
- Roland Smart Tally
- Roland VR-50HD-MKII
- Ross Carbonite/Carbonite Black/Carbonite Black Solo/Carbonite Ultra/Graphite
- Newtek Tricaster
- Open Sound Control (OSC)
- Panasonic AV-HS410
- Analog Way Livecore 图像处理器
当您添加一个源并且成功地与Tally源(视频切换器,软件等)建立连接时,源会显示为绿色。如果有错误,源会显示为红色。查看日志以获取更多错误信息。
- TSL 3.1 UDP/TCP
使用此协议的切换器或服务必须配置为将数据发送到您指定端口的Tally Arbiter。
- Blackmagic ATEM
您需要ATEM的IP地址。ATEM只能同时有5个连接,所以您可能需要断开另一个连接以便Tally Arbiter能够连接到ATEM。
- Blackmagic VideoHub
您需要VideoHub的IP地址。您可以选择将任何目的地配置为预览总线、节目总线或两者。通过用逗号分隔来输入多个目的地路由。
- OBS Studio
必须安装并配置
obs-websockets
插件,Tally Arbiter才能连接。您可以在此处获取插件: https://github.com/Palakis/obs-websocket/releases您需要提供OBS Websockets插件中配置的IP地址、端口和密码。
- StudioCoast VMix
您需要运行VMix的计算机的IP地址。
- Roland Smart Tally
您需要Roland切换器的IP地址。
- Roland VR-50HD-MKII
您需要Roland切换器的IP地址。
- Ross Carbonite Models
您需要Ross Carbonite切换器的IP地址。您的Carbonite必须配置为将数据发送到您指定端口的Tally Arbiter。所有Ross产品都使用TSL 3.1/5.0协议,但这个特定的源类型允许您根据支持的特定总线(ME1,MME1,Auxes等)处理Tally信息,无论Carbonite本身配置的“OnAir”设置如何。
- Newtek Tricaster
您需要Tricaster的IP地址。
- Open Sound Control (OSC)
/tally/preview_on
: 将设备置于预览模式。/tally/preview_off
: 关闭设备的预览模式。/tally/program_on
: 将设备置于节目模式。/tally/program_off
: 关闭设备的节目模式。/tally/previewprogram_on
: 将设备置于预览和节目模式。/tally/previewprogram_off
: 关闭设备的预览和节目模式。
即将到来的OSC数据可以用来触发设备Tally状态。根据需要配置端口。
OSC路径必须是以下之一:
设备源地址应作为整数或字符串发送。发送任何类型的一个参数(整数,浮点数或字符串)。如果发送多个参数,将会被忽略。
- Panasonic AV-HS410
您需要切换器的IP地址。
- Analog Way Livecore Image Processors
您需要设备的IP地址和端口(标准端口是10600)。
远程Tally查看(监听客户端)
除了可以用于触发任何数量远程设备的Tally状态的多种输出动作类型之外,Tally Arbiter还支持“监听客户端”:设备和软件开启对Tally Arbiter服务器的websocket连接,并且可以实时接收数据以利用Tally信息
所有连接的监听客户端都会被追踪,并在设置页面中列出。您可以通过在列表中点击特定监听客户端旁边的刷新按钮来“刷新”它。这对于引起操作员的注意或确定哪个监听器是哪个很有用。您还可以随时使用Tally Arbiter界面重新分配监听器,以接收其他设备的Tally信息。
- 使用网页进行Tally输出
在浏览器中导航到Tally Arbiter服务器的
/tally
,并从列表中选择一个设备。只要页面保持与系统的连接,它将实时显示Tally数据(预览,节目,预览+节目,清除)。Web客户端还可以与制片人发送/接收消息,如聊天室一样。您也可以直接访问
/#/tally/9fe2efd9a
(将 9fe2efd9a
替换成您的实际设备ID) 即可自动加载到该设备的页面,无需从列表中选择如果您在请求中加入
?chat=false
您可以关闭消息/聊天功能。- 查看所有Tally数据
在浏览器中导航到Tally Arbiter服务器的
/producer
,以查看所有设备及其当前状态。这些信息也可以在设置GUI中获得,但在这里以最简方式显示,以便于在服务中查看。可以向支持的客户端发送和接收消息。
此页面受用户名和密码限制。默认用户名是 producer
默认密码是 12345
。- 使用M5StickC进行Tally输出
Tally Arbiter可以向M5StickC Arduino手指计算机发送Tally数据。相关的远程脚本可在此处获得:Tally Arbiter M5StickC监听器。请查看该仓库的readme以获取安装和使用说明。
- 使用带有NeoPixel LED的ESP32开发板
您也可以使用Tally Arbiter与通用的ESP32板,使用这个单独的脚本:Tally Arbiter ESP32监听器。请查看该仓库的readme以获取安装和使用说明。
- 使用M5 Atom Matrix进行Tally输出
Tally Arbiter可以向M5 Atom Matrix发送Tally数据。相关的远程脚本可在另一个仓库中获得:Tally Arbiter M5 Atom Matrix监听器。请查看该仓库的readme以获取安装和使用说明。
- 使用blink(1)进行Tally输出
Tally Arbiter支持使用USB blink(1)设备作为Tally灯。一个远程监听脚本在单独的仓库中提供,Tally Arbiter Blink1 监听器。请查看该仓库的 readme 以获取安装和使用说明。它兼容并且设计用于在 Raspberry Pi Zero上运行,这使它成为一个经济的无线Tally输出设备。然而,它也可以在任何支持Python的操作系统/设备上运行,如MacOS或Windows,这在您想要将其与图形或视频播放操作员一起使用时可能会有帮助。
- 使用Pimoroni Blinkt!进行Tally输出
Tally Arbiter支持使用通过GPIO针脚连接到Raspberry Pi的Pimoroni Blinkt!灯。一个远程监听脚本在单独的仓库中提供:Tally Arbiter Pimoroni Blinkt! 监听器。请查看该仓库的readme以获取安装和使用说明。
- 使用继电器进行接触闭合系统
许多摄像机CCU和其他设备支持通过接触闭合接收Tally信号。一个可以触发USB继电器的远程监听脚本在单独的仓库中提供:Tally Arbiter Relay 监听器。请查看该仓库的readme以获取安装和使用说明。
- 使用 GPO 输出
许多设备支持使用GPIO(通用输入/输出)针脚进行交互。这可以用于逻辑控制、点亮LED等。一个可以在Raspberry Pi上运行的远程监听脚本在单独的仓库中提供:Tally Arbiter GPO 监听器。请查看该仓库的readme以获取安装和使用说明
- Arduino ESP8266 与 Neopixel
使用连接到Arduino的AdaFruit NeoPixel LED灯条。查看NoahCallaway的仓库以获取更多信息:https://github.com/NoahCallaway/TallyArbiter-arduino-neopixel
- TTGO_T 监视器
Tally Arbiter可以向TTGO_T监视器发送Tally数据。一个远程脚本在单独的仓库中提供:Tally Arbiter TTGO_T 监听器。请查看该仓库的readme 获取安装和使用说明。
- VMix模拟Tally
Tally Arbiter也可以模拟VMix服务, 这意味着您也可以使用任何兼容的VMix的Tally客户端来查看Tally,例如Guido Visser的VMix M5Stick Tally灯项目。按照该仓库的说明设置您的M5Stick设备,并指定Tally Arbiter为您的VMix服务器。
- 通过NDI的Tally
Tally Arbiter 可以通过
TSL 3.1 Clients
部分来发送 TSL 3.1 数据。 通过与iliessens的TSL NDI Tally软件结合使用,您可以将实时Tally数据发送到您的NDI设备TSL 3.1协议转换
Tally Arbiter可以自动向任意数量的客户端发送TSL 3.1数据。如果您想让Tally Arbiter汇总所有的Tally数据,然后发送更新到UMD、多画面显示器等设备,这会非常有帮助。
- 每个设备必须配置一个TSL地址。默认的TSL地址是
0
,所以一定要将设备的TSL地址改为非0
的其他数值,否则它不会被发送到连接的客户端。
- 使用设置界面中的“TSL 客户端”配置区域添加TSL客户端。
- 指定 IP 地址、端口和传输类型(UDP 或 TCP)。
- 任何时候设备状态发生变化,Tally Arbiter都会向这些客户端发送TSL 3.1数据。
通过NDI的Tally
通过与iliessens的TSL NDI Tally软件结合使用,您可以将实时Tally数据发送到您的NDI设备。
配置和使用Tally Arbiter云
Tally Arbiter可以从封闭网络内的本地实例发送源、设备和Tally数据到另一个网络上的Tally Arbiter实例,后者可能对最终用户更易于访问。如果您的用户需要访问Tally Arbiter而您不希望他们隧道或连接到您的私有网络,或者用户位于远程位置,这会非常有帮助。
- 在云服务器上,创建一个新的云密钥。这就像一个密码。
- 在本地服务器上,创建一个新的云目的地,指定主机、端口和云密钥。多个本地服务器可以使用相同的云密钥。
- 一旦建立连接,本地服务器的所有源、设备和Tally数据都会被转发到云服务器。
- Tally Arbiter将处理这些传入的Tally数据,就像处理任何本地源一样。
- 您还可以像处理本地的监听客户端一样对它们进行刷新/发送信号。
- 如果一个Tally Arbiter云客户端被移除,所有与该云客户端关联的源和设备也将被移除。
故障排除
如果有功能无法正常工作,请首先查看日志(Logs)。您可以在设置(Settings)页面的日志(Logs)标签中找到它们。更改日志级别请到详情(Verbose)以查看所有消息。
如果您认为在Tally Arbiter中发现了一个错误或有一个新的功能请求,欢迎在我们的GitHub仓库中提出问题。
直接访问日志(不通过用户界面)
如果您无法通过用户界面访问日志,您可以手动查看这些文件。具体位置取决于您使用的平台:
Platform | Logs |
Windows | 输入 %APPDATA%\TallyArbiter\logs 到文件资源管理器的地址栏。%APPDATA% 是一个环境变量,会自动转换为当前用户的应用数据目录,路径可能看起来像这样:C:\Users\您的用户名\AppData\Roaming\TallyArbiter\logs 。请确保将 您的用户名 替换为您的实际用户名。 |
MacOS | 输入 ~/Library/Preferences/TallyArbiter/logs 到访达的前往文件夹功能中。这里的 ~ 代表您的主目录,完整路径可能看起来像这样:/Users/您的用户名/Library/Preferences/TallyArbiter/logs 。请确保将 您的用户名 替换为您的实际用户名。 |
Linux / Raspberry Pi | 输入 ~/.local/share/TallyArbiter/logs 到文件管理器或终端。这里的 ~ 也代表您的主目录,完整路径可能看起来像这样:/Users/您的用户名/.local/share/TallyArbiter/logs 。请确保将 您的用户名 替换为您的实际用户名。 |
开发
创建您自己的监听客户端
Tally Arbiter可以通过socket.io协议向您的监听器发送数据。您可以使用以下事件发射器:
bus_options
:不发送参数;返回一个带有可用总线(预览和节目)数组的bus_options
事件。
devices
:不发送参数;返回一个带有配置好的Tally Arbiter设备数组的devices
事件。
device_listen
:发送设备ID和监听器类型(字符串)作为参数;返回一个带有该设备ID当前设备状态数组的device_states
事件。这将把监听客户端添加到Tally Arbiter列表中,使其可以在设置界面中管理。
device_states
:发送设备ID作为参数;返回一个带有该设备ID当前设备状态数组的device_states
事件。
开发 Tally Arbiter 本身
关于如何为Tally Arbiter本身做出贡献,可以在项目的readme中找到信息。
如果您想为Tally Arbiter做贡献,但又不想配置开发环境(例如安装npm依赖),您可以使用Gitpod进行在线开发。
之前的 REST API
从3.0.0版本开始,Tally Arbiter不再提供REST API。由于复杂性,UI和后端的所有通信都是通过socket.io处理的。如果您真的需要为Tally Arbiter构建自己的用户界面,您需要发送并监听socket.io事件。
- 作者:Jeffrey
- 链接:https://Jeffreyhjh.top/14718e41082580e493fad658c970c217
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。