1
0
Fork 0

Initial OBS configuration

Based upon experimental and files extracted
master
Ambrose Chua 2020-02-04 01:00:21 +08:00
parent bfa8f9c3fc
commit 06deb1a82f
23 changed files with 1409 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

6
ansible/event Normal file
View File

@ -0,0 +1,6 @@
[recorders:children]
testgroup
[testgroup]
#user@10.10.2.5 room_id=test
ambrose@10.10.0.90 room_id=test

9
ansible/group_vars/all Normal file
View File

@ -0,0 +1,9 @@
---
event:
id: 2020.fossasia.org
title: FOSSASIA Summit 2020
# Meta
ansible_python_interpreter: auto

View File

@ -0,0 +1,4 @@
---
room_id: unknown

3
ansible/play Executable file
View File

@ -0,0 +1,3 @@
#!/bin/sh
ansible-playbook -Kbf 1 -i "$1" "$2"

5
ansible/recorders.yml Normal file
View File

@ -0,0 +1,5 @@
---
- hosts: recorders
roles:
- role: recorder
- role: monitoring-client

View File

@ -0,0 +1,2 @@
---

View File

@ -0,0 +1,31 @@
# MANAGED BY ANSIBLE
# GDM configuration storage
#
# See /usr/share/gdm/gdm.schemas for a list of available options.
[daemon]
# Uncomment the line below to force the login screen to use Xorg
#WaylandEnable=false
# Enabling automatic login
AutomaticLoginEnable = true
AutomaticLogin = mixer
# Enabling timed login
# TimedLoginEnable = true
# TimedLogin = user1
# TimedLoginDelay = 10
[security]
[xdmcp]
[chooser]
[debug]
# Uncomment the line below to turn on debugging
# More verbose logs
# Additionally lets the X server dump core if it crashes
#Enable=true

View File

@ -0,0 +1,23 @@
---
- name: create artwork directory
file:
dest: /opt/artwork
state: directory
owner: root
group: root
mode: u=rwx,g=rx,o=rx
- name: copy backgrounds
copy:
src: ../../../artwork/{{ event.id }}/{{ item }}.png
dest: /opt/artwork/
owner: root
group: root
mode: u=rw,g=r,o=r
with_items:
- side-by-side
- side-by-side-reverse
- side-by-side-43
- side-by-side-43-reverse
- blank

View File

@ -0,0 +1,10 @@
---
- name: generate hosts file
template:
src: etc-hosts.j2
dest: /etc/hosts
- name: set hostname to room_id
hostname:
name: "room-{{ room_id }}"

View File

@ -0,0 +1,5 @@
---
- include: user.yml
- include: hostname.yml
- include: packages.yml
- include: artwork.yml

View File

@ -0,0 +1,34 @@
---
- name: create obs directory
file:
dest: "{{ mixer_user.home }}/.config/obs-studio/{{ item }}"
state: directory
recurse: yes
owner: root
group: root
mode: u=rwx,g=rx,o=rx
with_items:
- basic/profiles/1080p
- basic/profiles/720p
- basic/scenes
- name: generate base obs configuration files
template:
src: "obs-studio/{{ item }}.j2"
dest: "{{ mixer_user.home }}/.config/obs-studio/{{ item }}"
owner: mixer
group: mixer
mode: u=rw,g=r,o=r
with_items:
- global.ini
- basic/profiles/1080p/basic.ini
- basic/profiles/720p/basic.ini
- name: generate event obs configuration files
template:
src: "obs-studio/basic/scenes/event_id.json.j2"
dest: "{{ mixer_user.home }}/.config/obs-studio/basic/scenes/{{ event.id }}.json"
owner: mixer
group: mixer
mode: u=rw,g=r,o=r

View File

@ -0,0 +1,13 @@
---
- name: install general packages
apt:
state: latest
name:
- git
- name: install packages required to be a recorder
apt:
state: latest
name:
- obs-studio

View File

@ -0,0 +1,52 @@
---
- name: create mixer group
group:
name: mixer
- name: create mixer user with password mixer
user:
name: mixer
group: mixer
comment: Mixer
shell: /bin/bash
password: $6$8tFX.bXNC4348gTR$8e33nlbdydXVvFZ0VmaN9Y7H5HjMduu1Z4Ofjh13PhRFGLJ6ojubsHh1SuLZSHWzWMeUxIPEyVX6VH.UaCZe8/
register: mixer_user
- name: enable gdm autologin to mixer user
copy:
src: gdm.conf
dest: /etc/gdm3/daemon.conf
owner: root
group: root
mode: u=rw,g=r,o=r
- name: check sleep settings
command:
cmd: /usr/bin/gsettings get org.gnome.desktop.session idle-delay
become: yes
become_user: mixer
register: idle_delay_setting
changed_when: false
- name: prevent mixer from sleeping
command:
cmd: "{{ item }}"
environment:
# Required only when setting gsettings
DBUS_SESSION_BUS_ADDRESS: "unix:path=/run/user/{{ mixer_user.uid }}/bus"
with_items:
- /usr/bin/gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'nothing'
- /usr/bin/gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-type 'nothing'
- /usr/bin/gsettings set org.gnome.settings-daemon.plugins.power idle-dim false
- /usr/bin/gsettings set org.gnome.settings-daemon.plugins.power power-button-action 'nothing'
- /usr/bin/gsettings set org.gnome.desktop.lockdown disable-lock-screen true
- /usr/bin/gsettings set org.gnome.desktop.lockdown disable-log-out true
- /usr/bin/gsettings set org.gnome.desktop.lockdown disable-printing true
- /usr/bin/gsettings set org.gnome.desktop.lockdown disable-print-setup true
- /usr/bin/gsettings set org.gnome.desktop.lockdown disable-save-to-disk true
- /usr/bin/gsettings set org.gnome.desktop.interface gtk-theme 'Adwaita-dark'
- /usr/bin/gsettings set org.gnome.desktop.session idle-delay 0
become: yes
become_user: mixer
when: "'uint32 0' not in idle_delay_setting.stdout"

View File

@ -0,0 +1,4 @@
127.0.0.1 localhost room-{{ room_id }}
::1 localhost ip6-localhost ip6-loopbac room-{{ room_id }}
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

View File

@ -0,0 +1,33 @@
[General]
Name=1080p
[Video]
BaseCX=1920
BaseCY=1080
OutputCX=1920
OutputCY=1080
[Output]
Mode=Simple
[Audio]
SampleRate=48000
[Hotkeys]
OBSBasic.StartRecording={\n "bindings": [\n {\n "control": true,\n "key": "OBS_KEY_RETURN"\n }\n ]\n}
OBSBasic.StopRecording={\n "bindings": [\n {\n "control": true,\n "key": "OBS_KEY_BACKSPACE"\n }\n ]\n}
OBSBasic.Transition={\n "bindings": [\n {\n "key": "OBS_KEY_RETURN"\n }\n ]\n}
[SimpleOutput]
RecFormat=mkv
RecQuality=Small
RecEncoder=x264_lowcpu
[AdvOut]
TrackIndex=1
RecType=Standard
RecTracks=1
FFOutputToFile=true
FFVEncoderId=0
FFAEncoderId=0
FFAudioTrack=1

View File

@ -0,0 +1,33 @@
[General]
Name=720p
[Video]
BaseCX=1920
BaseCY=1080
OutputCX=1280
OutputCY=720
[Output]
Mode=Simple
[Audio]
SampleRate=48000
[Hotkeys]
OBSBasic.StartRecording={\n "bindings": [\n {\n "control": true,\n "key": "OBS_KEY_RETURN"\n }\n ]\n}
OBSBasic.StopRecording={\n "bindings": [\n {\n "control": true,\n "key": "OBS_KEY_BACKSPACE"\n }\n ]\n}
OBSBasic.Transition={\n "bindings": [\n {\n "key": "OBS_KEY_RETURN"\n }\n ]\n}
[SimpleOutput]
RecFormat=mkv
RecQuality=Small
RecEncoder=x264_lowcpu
[AdvOut]
TrackIndex=1
RecType=Standard
RecTracks=1
FFOutputToFile=true
FFVEncoderId=0
FFAEncoderId=0
FFAudioTrack=1

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,27 @@
[General]
Pre19Defaults=false
Pre21Defaults=false
FirstRun=true
LastVersion=352321538
[PropertiesWindow]
cx=720
cy=580
[BasicWindow]
geometry=AdnQywACAAAAAABDAAAAGwAAA/8AAAL/AAAAWAAAAEYAAAOuAAACwgAAAAACAAAABAA=
DockState=AAAA/wAAAAD9AAAAAQAAAAMAAAO9AAAA+/wBAAAABfsAAAAUAHMAYwBlAG4AZQBzAEQAbwBjAGsBAAAAAAAAANsAAACoAP////sAAAAWAHMAbwB1AHIAYwBlAHMARABvAGMAawEAAADhAAAA3AAAAKgA////+wAAABIAbQBpAHgAZQByAEQAbwBjAGsBAAABwwAAASoAAADkAP////sAAAAeAHQAcgBhAG4AcwBpAHQAaQBvAG4AcwBEAG8AYwBrAAAAAlgAAAC/AAAAggD////7AAAAGABjAG8AbgB0AHIAbwBsAHMARABvAGMAawEAAALzAAAAygAAAJsA////AAADvQAAAZkAAAAEAAAABAAAAAgAAAAI/AAAAAA=
PreviewEnabled=true
AlwaysOnTop=false
SceneDuplicationMode=true
SwapScenesMode=true
EditPropertiesMode=false
PreviewProgramMode=false
DocksLocked=true
ShowListboxToolbars=false
[Basic]
SceneCollection={{ event.id }}
SceneCollectionFile={{ event.id }}
Profile={{ record_profile }}
ProfileDir={{ record_profile }}