diff --git a/docs/_navbar.md b/docs/_navbar.md index 20c322d..7237c50 100644 --- a/docs/_navbar.md +++ b/docs/_navbar.md @@ -53,4 +53,10 @@ --- +**Miscellaneous** + +- [VTubing Setup](/vtubing) + +--- + © 2022 - [Naomi Carrigan](https://www.nhcarrigan.com) diff --git a/docs/community/labels.md b/docs/community/labels.md index 1512306..65a0290 100644 --- a/docs/community/labels.md +++ b/docs/community/labels.md @@ -1,5 +1,7 @@ # Labels +**Effective 14 July 2024** + We use very specific labels to help categorise our issues. This page explains what each label means. ## 1. Contribution Labels diff --git a/docs/environment.md b/docs/environment.md index f81da55..a464e96 100644 --- a/docs/environment.md +++ b/docs/environment.md @@ -1,5 +1,7 @@ # Development Environment +**Effective 14 July 2024** + This page documents Naomi's local development environment. The information here is provided to allow contributors to mirror the environment as closely as possible, ensuring the smoothest developer experience. ## 1. System Information diff --git a/docs/vtubing.md b/docs/vtubing.md new file mode 100644 index 0000000..1e15b7e --- /dev/null +++ b/docs/vtubing.md @@ -0,0 +1,1793 @@ +# VTubing + +**Effective 14 July 2024** + +Naomi uses her VTuber model for all of her client meetings, as well as streaming. Getting the software to work on Linux is a bit of a nightmare, so this page documents how she does so. + +## 1. OpenSeeFace + +In order to track her webcamera, OpenSeeFace needs to be run independently as a native script. + +### 1.1. Installation + +This should all be done in your home `~` directory. + +- Begin by cloning the repository: + - `git clone https://github.com/emilianavt/OpenSeeFace` + - `cd OpenSeeFace` +- You will need to prepare Python + - Install the packages: `yay -Sy python python-virtualenv` + - Prepare the environment: `virtualenv -p python3 env` + - Source the environment: `source env/bin/activate` + - Install the dependencies: `pip3 install onnxruntime opencv-python pillow numpy` + +### 1.2. Running + +Naomi uses a bash script to run the program. Put this in `~/Documents/scripts/osf.sh`. + +```bash +#!/bin/bash +cd ~/OpenSeeFace && \ +source env/bin/activate && \ +python facetracker.py -c 0 -W 1280 -H 720 --discard-after 0 --scan-every 0 --no-3d-adapt 1 --max-feature-updates 900 +``` + +### 1.3. Desktop Shortcut + +The `.desktop` file allows this to run from the application tray. Put this in `~/.local/share/applications/osf.desktop`. + +```ini +[Desktop Entry] +Name=OpenSeeFace +Exec=/home/naomi/Documents/scripts/osf.sh +Icon=/home/naomi/Documents/scripts/osf.png +Terminal=true +Type=Application +``` + +## 2. VSeeFace + +VSeeFace does not run natively, and will need to run with Wine. + +### 2.1. Installation + +[Download and run the installer](https://www.vseeface.icu/#download). When selecting a directory, put it in `~/VSeeFace`. + +### 2.2. Running + +Naomi uses a bash script to run the program. Put this in `~/Documents/scripts/vsf.sh`. + +```bash +#!/bin/bash +wine ~/VSeeFace/VSeeFace.exe --background-color "#00FF00" +``` + +The `--background-color` flag creates a green screen background to be chroma-keyed out by OBS. + +### 1.3. Desktop Shortcut + +The `.desktop` file allows this to run from the application tray. Put this in `~/.local/share/applications/osf.desktop`. + +```ini +[Desktop Entry] +Name=VSeeFace +Exec=/home/naomi/Documents/scripts/vsf.sh +Icon=/home/naomi/Documents/scripts/vsf.png +Terminal=true +Type=Application +``` + +## 3. OBS + +OBS allows for virtual camera, as well as for streaming. + +### 3.1. Installation + +The `obs-studio-liberty` package bundles everything together, offering both virtual camera and browser source support. These are essential for the setup. + +### 3.2. Scenes + +You can import this JSON file to get Naomi's list of scenes. + +
+ Show file + +```json +{ + "DesktopAudioDevice1": { + "prev_ver": 503447552, + "name": "Desktop Audio", + "uuid": "3cf343c8-94fa-4e7e-999a-c682a2fee814", + "id": "pulse_output_capture", + "versioned_id": "pulse_output_capture", + "settings": { + "device_id": "default" + }, + "mixers": 255, + "sync": 0, + "flags": 0, + "volume": 1.0, + "balance": 0.5, + "enabled": true, + "muted": false, + "push-to-mute": false, + "push-to-mute-delay": 0, + "push-to-talk": false, + "push-to-talk-delay": 0, + "hotkeys": { + "libobs.mute": [], + "libobs.unmute": [], + "libobs.push-to-mute": [], + "libobs.push-to-talk": [] + }, + "deinterlace_mode": 0, + "deinterlace_field_order": 0, + "monitoring_type": 0, + "private_settings": {} + }, + "AuxAudioDevice1": { + "prev_ver": 503447552, + "name": "Mic/Aux", + "uuid": "a1c8fff9-1d45-467a-b647-73711e02e915", + "id": "pulse_input_capture", + "versioned_id": "pulse_input_capture", + "settings": { + "device_id": "Remap-Source" + }, + "mixers": 255, + "sync": 0, + "flags": 0, + "volume": 1.0, + "balance": 0.5, + "enabled": true, + "muted": false, + "push-to-mute": false, + "push-to-mute-delay": 0, + "push-to-talk": false, + "push-to-talk-delay": 0, + "hotkeys": { + "libobs.mute": [], + "libobs.unmute": [], + "libobs.push-to-mute": [], + "libobs.push-to-talk": [] + }, + "deinterlace_mode": 0, + "deinterlace_field_order": 0, + "monitoring_type": 0, + "private_settings": {} + }, + "current_scene": "Virtual Cam", + "current_program_scene": "Virtual Cam", + "scene_order": [ + { + "name": "Virtual Cam" + }, + { + "name": "Stream" + }, + { + "name": "Start" + }, + { + "name": "BRB" + }, + { + "name": "End" + } + ], + "name": "Naomi", + "groups": [], + "quick_transitions": [ + { + "name": "Cut", + "duration": 300, + "hotkeys": [], + "id": 1, + "fade_to_black": false + }, + { + "name": "Fade", + "duration": 300, + "hotkeys": [], + "id": 2, + "fade_to_black": false + }, + { + "name": "Fade", + "duration": 300, + "hotkeys": [], + "id": 3, + "fade_to_black": true + } + ], + "transitions": [ + { + "name": "Transition", + "id": "obs_stinger_transition", + "settings": { + "path": "/home/naomi/Documents/stream/stinger.webm", + "track_matte_enabled": true, + "audio_monitoring": 2 + } + } + ], + "saved_projectors": [], + "current_transition": "Transition", + "transition_duration": 300, + "preview_locked": false, + "scaling_enabled": false, + "scaling_level": 0, + "scaling_off_x": 0.0, + "scaling_off_y": 0.0, + "virtual-camera": { + "type2": 3 + }, + "modules": { + "scripts-tool": [], + "output-timer": { + "streamTimerHours": 0, + "streamTimerMinutes": 0, + "streamTimerSeconds": 30, + "recordTimerHours": 0, + "recordTimerMinutes": 0, + "recordTimerSeconds": 30, + "autoStartStreamTimer": false, + "autoStartRecordTimer": false, + "pauseRecordTimer": true + }, + "auto-scene-switcher": { + "interval": 300, + "non_matching_scene": "", + "switch_if_not_matching": false, + "active": false, + "switches": [] + } + }, + "resolution": { + "x": 1920, + "y": 1080 + }, + "sources": [ + { + "prev_ver": 503447552, + "name": "Alerts", + "uuid": "f1d0e2a1-3bbf-4a75-80ab-91243c5590d4", + "id": "browser_source", + "versioned_id": "browser_source", + "settings": { + "url": "https://streamlabs.com/alert-box/v3/" + }, + "mixers": 255, + "sync": 0, + "flags": 0, + "volume": 1.0, + "balance": 0.5, + "enabled": true, + "muted": false, + "push-to-mute": false, + "push-to-mute-delay": 0, + "push-to-talk": false, + "push-to-talk-delay": 0, + "hotkeys": { + "libobs.mute": [], + "libobs.unmute": [], + "libobs.push-to-mute": [], + "libobs.push-to-talk": [], + "ObsBrowser.Refresh": [] + }, + "deinterlace_mode": 0, + "deinterlace_field_order": 0, + "monitoring_type": 0, + "private_settings": {} + }, + { + "prev_ver": 503447552, + "name": "BRB", + "uuid": "bccd5453-1e6e-4335-8111-b01adf3e9541", + "id": "scene", + "versioned_id": "scene", + "settings": { + "id_counter": 4, + "custom_size": false, + "items": [ + { + "name": "Slide Background", + "source_uuid": "7f03fc0d-6d95-4e9e-b4e7-2e43967b2488", + "visible": true, + "locked": false, + "rot": 0.0, + "pos": { + "x": 0.0, + "y": 0.0 + }, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "align": 5, + "bounds_type": 0, + "bounds_align": 0, + "bounds_crop": false, + "bounds": { + "x": 0.0, + "y": 0.0 + }, + "crop_left": 0, + "crop_top": 0, + "crop_right": 0, + "crop_bottom": 0, + "id": 1, + "group_item_backup": false, + "scale_filter": "disable", + "blend_method": "default", + "blend_type": "normal", + "show_transition": { + "duration": 0 + }, + "hide_transition": { + "duration": 0 + }, + "private_settings": {} + }, + { + "name": "Text BRB", + "source_uuid": "6f46d696-d2f1-49b4-957d-1f06a9392cdc", + "visible": true, + "locked": false, + "rot": 0.0, + "pos": { + "x": 582.0, + "y": 364.0 + }, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "align": 5, + "bounds_type": 0, + "bounds_align": 0, + "bounds_crop": false, + "bounds": { + "x": 0.0, + "y": 0.0 + }, + "crop_left": 0, + "crop_top": 0, + "crop_right": 0, + "crop_bottom": 0, + "id": 3, + "group_item_backup": false, + "scale_filter": "disable", + "blend_method": "default", + "blend_type": "normal", + "show_transition": { + "duration": 0 + }, + "hide_transition": { + "duration": 0 + }, + "private_settings": {} + }, + { + "name": "Alerts", + "source_uuid": "f1d0e2a1-3bbf-4a75-80ab-91243c5590d4", + "visible": true, + "locked": false, + "rot": 0.0, + "pos": { + "x": 0.0, + "y": 0.0 + }, + "scale": { + "x": 1.7999999523162842, + "y": 1.7999999523162842 + }, + "align": 5, + "bounds_type": 0, + "bounds_align": 0, + "bounds_crop": false, + "bounds": { + "x": 0.0, + "y": 0.0 + }, + "crop_left": 0, + "crop_top": 0, + "crop_right": 0, + "crop_bottom": 0, + "id": 4, + "group_item_backup": false, + "scale_filter": "disable", + "blend_method": "default", + "blend_type": "normal", + "show_transition": { + "duration": 0 + }, + "hide_transition": { + "duration": 0 + }, + "private_settings": {} + } + ] + }, + "mixers": 0, + "sync": 0, + "flags": 0, + "volume": 1.0, + "balance": 0.5, + "enabled": true, + "muted": false, + "push-to-mute": false, + "push-to-mute-delay": 0, + "push-to-talk": false, + "push-to-talk-delay": 0, + "hotkeys": { + "OBSBasic.SelectScene": [], + "libobs.show_scene_item.1": [], + "libobs.hide_scene_item.1": [], + "libobs.show_scene_item.3": [], + "libobs.hide_scene_item.3": [], + "libobs.show_scene_item.4": [], + "libobs.hide_scene_item.4": [] + }, + "deinterlace_mode": 0, + "deinterlace_field_order": 0, + "monitoring_type": 0, + "private_settings": {} + }, + { + "prev_ver": 503447552, + "name": "Cam Background", + "uuid": "6bd1ef08-a91e-4b0b-bb1a-d3ee2387f5f5", + "id": "ffmpeg_source", + "versioned_id": "ffmpeg_source", + "settings": { + "close_when_inactive": true, + "local_file": "/home/naomi/Documents/stream/virtual-cam-bg.webm", + "looping": true + }, + "mixers": 255, + "sync": 0, + "flags": 0, + "volume": 1.0, + "balance": 0.5, + "enabled": true, + "muted": false, + "push-to-mute": false, + "push-to-mute-delay": 0, + "push-to-talk": false, + "push-to-talk-delay": 0, + "hotkeys": { + "libobs.mute": [], + "libobs.unmute": [], + "libobs.push-to-mute": [], + "libobs.push-to-talk": [], + "MediaSource.Restart": [], + "MediaSource.Play": [], + "MediaSource.Pause": [], + "MediaSource.Stop": [] + }, + "deinterlace_mode": 0, + "deinterlace_field_order": 0, + "monitoring_type": 0, + "private_settings": {} + }, + { + "prev_ver": 503447552, + "name": "Cam Overlay", + "uuid": "bf638a3c-5133-406c-a3d2-541723f715f9", + "id": "ffmpeg_source", + "versioned_id": "ffmpeg_source", + "settings": { + "close_when_inactive": true, + "local_file": "/home/naomi/Documents/stream/virtual-cam-overlay.webm", + "looping": true + }, + "mixers": 255, + "sync": 0, + "flags": 0, + "volume": 1.0, + "balance": 0.5, + "enabled": true, + "muted": false, + "push-to-mute": false, + "push-to-mute-delay": 0, + "push-to-talk": false, + "push-to-talk-delay": 0, + "hotkeys": { + "libobs.mute": [], + "libobs.unmute": [], + "libobs.push-to-mute": [], + "libobs.push-to-talk": [], + "MediaSource.Restart": [], + "MediaSource.Play": [], + "MediaSource.Pause": [], + "MediaSource.Stop": [] + }, + "deinterlace_mode": 0, + "deinterlace_field_order": 0, + "monitoring_type": 0, + "private_settings": {} + }, + { + "prev_ver": 503447552, + "name": "Chat", + "uuid": "005e5143-427d-405c-84aa-b50210ad015f", + "id": "browser_source", + "versioned_id": "browser_source", + "settings": { + "url": "https://streamlabs.com/widgets/chat-box/v1/", + "width": 500, + "css": "body { background: white }" + }, + "mixers": 255, + "sync": 0, + "flags": 0, + "volume": 1.0, + "balance": 0.5, + "enabled": true, + "muted": false, + "push-to-mute": false, + "push-to-mute-delay": 0, + "push-to-talk": false, + "push-to-talk-delay": 0, + "hotkeys": { + "libobs.mute": [], + "libobs.unmute": [], + "libobs.push-to-mute": [], + "libobs.push-to-talk": [], + "ObsBrowser.Refresh": [] + }, + "deinterlace_mode": 0, + "deinterlace_field_order": 0, + "monitoring_type": 0, + "private_settings": {} + }, + { + "prev_ver": 503447552, + "name": "End", + "uuid": "74d15386-4a95-4a1e-90ce-6b4f4c77615f", + "id": "scene", + "versioned_id": "scene", + "settings": { + "id_counter": 4, + "custom_size": false, + "items": [ + { + "name": "Slide Background", + "source_uuid": "7f03fc0d-6d95-4e9e-b4e7-2e43967b2488", + "visible": true, + "locked": false, + "rot": 0.0, + "pos": { + "x": 0.0, + "y": 0.0 + }, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "align": 5, + "bounds_type": 0, + "bounds_align": 0, + "bounds_crop": false, + "bounds": { + "x": 0.0, + "y": 0.0 + }, + "crop_left": 0, + "crop_top": 0, + "crop_right": 0, + "crop_bottom": 0, + "id": 1, + "group_item_backup": false, + "scale_filter": "disable", + "blend_method": "default", + "blend_type": "normal", + "show_transition": { + "duration": 0 + }, + "hide_transition": { + "duration": 0 + }, + "private_settings": {} + }, + { + "name": "Text End", + "source_uuid": "e84200d5-b7bf-4230-afff-ff7cbae8a8d3", + "visible": true, + "locked": false, + "rot": 0.0, + "pos": { + "x": 586.0, + "y": 363.0 + }, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "align": 5, + "bounds_type": 0, + "bounds_align": 0, + "bounds_crop": false, + "bounds": { + "x": 0.0, + "y": 0.0 + }, + "crop_left": 0, + "crop_top": 0, + "crop_right": 0, + "crop_bottom": 0, + "id": 3, + "group_item_backup": false, + "scale_filter": "disable", + "blend_method": "default", + "blend_type": "normal", + "show_transition": { + "duration": 0 + }, + "hide_transition": { + "duration": 0 + }, + "private_settings": {} + }, + { + "name": "Alerts", + "source_uuid": "f1d0e2a1-3bbf-4a75-80ab-91243c5590d4", + "visible": true, + "locked": false, + "rot": 0.0, + "pos": { + "x": 0.0, + "y": 0.0 + }, + "scale": { + "x": 1.7999999523162842, + "y": 1.7999999523162842 + }, + "align": 5, + "bounds_type": 0, + "bounds_align": 0, + "bounds_crop": false, + "bounds": { + "x": 0.0, + "y": 0.0 + }, + "crop_left": 0, + "crop_top": 0, + "crop_right": 0, + "crop_bottom": 0, + "id": 4, + "group_item_backup": false, + "scale_filter": "disable", + "blend_method": "default", + "blend_type": "normal", + "show_transition": { + "duration": 0 + }, + "hide_transition": { + "duration": 0 + }, + "private_settings": {} + } + ] + }, + "mixers": 0, + "sync": 0, + "flags": 0, + "volume": 1.0, + "balance": 0.5, + "enabled": true, + "muted": false, + "push-to-mute": false, + "push-to-mute-delay": 0, + "push-to-talk": false, + "push-to-talk-delay": 0, + "hotkeys": { + "OBSBasic.SelectScene": [], + "libobs.show_scene_item.1": [], + "libobs.hide_scene_item.1": [], + "libobs.show_scene_item.3": [], + "libobs.hide_scene_item.3": [], + "libobs.show_scene_item.4": [], + "libobs.hide_scene_item.4": [] + }, + "deinterlace_mode": 0, + "deinterlace_field_order": 0, + "monitoring_type": 0, + "private_settings": {} + }, + { + "prev_ver": 503447552, + "name": "Game", + "uuid": "b4b086c6-2733-4c66-b833-b0546d8d928f", + "id": "xcomposite_input", + "versioned_id": "xcomposite_input", + "settings": { + "capture_window": "" + }, + "mixers": 0, + "sync": 0, + "flags": 0, + "volume": 1.0, + "balance": 0.5, + "enabled": true, + "muted": false, + "push-to-mute": false, + "push-to-mute-delay": 0, + "push-to-talk": false, + "push-to-talk-delay": 0, + "hotkeys": {}, + "deinterlace_mode": 0, + "deinterlace_field_order": 0, + "monitoring_type": 0, + "private_settings": {} + }, + { + "prev_ver": 503447552, + "name": "Model", + "uuid": "61587530-1788-4a8a-9854-55d7ab8643c1", + "id": "xcomposite_input", + "versioned_id": "xcomposite_input", + "settings": { + "capture_window": "", + "show_cursor": false + }, + "mixers": 0, + "sync": 0, + "flags": 0, + "volume": 1.0, + "balance": 0.5, + "enabled": true, + "muted": false, + "push-to-mute": false, + "push-to-mute-delay": 0, + "push-to-talk": false, + "push-to-talk-delay": 0, + "hotkeys": {}, + "deinterlace_mode": 0, + "deinterlace_field_order": 0, + "monitoring_type": 0, + "private_settings": {}, + "filters": [ + { + "prev_ver": 503447552, + "name": "Chroma Key", + "uuid": "3c3151f6-95cf-431c-8f9d-d0c4d0276265", + "id": "chroma_key_filter", + "versioned_id": "chroma_key_filter_v2", + "settings": {}, + "mixers": 0, + "sync": 0, + "flags": 0, + "volume": 1.0, + "balance": 0.5, + "enabled": true, + "muted": false, + "push-to-mute": false, + "push-to-mute-delay": 0, + "push-to-talk": false, + "push-to-talk-delay": 0, + "hotkeys": {}, + "deinterlace_mode": 0, + "deinterlace_field_order": 0, + "monitoring_type": 0, + "private_settings": {} + } + ] + }, + { + "prev_ver": 503447552, + "name": "Slide Background", + "uuid": "7f03fc0d-6d95-4e9e-b4e7-2e43967b2488", + "id": "ffmpeg_source", + "versioned_id": "ffmpeg_source", + "settings": { + "close_when_inactive": true, + "local_file": "/home/naomi/Documents/stream/slide-bg.webm", + "looping": true + }, + "mixers": 255, + "sync": 0, + "flags": 0, + "volume": 1.0, + "balance": 0.5, + "enabled": true, + "muted": false, + "push-to-mute": false, + "push-to-mute-delay": 0, + "push-to-talk": false, + "push-to-talk-delay": 0, + "hotkeys": { + "libobs.mute": [], + "libobs.unmute": [], + "libobs.push-to-mute": [], + "libobs.push-to-talk": [], + "MediaSource.Restart": [], + "MediaSource.Play": [], + "MediaSource.Pause": [], + "MediaSource.Stop": [] + }, + "deinterlace_mode": 0, + "deinterlace_field_order": 0, + "monitoring_type": 0, + "private_settings": {} + }, + { + "prev_ver": 503447552, + "name": "Start", + "uuid": "527629ef-79c9-4b1a-a006-738220d3e68f", + "id": "scene", + "versioned_id": "scene", + "settings": { + "id_counter": 4, + "custom_size": false, + "items": [ + { + "name": "Slide Background", + "source_uuid": "7f03fc0d-6d95-4e9e-b4e7-2e43967b2488", + "visible": true, + "locked": false, + "rot": 0.0, + "pos": { + "x": 0.0, + "y": 0.0 + }, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "align": 5, + "bounds_type": 0, + "bounds_align": 0, + "bounds_crop": false, + "bounds": { + "x": 0.0, + "y": 0.0 + }, + "crop_left": 0, + "crop_top": 0, + "crop_right": 0, + "crop_bottom": 0, + "id": 1, + "group_item_backup": false, + "scale_filter": "disable", + "blend_method": "default", + "blend_type": "normal", + "show_transition": { + "duration": 0 + }, + "hide_transition": { + "duration": 0 + }, + "private_settings": {} + }, + { + "name": "Text Start", + "source_uuid": "f8ec5105-3e0e-44df-925e-1de60b69aac9", + "visible": true, + "locked": false, + "rot": 0.0, + "pos": { + "x": 557.0, + "y": 413.0 + }, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "align": 5, + "bounds_type": 0, + "bounds_align": 0, + "bounds_crop": false, + "bounds": { + "x": 0.0, + "y": 0.0 + }, + "crop_left": 0, + "crop_top": 0, + "crop_right": 0, + "crop_bottom": 0, + "id": 3, + "group_item_backup": false, + "scale_filter": "disable", + "blend_method": "default", + "blend_type": "normal", + "show_transition": { + "duration": 0 + }, + "hide_transition": { + "duration": 0 + }, + "private_settings": {} + }, + { + "name": "Alerts", + "source_uuid": "f1d0e2a1-3bbf-4a75-80ab-91243c5590d4", + "visible": true, + "locked": false, + "rot": 0.0, + "pos": { + "x": 0.0, + "y": 0.0 + }, + "scale": { + "x": 1.7999999523162842, + "y": 1.7999999523162842 + }, + "align": 5, + "bounds_type": 0, + "bounds_align": 0, + "bounds_crop": false, + "bounds": { + "x": 0.0, + "y": 0.0 + }, + "crop_left": 0, + "crop_top": 0, + "crop_right": 0, + "crop_bottom": 0, + "id": 4, + "group_item_backup": false, + "scale_filter": "disable", + "blend_method": "default", + "blend_type": "normal", + "show_transition": { + "duration": 0 + }, + "hide_transition": { + "duration": 0 + }, + "private_settings": {} + } + ] + }, + "mixers": 0, + "sync": 0, + "flags": 0, + "volume": 1.0, + "balance": 0.5, + "enabled": true, + "muted": false, + "push-to-mute": false, + "push-to-mute-delay": 0, + "push-to-talk": false, + "push-to-talk-delay": 0, + "hotkeys": { + "OBSBasic.SelectScene": [], + "libobs.show_scene_item.1": [], + "libobs.hide_scene_item.1": [], + "libobs.show_scene_item.3": [], + "libobs.hide_scene_item.3": [], + "libobs.show_scene_item.4": [], + "libobs.hide_scene_item.4": [] + }, + "deinterlace_mode": 0, + "deinterlace_field_order": 0, + "monitoring_type": 0, + "private_settings": {} + }, + { + "prev_ver": 503447552, + "name": "Stream", + "uuid": "7936741f-a3a3-478d-acdc-ca0e25fc1da1", + "id": "scene", + "versioned_id": "scene", + "settings": { + "id_counter": 6, + "custom_size": false, + "items": [ + { + "name": "Stream Background", + "source_uuid": "d9b7efee-1348-4d0f-9b2d-f7ea0ecad7e7", + "visible": true, + "locked": false, + "rot": 0.0, + "pos": { + "x": 1222.0, + "y": 403.0 + }, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "align": 5, + "bounds_type": 0, + "bounds_align": 0, + "bounds_crop": false, + "bounds": { + "x": 0.0, + "y": 0.0 + }, + "crop_left": 0, + "crop_top": 0, + "crop_right": 0, + "crop_bottom": 0, + "id": 1, + "group_item_backup": false, + "scale_filter": "disable", + "blend_method": "default", + "blend_type": "normal", + "show_transition": { + "duration": 0 + }, + "hide_transition": { + "duration": 0 + }, + "private_settings": {} + }, + { + "name": "Game", + "source_uuid": "b4b086c6-2733-4c66-b833-b0546d8d928f", + "visible": true, + "locked": false, + "rot": 0.0, + "pos": { + "x": 54.0, + "y": 98.0 + }, + "scale": { + "x": 0.71406251192092896, + "y": 0.71428573131561279 + }, + "align": 5, + "bounds_type": 0, + "bounds_align": 0, + "bounds_crop": false, + "bounds": { + "x": 0.0, + "y": 0.0 + }, + "crop_left": 0, + "crop_top": 0, + "crop_right": 0, + "crop_bottom": 0, + "id": 3, + "group_item_backup": false, + "scale_filter": "disable", + "blend_method": "default", + "blend_type": "normal", + "show_transition": { + "duration": 0 + }, + "hide_transition": { + "duration": 0 + }, + "private_settings": {} + }, + { + "name": "Model", + "source_uuid": "61587530-1788-4a8a-9854-55d7ab8643c1", + "visible": true, + "locked": false, + "rot": 0.0, + "pos": { + "x": 1266.0, + "y": 607.0 + }, + "scale": { + "x": 0.58046877384185791, + "y": 0.58055555820465088 + }, + "align": 5, + "bounds_type": 0, + "bounds_align": 0, + "bounds_crop": false, + "bounds": { + "x": 0.0, + "y": 0.0 + }, + "crop_left": 0, + "crop_top": 0, + "crop_right": 0, + "crop_bottom": 0, + "id": 4, + "group_item_backup": false, + "scale_filter": "disable", + "blend_method": "default", + "blend_type": "normal", + "show_transition": { + "duration": 0 + }, + "hide_transition": { + "duration": 0 + }, + "private_settings": {} + }, + { + "name": "Stream Overlay", + "source_uuid": "26865859-0f4d-4e3f-8285-e7567de6ab80", + "visible": true, + "locked": false, + "rot": 0.0, + "pos": { + "x": 0.0, + "y": 0.0 + }, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "align": 5, + "bounds_type": 0, + "bounds_align": 0, + "bounds_crop": false, + "bounds": { + "x": 0.0, + "y": 0.0 + }, + "crop_left": 0, + "crop_top": 0, + "crop_right": 0, + "crop_bottom": 0, + "id": 2, + "group_item_backup": false, + "scale_filter": "disable", + "blend_method": "default", + "blend_type": "normal", + "show_transition": { + "duration": 0 + }, + "hide_transition": { + "duration": 0 + }, + "private_settings": {} + }, + { + "name": "Alerts", + "source_uuid": "f1d0e2a1-3bbf-4a75-80ab-91243c5590d4", + "visible": true, + "locked": false, + "rot": 0.0, + "pos": { + "x": 0.0, + "y": 0.0 + }, + "scale": { + "x": 1.7999999523162842, + "y": 1.7999999523162842 + }, + "align": 5, + "bounds_type": 0, + "bounds_align": 0, + "bounds_crop": false, + "bounds": { + "x": 0.0, + "y": 0.0 + }, + "crop_left": 0, + "crop_top": 0, + "crop_right": 0, + "crop_bottom": 0, + "id": 5, + "group_item_backup": false, + "scale_filter": "disable", + "blend_method": "default", + "blend_type": "normal", + "show_transition": { + "duration": 0 + }, + "hide_transition": { + "duration": 0 + }, + "private_settings": {} + }, + { + "name": "Chat", + "source_uuid": "005e5143-427d-405c-84aa-b50210ad015f", + "visible": true, + "locked": false, + "rot": 0.0, + "pos": { + "x": 1420.0, + "y": 0.0 + }, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "align": 5, + "bounds_type": 0, + "bounds_align": 0, + "bounds_crop": false, + "bounds": { + "x": 0.0, + "y": 0.0 + }, + "crop_left": 0, + "crop_top": 0, + "crop_right": 0, + "crop_bottom": 0, + "id": 6, + "group_item_backup": false, + "scale_filter": "disable", + "blend_method": "default", + "blend_type": "normal", + "show_transition": { + "duration": 0 + }, + "hide_transition": { + "duration": 0 + }, + "private_settings": {} + } + ] + }, + "mixers": 0, + "sync": 0, + "flags": 0, + "volume": 1.0, + "balance": 0.5, + "enabled": true, + "muted": false, + "push-to-mute": false, + "push-to-mute-delay": 0, + "push-to-talk": false, + "push-to-talk-delay": 0, + "hotkeys": { + "OBSBasic.SelectScene": [], + "libobs.show_scene_item.1": [], + "libobs.hide_scene_item.1": [], + "libobs.show_scene_item.3": [], + "libobs.hide_scene_item.3": [], + "libobs.show_scene_item.4": [], + "libobs.hide_scene_item.4": [], + "libobs.show_scene_item.2": [], + "libobs.hide_scene_item.2": [], + "libobs.show_scene_item.5": [], + "libobs.hide_scene_item.5": [], + "libobs.show_scene_item.6": [], + "libobs.hide_scene_item.6": [] + }, + "deinterlace_mode": 0, + "deinterlace_field_order": 0, + "monitoring_type": 0, + "private_settings": {} + }, + { + "prev_ver": 503447552, + "name": "Stream Background", + "uuid": "d9b7efee-1348-4d0f-9b2d-f7ea0ecad7e7", + "id": "ffmpeg_source", + "versioned_id": "ffmpeg_source", + "settings": { + "close_when_inactive": true, + "local_file": "/home/naomi/Documents/stream/stream-bg.webm", + "looping": true + }, + "mixers": 255, + "sync": 0, + "flags": 0, + "volume": 1.0, + "balance": 0.5, + "enabled": true, + "muted": false, + "push-to-mute": false, + "push-to-mute-delay": 0, + "push-to-talk": false, + "push-to-talk-delay": 0, + "hotkeys": { + "libobs.mute": [], + "libobs.unmute": [], + "libobs.push-to-mute": [], + "libobs.push-to-talk": [], + "MediaSource.Restart": [], + "MediaSource.Play": [], + "MediaSource.Pause": [], + "MediaSource.Stop": [] + }, + "deinterlace_mode": 0, + "deinterlace_field_order": 0, + "monitoring_type": 0, + "private_settings": {} + }, + { + "prev_ver": 503447552, + "name": "Stream Overlay", + "uuid": "26865859-0f4d-4e3f-8285-e7567de6ab80", + "id": "ffmpeg_source", + "versioned_id": "ffmpeg_source", + "settings": { + "close_when_inactive": true, + "local_file": "/home/naomi/Documents/stream/stream-overlay.webm", + "looping": true + }, + "mixers": 255, + "sync": 0, + "flags": 0, + "volume": 1.0, + "balance": 0.5, + "enabled": true, + "muted": false, + "push-to-mute": false, + "push-to-mute-delay": 0, + "push-to-talk": false, + "push-to-talk-delay": 0, + "hotkeys": { + "libobs.mute": [], + "libobs.unmute": [], + "libobs.push-to-mute": [], + "libobs.push-to-talk": [], + "MediaSource.Restart": [], + "MediaSource.Play": [], + "MediaSource.Pause": [], + "MediaSource.Stop": [] + }, + "deinterlace_mode": 0, + "deinterlace_field_order": 0, + "monitoring_type": 0, + "private_settings": {} + }, + { + "prev_ver": 503447552, + "name": "Text BRB", + "uuid": "6f46d696-d2f1-49b4-957d-1f06a9392cdc", + "id": "ffmpeg_source", + "versioned_id": "ffmpeg_source", + "settings": { + "local_file": "/home/naomi/Documents/stream/slide-text-brb.webm", + "close_when_inactive": true, + "looping": true + }, + "mixers": 255, + "sync": 0, + "flags": 0, + "volume": 1.0, + "balance": 0.5, + "enabled": true, + "muted": false, + "push-to-mute": false, + "push-to-mute-delay": 0, + "push-to-talk": false, + "push-to-talk-delay": 0, + "hotkeys": { + "libobs.mute": [], + "libobs.unmute": [], + "libobs.push-to-mute": [], + "libobs.push-to-talk": [], + "MediaSource.Restart": [], + "MediaSource.Play": [], + "MediaSource.Pause": [], + "MediaSource.Stop": [] + }, + "deinterlace_mode": 0, + "deinterlace_field_order": 0, + "monitoring_type": 0, + "private_settings": {} + }, + { + "prev_ver": 503447552, + "name": "Text End", + "uuid": "e84200d5-b7bf-4230-afff-ff7cbae8a8d3", + "id": "ffmpeg_source", + "versioned_id": "ffmpeg_source", + "settings": { + "local_file": "/home/naomi/Documents/stream/slide-text-end.webm", + "looping": true + }, + "mixers": 255, + "sync": 0, + "flags": 0, + "volume": 1.0, + "balance": 0.5, + "enabled": true, + "muted": false, + "push-to-mute": false, + "push-to-mute-delay": 0, + "push-to-talk": false, + "push-to-talk-delay": 0, + "hotkeys": { + "libobs.mute": [], + "libobs.unmute": [], + "libobs.push-to-mute": [], + "libobs.push-to-talk": [], + "MediaSource.Restart": [], + "MediaSource.Play": [], + "MediaSource.Pause": [], + "MediaSource.Stop": [] + }, + "deinterlace_mode": 0, + "deinterlace_field_order": 0, + "monitoring_type": 0, + "private_settings": {} + }, + { + "prev_ver": 503447552, + "name": "Text Start", + "uuid": "f8ec5105-3e0e-44df-925e-1de60b69aac9", + "id": "ffmpeg_source", + "versioned_id": "ffmpeg_source", + "settings": { + "local_file": "/home/naomi/Documents/stream/slide-text-start.webm", + "close_when_inactive": true, + "undo_uuid": "f8ec5105-3e0e-44df-925e-1de60b69aac9", + "looping": true + }, + "mixers": 255, + "sync": 0, + "flags": 0, + "volume": 1.0, + "balance": 0.5, + "enabled": true, + "muted": false, + "push-to-mute": false, + "push-to-mute-delay": 0, + "push-to-talk": false, + "push-to-talk-delay": 0, + "hotkeys": { + "libobs.mute": [], + "libobs.unmute": [], + "libobs.push-to-mute": [], + "libobs.push-to-talk": [], + "MediaSource.Restart": [], + "MediaSource.Play": [], + "MediaSource.Pause": [], + "MediaSource.Stop": [] + }, + "deinterlace_mode": 0, + "deinterlace_field_order": 0, + "monitoring_type": 0, + "private_settings": {} + }, + { + "prev_ver": 503447552, + "name": "Virtual Cam", + "uuid": "251f1f3f-846d-475d-a496-9c9afd69125a", + "id": "scene", + "versioned_id": "scene", + "settings": { + "id_counter": 3, + "custom_size": false, + "items": [ + { + "name": "Cam Background", + "source_uuid": "6bd1ef08-a91e-4b0b-bb1a-d3ee2387f5f5", + "visible": true, + "locked": false, + "rot": 0.0, + "pos": { + "x": 0.0, + "y": 0.0 + }, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "align": 5, + "bounds_type": 0, + "bounds_align": 0, + "bounds_crop": false, + "bounds": { + "x": 0.0, + "y": 0.0 + }, + "crop_left": 0, + "crop_top": 0, + "crop_right": 0, + "crop_bottom": 0, + "id": 1, + "group_item_backup": false, + "scale_filter": "disable", + "blend_method": "default", + "blend_type": "normal", + "show_transition": { + "duration": 0 + }, + "hide_transition": { + "duration": 0 + }, + "private_settings": {} + }, + { + "name": "Model", + "source_uuid": "61587530-1788-4a8a-9854-55d7ab8643c1", + "visible": true, + "locked": false, + "rot": 0.0, + "pos": { + "x": 0.0, + "y": 0.0 + }, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "align": 5, + "bounds_type": 2, + "bounds_align": 0, + "bounds_crop": false, + "bounds": { + "x": 1920.0, + "y": 1080.0 + }, + "crop_left": 0, + "crop_top": 0, + "crop_right": 0, + "crop_bottom": 0, + "id": 3, + "group_item_backup": false, + "scale_filter": "disable", + "blend_method": "default", + "blend_type": "normal", + "show_transition": { + "duration": 0 + }, + "hide_transition": { + "duration": 0 + }, + "private_settings": {} + }, + { + "name": "Cam Overlay", + "source_uuid": "bf638a3c-5133-406c-a3d2-541723f715f9", + "visible": true, + "locked": false, + "rot": 0.0, + "pos": { + "x": 0.0, + "y": 0.0 + }, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "align": 5, + "bounds_type": 0, + "bounds_align": 0, + "bounds_crop": false, + "bounds": { + "x": 0.0, + "y": 0.0 + }, + "crop_left": 0, + "crop_top": 0, + "crop_right": 0, + "crop_bottom": 0, + "id": 2, + "group_item_backup": false, + "scale_filter": "disable", + "blend_method": "default", + "blend_type": "normal", + "show_transition": { + "duration": 0 + }, + "hide_transition": { + "duration": 0 + }, + "private_settings": {} + } + ] + }, + "mixers": 0, + "sync": 0, + "flags": 0, + "volume": 1.0, + "balance": 0.5, + "enabled": true, + "muted": false, + "push-to-mute": false, + "push-to-mute-delay": 0, + "push-to-talk": false, + "push-to-talk-delay": 0, + "hotkeys": { + "OBSBasic.SelectScene": [], + "libobs.show_scene_item.1": [], + "libobs.hide_scene_item.1": [], + "libobs.show_scene_item.3": [], + "libobs.hide_scene_item.3": [], + "libobs.show_scene_item.2": [], + "libobs.hide_scene_item.2": [] + }, + "deinterlace_mode": 0, + "deinterlace_field_order": 0, + "monitoring_type": 0, + "private_settings": {} + } + ] +} +``` + +
+ +### 3.3. Profile + +This configuration file sets up the OBS profile. + +```ini +[General] +Name=Naomi + +[Output] +Mode=Simple +FilenameFormatting=%CCYY-%MM-%DD %hh-%mm-%ss +DelayEnable=false +DelaySec=20 +DelayPreserve=true +Reconnect=true +RetryDelay=2 +MaxRetries=25 +BindIP=default +IPFamily=IPv4+IPv6 +NewSocketLoopEnable=false +LowLatencyEnable=false + +[Stream1] +IgnoreRecommended=false + +[SimpleOutput] +FilePath=/home/naomi +RecFormat2=mkv +VBitrate=2500 +ABitrate=160 +UseAdvanced=false +Preset=veryfast +NVENCPreset2=p5 +RecQuality=Stream +RecRB=false +RecRBTime=20 +RecRBSize=512 +RecRBPrefix=Replay +StreamAudioEncoder=aac +RecAudioEncoder=aac +RecTracks=1 +StreamEncoder=nvenc +RecEncoder=nvenc + +[AdvOut] +ApplyServiceSettings=true +UseRescale=false +TrackIndex=1 +VodTrackIndex=2 +Encoder=obs_x264 +RecType=Standard +RecFilePath=/home/naomi +RecFormat2=mkv +RecUseRescale=false +RecTracks=1 +RecEncoder=none +FLVTrack=1 +StreamMultiTrackAudioMixes=1 +FFOutputToFile=true +FFFilePath=/home/naomi +FFExtension=mp4 +FFVBitrate=2500 +FFVGOPSize=250 +FFUseRescale=false +FFIgnoreCompat=false +FFABitrate=160 +FFAudioMixes=1 +Track1Bitrate=160 +Track2Bitrate=160 +Track3Bitrate=160 +Track4Bitrate=160 +Track5Bitrate=160 +Track6Bitrate=160 +RecSplitFileTime=15 +RecSplitFileSize=2048 +RecRB=false +RecRBTime=20 +RecRBSize=512 +AudioEncoder=libfdk_aac +RecAudioEncoder=libfdk_aac + +[Video] +BaseCX=1920 +BaseCY=1080 +OutputCX=1920 +OutputCY=1080 +FPSType=0 +FPSCommon=30 +FPSInt=30 +FPSNum=30 +FPSDen=1 +ScaleType=bicubic +ColorFormat=NV12 +ColorSpace=709 +ColorRange=Partial +SdrWhiteLevel=300 +HdrNominalPeakLevel=1000 + +[Audio] +MonitoringDeviceId=default +MonitoringDeviceName=Default +SampleRate=48000 +ChannelSetup=Stereo +MeterDecayRate=23.53 +PeakMeterType=0 + +[Panels] +CookieId=#redacted +``` + +### 3.4. Docks + +This configuration file loads Naomi's standard dock layout. Sensitive information has been redacted. + +```ini +[General] +Pre19Defaults=false +Pre21Defaults=false +Pre23Defaults=false +Pre24.1Defaults=false +MaxLogs=10 +InfoIncrement=1 +ProcessPriority=Normal +EnableAutoUpdates=true +ConfirmOnExit=true +HotkeyFocusType=NeverDisableHotkeys +FirstRun=true +InstallGUID=#Redacted +CurrentTheme3=Light +LastVersion=503382018 +InfoLastVersion=32993938767872 + +[Video] +Renderer=OpenGL + +[BasicWindow] +PreviewEnabled=true +PreviewProgramMode=false +SceneDuplicationMode=true +SwapScenesMode=true +SnappingEnabled=true +ScreenSnapping=true +SourceSnapping=true +CenterSnapping=false +SnapDistance=10 +SpacingHelpersEnabled=true +RecordWhenStreaming=false +KeepRecordingWhenStreamStops=false +SysTrayEnabled=true +SysTrayWhenStarted=false +SaveProjectors=false +ShowTransitions=true +ShowListboxToolbars=true +ShowStatusBar=true +ShowSourceIcons=true +ShowContextToolbars=true +StudioModeLabels=true +VerticalVolControl=false +MultiviewMouseSwitch=true +MultiviewDrawNames=true +MultiviewDrawAreas=true +MediaControlsCountdownTimer=true +WarnBeforeStartingStream=false +WarnBeforeStoppingStream=false +WarnBeforeStoppingRecord=false +geometry=AdnQywADAAAAAA8AAAAAAAAAFn8AAAQ3AAARNgAAACAAABVsAAAC2AAAAAICAAAAB4AAAA8AAAAAIAAAFn8AAAQ3 +DockState=AAAA/wAAAAD9AAAAAwAAAAAAAAB0AAAC1/wCAAAAAfsAAAAiAEMAaABhAHQAXwBlAHgAdAByAGEAQgByAG8AdwBzAGUAcgEAAAAXAAAC1wAAAFAA////AAAAAQAAAY4AAALX/AIAAAAB/AAAABcAAALXAAAAUAD////8AQAAAAL7AAAAMABSAGUAZABlAG0AcAB0AGkAbwBuAHMAXwBlAHgAdAByAGEAQgByAG8AdwBzAGUAcgEAAAXyAAAAwwAAAFAA////+wAAACgAQQBjAHQAaQBvAG4AcwBfAGUAeAB0AHIAYQBCAHIAbwB3AHMAZQByAQAABrkAAADHAAAAUAD///8AAAADAAAHgAAAAQT8AQAAAAf7AAAAFABzAGMAZQBuAGUAcwBEAG8AYwBrAQAAAAAAAAE1AAAAoAD////7AAAAFgBzAG8AdQByAGMAZQBzAEQAbwBjAGsBAAABOQAAATIAAACgAP////sAAAASAG0AaQB4AGUAcgBEAG8AYwBrAQAAAm8AAAGSAAAA3gD////7AAAAHgB0AHIAYQBuAHMAaQB0AGkAbwBuAHMARABvAGMAawEAAAQFAAABHwAAAIIA////+wAAACIARgBlAGUAZABfAGUAeAB0AHIAYQBCAHIAbwB3AHMAZQByAQAABSgAAAExAAAAUAD////7AAAAGABjAG8AbgB0AHIAbwBsAHMARABvAGMAawEAAAZdAAABIwAAAJ4A////+wAAABIAcwB0AGEAdABzAEQAbwBjAGsCAAACYgAAAbgAAAK8AAAAyAAABXYAAALXAAAABAAAAAQAAAAIAAAACPwAAAAA +ExtraBrowserDocks=[{"title": "Redemptions", "url": "https://www.twitch.tv/popout/naomilgbt/reward-queue", "uuid": "redacted"}, {"title": "Feed", "url": "https://dashboard.twitch.tv/popout/u/naomilgbt/stream-manager/activity-feed?uuid=redacted", "uuid": "redacted"}, {"title": "Chat", "url": "https://dashboard.twitch.tv/popout/u/naomilgbt/stream-manager/chat?uuid=redacted", "uuid": "redacted"}, {"title": "Actions", "url": "https://dashboard.twitch.tv/popout/u/naomilgbt/stream-manager/quick-actions?uuid=redacted", "uuid": "redacted"}] +AlwaysOnTop=false +EditPropertiesMode=false +DocksLocked=false +SideDocks=false + +[Basic] +Profile=Naomi +ProfileDir=Naomi +SceneCollection=Naomi +SceneCollectionFile=Naomi +ConfigOnNewProfile=true + +[OBSWebSocket] + +[Accessibility] +SelectRed=255 +SelectGreen=65280 +SelectBlue=16744192 +MixerGreen=2522918 +MixerYellow=2523007 +MixerRed=2500223 +MixerGreenActive=5046092 +MixerYellowActive=5046271 +MixerRedActive=5000447 + +[PropertiesWindow] +cx=720 +cy=580 + +[ScriptLogWindow] +geometry=AdnQywADAAAAAAABAAAAGQAAAlgAAAGoAAAAAQAAABkAAAJYAAABqAAAAAEAAAAAB4AAAAABAAAAGQAAAlgAAAGo + +[Appearance] +Theme=com.obsproject.Yami.Light +```