Skip to content

Commit

Permalink
Merge pull request #196 from srobo/kickstart-livestream
Browse files Browse the repository at this point in the history
Add notes following kickstart livestream
  • Loading branch information
RealOrangeOne authored Nov 19, 2024
2 parents 6e7bfed + dc502e5 commit 18df219
Show file tree
Hide file tree
Showing 8 changed files with 57 additions and 14 deletions.
2 changes: 1 addition & 1 deletion docs/competition/competition-roles.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ Depending on the nature of the event, some of these roles may not be applicable.

- [Roving Helper](./team-support/roving-helper.md)
- [Tinker Time Coordinator](./team-support/tinker-time.md)
- [Livestream Producer](./livestream/README.md)
- [Livestream Producer](../programme/livestream/README.md)

### Helpdesk

Expand Down
2 changes: 1 addition & 1 deletion docs/competition/virtual-competitions/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ Due to COVID-19 Student Robotics has held the competition for the SR2020 and SR2

[simulator]: https://github.com/srobo/competition-simulator
[code_submitter]: https://github.com/PeterJCLaw/code-submitter
[livestream]: ../livestream/README.md
[livestream]: ../../programme/livestream/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,18 +14,8 @@ OBS configuration is split into 2 fundamental objects: Scenes and Sources. A sce

For virtual competition livestreams we use [SRComp Mixtape](https://github.com/srobo/srcomp-mixtape) to automate the playback of match videos and the scene transitions at either end of each match. See [Mixtape's documentation](https://github.com/srobo/srcomp-mixtape#configuration) for how to create a suitable playlist file to configure mixtape.

Additional software may be needed if the hosts are [remote](./remote-content.md).

## Hardware

The hardware requirements for hosting a livestream are not large, however a stable internet connection is a must. A dedicated GPU is useful to ensure the system isn't taxed too heavily.

## Music

As background music during livestreams, we'll often play quiet music.

For finals events, more dramatic music is played vs other sessions, to emphasize the importance. For finals events, we have heavily used [Monstercat](https://www.monstercat.com/) in the past, and for other events [incompetech](https://incompetech.com/), as these sources can be used without purchasing a licence, provided the required attribution is given.

There is no simple playlist used for each event. The playlists for each event are built off the previous, with any new finds added and disliked tracks removed.

During live events, the music played throughout the venue needs to be stripped out, usually through a separate audio feed.

Audio can either be played directly through OBS using the VLC source, or through a desktop audio player, so long as any other system sound effects are muted. When playing audio, be sure to [normalize it](https://www.alphr.com/normalize-volume-vlc) to ensure the volume doesn't vary.
20 changes: 20 additions & 0 deletions docs/programme/livestream/audio.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Audio

## Music

As background music during livestreams, we'll often play quiet music.

For finals events, more dramatic music is played vs other sessions, to emphasize the importance. For finals events, we have heavily used [Monstercat](https://www.monstercat.com/) in the past, and for other events [incompetech](https://incompetech.com/), as these sources can be used without purchasing a licence, provided the required attribution is given. We have also used [Epidemic Sound](https://www.epidemicsound.com/), however this is a paid-for service.

There is no simple playlist used for each event. The playlists for each event are built off the previous, with any new finds added and disliked tracks removed.

During live events, the music played throughout the venue needs to be stripped out, usually through a separate audio feed.

Audio can either be played directly through OBS using the VLC source, or through a desktop audio player, so long as any other system sound effects using the audio device are muted. When playing audio, be sure to [normalize it](https://www.alphr.com/normalize-volume-vlc) to ensure the volume doesn't vary.

## Audio sources

!!! tip
On Windows, you can use [VoiceMeeter](https://vb-audio.com/Voicemeeter/) to create "virtual" audio devices to allow OBS to distinguish between incoming application audio.

It's recommended to avoid Global Audio Devices unless the source is intended to be available to every scene (eg host microphones). Adding sources per scene is more work, but reduces the need to manually mute and un-mute certain sources when changing scenes.
File renamed without changes.
25 changes: 25 additions & 0 deletions docs/programme/livestream/remote-content.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Remote content

All of the content for a livestream may not be coming from the same machine, for example if the hosts are remote.

!!! warning
For anything which requires high quality, such as full-screen video, this should be handled by the livestream machine wherever possible.

## Video

To stream video, it's recommended to use [vdo.ninja](https://vdo.ninja), as this creates high-quality low-latency video sources which only need a browser to function. `vdo.ninja` also allows hosts to mute themselves, and add background effects such as blurs and green-screening.

!!! note
For on-site cameras, it may also be useful to use NDI with [`obs-ndi`](https://github.com/obs-ndi/obs-ndi)

For hosts, visit [vdo.ninja](https://vdo.ninja/), and click "Add your Camera to OBS". You'll then be able to select the correct video and audio sources, before clicking "START". At the top of the page is a URL (starting `vdo.ninja/?view=...`) which should be sent to the person running OBS.

For producers, add the link provided by the host (if the link contains `?push=...`, change it to `?view=...`) as a [Browser Source](https://obsproject.com/kb/browser-source). The source can then be positioned in the scene as needed, and the host's mic appears as an audio source.

## Slides

For presenting slides, it's recommended to run the slides on the livestream machine, so any animated content or videos are as smooth as possible.

If a remote host(s) needs to control the slides, it's recommended to use [Remote for Slides](https://limhenry.xyz/slides/), which also supports showing presenter notes.

To ensure the host can see the slides, use a Google Meet call to share the presentation.
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,14 @@ This page documents a few of the core scenes which are used for livestreams. Not

The various assets useful for creating these scenes can be found [here](https://drive.google.com/drive/folders/1pr1vKpnonxFoO8O5chsH5DF7Vsd0Tfih?usp=sharing).

## Presentation

Events such as Kickstart are predominantly a presentation.

For the presentation, it's recommended to use a window-based capture, rather than screen-based, to reduce the risk of accidentally putting sensitive or unrelated content over the slides.

Long presentations should still show the host. Choose a bottom corner of the screen which won't cover any content and keep their camera fixed there. Slides may need modifying to ensure important content isn't covered.

## Technical difficulties

Things occasionally go wrong during events, so wrong it may be necessary to cut the whole feed. In this case, we show a "Technical difficulties" screen, comprised of a single image, and mute audio whilst we work on a solution.
Expand Down

0 comments on commit 18df219

Please sign in to comment.