-
Notifications
You must be signed in to change notification settings - Fork 134
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
6bec74c
commit 8d6665f
Showing
10 changed files
with
186 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,120 @@ | ||
# Setting up OBS | ||
|
||
This is a guide on how to set up Open Brodcaster Software for live broadcast of Node.js meetings. | ||
|
||
## Prerequisites | ||
|
||
##### OBS (Open Broadcaster Software) | ||
|
||
OBS is a free, open-source encoder. This guide will focus on it. | ||
OBS can be downloaded from https://obsproject.com/ and its repo is at | ||
https://github.com/jp9000/obs-studio. | ||
|
||
Make sure to download the newer OBS "Studio" edition. | ||
(Available for multiple operating systems.) | ||
|
||
_**Notes for macOS**_ | ||
|
||
By default, macOS does not have any APIs capable of monitoring desktop audio. | ||
As such, a driver is required. | ||
|
||
Commercial options such as https://rogueamoeba.com/loopback/ come with a | ||
certified driver for this. | ||
|
||
If compiling a custom driver is reasonable, | ||
the OBS project suggests [WavTap](https://github.com/pje/WavTap), and | ||
has detailed instructions | ||
[here](https://obsproject.com/forum/resources/setting-up-mac-desktop-sound-capture-with-wavtap.79/). | ||
|
||
Note: WavTap does not work on OS X El Capitan. In that case, | ||
[Soundflower](https://github.com/mattingalls/Soundflower) may be a better | ||
option. | ||
|
||
### Stream key | ||
|
||
Usually a single key identifier is used to verify with the service the channel | ||
being streamed to. | ||
|
||
Getting one for youtube is described in [Streaming-To-Youtube](Streaming-To-Youtube.md). | ||
|
||
## Profile Setup & Settings | ||
|
||
On the menu bar, select `Profile` and then `Rename`. Call the previously | ||
"untitled" profile `Node.js`. | ||
(Or create a new profile if existing profiles are present.) | ||
|
||
On the right side of OBS's interface, click the `Settings` button. | ||
(Or open settings/preference the default way on your operating system.) | ||
|
||
An interface will appear with several window tabs on the left side. | ||
The following headers will refer to those tabs by name. | ||
|
||
### Stream Settings | ||
|
||
Under the `Stream` tab, click the `Service` dropdown and select | ||
`YouTube / YouTube Gaming`. | ||
|
||
Enter in the `Stream key` as described in the prerequisites. | ||
|
||
### Output Settings | ||
|
||
Ensure the `Output Mode` is `simple` and the `Video Bitrate` is `2500`. | ||
|
||
Set the `Audio Bitrate` to `160` if it is not already. | ||
|
||
### Audio Settings | ||
|
||
Set the `Sample Rate` to `48khz`. | ||
|
||
### Video Settings | ||
|
||
Set the `Output (Scaled) Resolution` to `1280x720` (720p). | ||
|
||
## Scene Setup | ||
|
||
On the menu bar, select `Scene Collection` and then `Rename`. Call the | ||
previously "untitled" scene `Node.js`. | ||
(Or create a new scene if existing scenes are present.) | ||
|
||
Under the `Sources` window, click the `+` symbol and select "Image". | ||
Call it `White Background`. | ||
Set the `Image File` to any pure-white `.png` file. | ||
|
||
Click on the white image in the preview so that a red boarder with control | ||
points appears. Expand the image to, or beyond, the preview border. | ||
|
||
Under the `Sources` window, click the `+` symbol and select `Image`. | ||
Call it `Node Logo`. | ||
Set the `Image File` to a Node.js `.png` logo file at least 1280x720 in size. | ||
|
||
Expand the Node.js logo to about two-thirds of the preview. | ||
Then, right-click the logo image and select `Transform` and next, | ||
`Center to screen`. | ||
|
||
## Audio setup | ||
|
||
Change the volume slider on the `Desktop Audio` channel to be `-4.5 dB`. | ||
|
||
Click the gear icon on the right of the `Desktop Audio` volume slider. | ||
Select `Filters`. In the new window, click the `+` symbol and select | ||
`Noise Gate`. Once created, set the following properties: | ||
- `Close Threshold (dB)`: `-50.00`. | ||
- `Open Threshold (dB)`: `-45.00`. | ||
- `Attack Time (milliseconds)`: `10`. | ||
- `Hold Time (milliseconds)`: `200`. | ||
- `Release Time (milliseconds)`: `150`. | ||
|
||
If you are joining the meeting from a different computer, mute the `Mic/Aux` | ||
channel by clicking on the speaker icon. | ||
|
||
#### macOS Audio | ||
|
||
Desktop audio capture does not work be default on macOS. Please see the above "Notes for macOS" section for more information. | ||
|
||
## Going live | ||
|
||
Starting a livestream is as simple as clicking the `Start Streaming` button in the lower-right corner of OBS. Clicking the button again will stop the livestream. | ||
|
||
Avoid streaming to an official Node.js account unless there is an actual meeting. Only one such stream may be live at a time. | ||
|
||
If testing is necessary, please use a personal account on the appropriate streaming service with a separate OBS profile. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
# Streaming Meetings to Youtube | ||
|
||
This is a guide on how to set up a live broadcast video encoder for the | ||
purpose of streaming Node.js meetings live to Youtube. | ||
|
||
Ask @Mikeal to add you as a manager for the Node.js Youtube if you need to stream in this way. | ||
|
||
## Encoder Setup | ||
|
||
### Switch account to Node.js | ||
|
||
![](youtube-switch-login.png) | ||
|
||
### Open Youtube's Creator Studio | ||
|
||
![](youtube-creator-studio.png) | ||
|
||
### Navigate to the Live Streaming tab | ||
|
||
![](youtube-live-streaming.png) | ||
|
||
### Fetch Stream Key | ||
|
||
![](youtube-encoder-setup.png) | ||
|
||
## Preparing for a meeting | ||
|
||
### Edit the stream Title and Description | ||
|
||
The title should be set to the same format as the meeting issue title, but with the date moved to the front. | ||
|
||
The description should be a link to the meeting issue. | ||
|
||
![](youtube-stream-title-description.png) | ||
|
||
### Share the meeting once you've gone live. | ||
|
||
The meeting link should be `http://www.youtube.com/c/nodejs-foundation/live`. | ||
|
||
Send it in a tweet such as: | ||
``` | ||
.@nodejs Core Technical Committee meeting live now: http://www.youtube.com/c/nodejs-foundation/live | ||
``` | ||
|
||
Adjust the `Core Technical Committee` part as necessary and remove the `.@nodejs` if tweeting from the official twitter account. | ||
|
||
![](youtube-stream-share.png) | ||
|
||
## Check stream status | ||
|
||
This should say online when you are streaming, and usually be green. | ||
|
||
However, it may turn yellow and issue a warning in a "stream health" section below. Since we usually stream with static images for the video, there will often be warnings that the video bitrate is low. This is a not a problem and should almost always be ignored. | ||
|
||
![](youtube-stream-status.png) | ||
|
||
## Check how many people are watching | ||
|
||
![](youtube-stream-analytics.png) | ||
|
||
## Moderate the chat and solicit questions | ||
|
||
Moderation follows the [Moderation Policy](../Moderation-Policy.md). Messages can be moderated right-clicking and selecting the necessary action, such as `remove`. | ||
|
||
During TSC and CTC meetings, there is a section of public Q&A at the end. | ||
It is important to solicit for questions **well in advance** of public Q&A sections so that people have time to think of and type questions. |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.