Compare commits

...

10 Commits

24 changed files with 698 additions and 81 deletions

BIN
.DS_Store vendored

Binary file not shown.

8
.gitignore vendored
View File

@@ -1 +1,7 @@
_book/*
_book/
node_modules/
.DS_Store
.AppleDouble
.LSOverride

View File

@@ -1,2 +1,5 @@
## DAW
Your audio software (Ablton Live, Cubase, Logic, Reaper, Bitwig...). More preciselly, a digital audio workstation (DAW) is an electronic device or application software used for recording, editing and producing audio files. *[Source](https://en.wikipedia.org/wiki/Digital_audio_workstation)*
## RTMP
Stands for Real Time Messaging Protocol. One of the many existing streaming protocols.

Binary file not shown.

437
LICENSE.md Normal file
View File

@@ -0,0 +1,437 @@
The content of this project is under license [CC-BY-SA-4.0](https://creativecommons.org/licenses/by-sa/4.0/)
You are free to:
- **Share**: copy and redistribute the material in any medium or format
- **Adapt**: remix, transform, and build upon the material for any purpose, even commercially.
Under the following terms:
- **Attribution**: You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
- **ShareAlike**: If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original.
---
Attribution-ShareAlike 4.0 International
=======================================================================
Creative Commons Corporation ("Creative Commons") is not a law firm and
does not provide legal services or legal advice. Distribution of
Creative Commons public licenses does not create a lawyer-client or
other relationship. Creative Commons makes its licenses and related
information available on an "as-is" basis. Creative Commons gives no
warranties regarding its licenses, any material licensed under their
terms and conditions, or any related information. Creative Commons
disclaims all liability for damages resulting from their use to the
fullest extent possible.
Using Creative Commons Public Licenses
Creative Commons public licenses provide a standard set of terms and
conditions that creators and other rights holders may use to share
original works of authorship and other material subject to copyright
and certain other rights specified in the public license below. The
following considerations are for informational purposes only, are not
exhaustive, and do not form part of our licenses.
Considerations for licensors: Our public licenses are
intended for use by those authorized to give the public
permission to use material in ways otherwise restricted by
copyright and certain other rights. Our licenses are
irrevocable. Licensors should read and understand the terms
and conditions of the license they choose before applying it.
Licensors should also secure all rights necessary before
applying our licenses so that the public can reuse the
material as expected. Licensors should clearly mark any
material not subject to the license. This includes other CC-
licensed material, or material used under an exception or
limitation to copyright. More considerations for licensors:
wiki.creativecommons.org/Considerations_for_licensors
Considerations for the public: By using one of our public
licenses, a licensor grants the public permission to use the
licensed material under specified terms and conditions. If
the licensor's permission is not necessary for any reason--for
example, because of any applicable exception or limitation to
copyright--then that use is not regulated by the license. Our
licenses grant only permissions under copyright and certain
other rights that a licensor has authority to grant. Use of
the licensed material may still be restricted for other
reasons, including because others have copyright or other
rights in the material. A licensor may make special requests,
such as asking that all changes be marked or described.
Although not required by our licenses, you are encouraged to
respect those requests where reasonable. More considerations
for the public:
wiki.creativecommons.org/Considerations_for_licensees
=======================================================================
Creative Commons Attribution-ShareAlike 4.0 International Public
License
By exercising the Licensed Rights (defined below), You accept and agree
to be bound by the terms and conditions of this Creative Commons
Attribution-ShareAlike 4.0 International Public License ("Public
License"). To the extent this Public License may be interpreted as a
contract, You are granted the Licensed Rights in consideration of Your
acceptance of these terms and conditions, and the Licensor grants You
such rights in consideration of benefits the Licensor receives from
making the Licensed Material available under these terms and
conditions.
Section 1 -- Definitions.
a. Adapted Material means material subject to Copyright and Similar
Rights that is derived from or based upon the Licensed Material
and in which the Licensed Material is translated, altered,
arranged, transformed, or otherwise modified in a manner requiring
permission under the Copyright and Similar Rights held by the
Licensor. For purposes of this Public License, where the Licensed
Material is a musical work, performance, or sound recording,
Adapted Material is always produced where the Licensed Material is
synched in timed relation with a moving image.
b. Adapter's License means the license You apply to Your Copyright
and Similar Rights in Your contributions to Adapted Material in
accordance with the terms and conditions of this Public License.
c. BY-SA Compatible License means a license listed at
creativecommons.org/compatiblelicenses, approved by Creative
Commons as essentially the equivalent of this Public License.
d. Copyright and Similar Rights means copyright and/or similar rights
closely related to copyright including, without limitation,
performance, broadcast, sound recording, and Sui Generis Database
Rights, without regard to how the rights are labeled or
categorized. For purposes of this Public License, the rights
specified in Section 2(b)(1)-(2) are not Copyright and Similar
Rights.
e. Effective Technological Measures means those measures that, in the
absence of proper authority, may not be circumvented under laws
fulfilling obligations under Article 11 of the WIPO Copyright
Treaty adopted on December 20, 1996, and/or similar international
agreements.
f. Exceptions and Limitations means fair use, fair dealing, and/or
any other exception or limitation to Copyright and Similar Rights
that applies to Your use of the Licensed Material.
g. License Elements means the license attributes listed in the name
of a Creative Commons Public License. The License Elements of this
Public License are Attribution and ShareAlike.
h. Licensed Material means the artistic or literary work, database,
or other material to which the Licensor applied this Public
License.
i. Licensed Rights means the rights granted to You subject to the
terms and conditions of this Public License, which are limited to
all Copyright and Similar Rights that apply to Your use of the
Licensed Material and that the Licensor has authority to license.
j. Licensor means the individual(s) or entity(ies) granting rights
under this Public License.
k. Share means to provide material to the public by any means or
process that requires permission under the Licensed Rights, such
as reproduction, public display, public performance, distribution,
dissemination, communication, or importation, and to make material
available to the public including in ways that members of the
public may access the material from a place and at a time
individually chosen by them.
l. Sui Generis Database Rights means rights other than copyright
resulting from Directive 96/9/EC of the European Parliament and of
the Council of 11 March 1996 on the legal protection of databases,
as amended and/or succeeded, as well as other essentially
equivalent rights anywhere in the world.
m. You means the individual or entity exercising the Licensed Rights
under this Public License. Your has a corresponding meaning.
Section 2 -- Scope.
a. License grant.
1. Subject to the terms and conditions of this Public License,
the Licensor hereby grants You a worldwide, royalty-free,
non-sublicensable, non-exclusive, irrevocable license to
exercise the Licensed Rights in the Licensed Material to:
a. reproduce and Share the Licensed Material, in whole or
in part; and
b. produce, reproduce, and Share Adapted Material.
2. Exceptions and Limitations. For the avoidance of doubt, where
Exceptions and Limitations apply to Your use, this Public
License does not apply, and You do not need to comply with
its terms and conditions.
3. Term. The term of this Public License is specified in Section
6(a).
4. Media and formats; technical modifications allowed. The
Licensor authorizes You to exercise the Licensed Rights in
all media and formats whether now known or hereafter created,
and to make technical modifications necessary to do so. The
Licensor waives and/or agrees not to assert any right or
authority to forbid You from making technical modifications
necessary to exercise the Licensed Rights, including
technical modifications necessary to circumvent Effective
Technological Measures. For purposes of this Public License,
simply making modifications authorized by this Section 2(a)
(4) never produces Adapted Material.
5. Downstream recipients.
a. Offer from the Licensor -- Licensed Material. Every
recipient of the Licensed Material automatically
receives an offer from the Licensor to exercise the
Licensed Rights under the terms and conditions of this
Public License.
b. Additional offer from the Licensor -- Adapted Material.
Every recipient of Adapted Material from You
automatically receives an offer from the Licensor to
exercise the Licensed Rights in the Adapted Material
under the conditions of the Adapter's License You apply.
c. No downstream restrictions. You may not offer or impose
any additional or different terms or conditions on, or
apply any Effective Technological Measures to, the
Licensed Material if doing so restricts exercise of the
Licensed Rights by any recipient of the Licensed
Material.
6. No endorsement. Nothing in this Public License constitutes or
may be construed as permission to assert or imply that You
are, or that Your use of the Licensed Material is, connected
with, or sponsored, endorsed, or granted official status by,
the Licensor or others designated to receive attribution as
provided in Section 3(a)(1)(A)(i).
b. Other rights.
1. Moral rights, such as the right of integrity, are not
licensed under this Public License, nor are publicity,
privacy, and/or other similar personality rights; however, to
the extent possible, the Licensor waives and/or agrees not to
assert any such rights held by the Licensor to the limited
extent necessary to allow You to exercise the Licensed
Rights, but not otherwise.
2. Patent and trademark rights are not licensed under this
Public License.
3. To the extent possible, the Licensor waives any right to
collect royalties from You for the exercise of the Licensed
Rights, whether directly or through a collecting society
under any voluntary or waivable statutory or compulsory
licensing scheme. In all other cases the Licensor expressly
reserves any right to collect such royalties.
Section 3 -- License Conditions.
Your exercise of the Licensed Rights is expressly made subject to the
following conditions.
a. Attribution.
1. If You Share the Licensed Material (including in modified
form), You must:
a. retain the following if it is supplied by the Licensor
with the Licensed Material:
i. identification of the creator(s) of the Licensed
Material and any others designated to receive
attribution, in any reasonable manner requested by
the Licensor (including by pseudonym if
designated);
ii. a copyright notice;
iii. a notice that refers to this Public License;
iv. a notice that refers to the disclaimer of
warranties;
v. a URI or hyperlink to the Licensed Material to the
extent reasonably practicable;
b. indicate if You modified the Licensed Material and
retain an indication of any previous modifications; and
c. indicate the Licensed Material is licensed under this
Public License, and include the text of, or the URI or
hyperlink to, this Public License.
2. You may satisfy the conditions in Section 3(a)(1) in any
reasonable manner based on the medium, means, and context in
which You Share the Licensed Material. For example, it may be
reasonable to satisfy the conditions by providing a URI or
hyperlink to a resource that includes the required
information.
3. If requested by the Licensor, You must remove any of the
information required by Section 3(a)(1)(A) to the extent
reasonably practicable.
b. ShareAlike.
In addition to the conditions in Section 3(a), if You Share
Adapted Material You produce, the following conditions also apply.
1. The Adapter's License You apply must be a Creative Commons
license with the same License Elements, this version or
later, or a BY-SA Compatible License.
2. You must include the text of, or the URI or hyperlink to, the
Adapter's License You apply. You may satisfy this condition
in any reasonable manner based on the medium, means, and
context in which You Share Adapted Material.
3. You may not offer or impose any additional or different terms
or conditions on, or apply any Effective Technological
Measures to, Adapted Material that restrict exercise of the
rights granted under the Adapter's License You apply.
Section 4 -- Sui Generis Database Rights.
Where the Licensed Rights include Sui Generis Database Rights that
apply to Your use of the Licensed Material:
a. for the avoidance of doubt, Section 2(a)(1) grants You the right
to extract, reuse, reproduce, and Share all or a substantial
portion of the contents of the database;
b. if You include all or a substantial portion of the database
contents in a database in which You have Sui Generis Database
Rights, then the database in which You have Sui Generis Database
Rights (but not its individual contents) is Adapted Material,
including for purposes of Section 3(b); and
c. You must comply with the conditions in Section 3(a) if You Share
all or a substantial portion of the contents of the database.
For the avoidance of doubt, this Section 4 supplements and does not
replace Your obligations under this Public License where the Licensed
Rights include other Copyright and Similar Rights.
Section 5 -- Disclaimer of Warranties and Limitation of Liability.
a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
c. The disclaimer of warranties and limitation of liability provided
above shall be interpreted in a manner that, to the extent
possible, most closely approximates an absolute disclaimer and
waiver of all liability.
Section 6 -- Term and Termination.
a. This Public License applies for the term of the Copyright and
Similar Rights licensed here. However, if You fail to comply with
this Public License, then Your rights under this Public License
terminate automatically.
b. Where Your right to use the Licensed Material has terminated under
Section 6(a), it reinstates:
1. automatically as of the date the violation is cured, provided
it is cured within 30 days of Your discovery of the
violation; or
2. upon express reinstatement by the Licensor.
For the avoidance of doubt, this Section 6(b) does not affect any
right the Licensor may have to seek remedies for Your violations
of this Public License.
c. For the avoidance of doubt, the Licensor may also offer the
Licensed Material under separate terms or conditions or stop
distributing the Licensed Material at any time; however, doing so
will not terminate this Public License.
d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
License.
Section 7 -- Other Terms and Conditions.
a. The Licensor shall not be bound by any additional or different
terms or conditions communicated by You unless expressly agreed.
b. Any arrangements, understandings, or agreements regarding the
Licensed Material not stated herein are separate from and
independent of the terms and conditions of this Public License.
Section 8 -- Interpretation.
a. For the avoidance of doubt, this Public License does not, and
shall not be interpreted to, reduce, limit, restrict, or impose
conditions on any use of the Licensed Material that could lawfully
be made without permission under this Public License.
b. To the extent possible, if any provision of this Public License is
deemed unenforceable, it shall be automatically reformed to the
minimum extent necessary to make it enforceable. If the provision
cannot be reformed, it shall be severed from this Public License
without affecting the enforceability of the remaining terms and
conditions.
c. No term or condition of this Public License will be waived and no
failure to comply consented to unless expressly agreed to by the
Licensor.
d. Nothing in this Public License constitutes or may be interpreted
as a limitation upon, or waiver of, any privileges and immunities
that apply to the Licensor or You, including from the legal
processes of any jurisdiction or authority.
=======================================================================
Creative Commons is not a party to its public licenses.
Notwithstanding, Creative Commons may elect to apply one of its public
licenses to material it publishes and in those instances will be
considered the “Licensor.” The text of the Creative Commons public
licenses is dedicated to the public domain under the CC0 Public Domain
Dedication. Except for the limited purpose of indicating that material
is shared under a Creative Commons public license or as otherwise
permitted by the Creative Commons policies published at
creativecommons.org/policies, Creative Commons does not authorize the
use of the trademark "Creative Commons" or any other trademark or logo
of Creative Commons without its prior written consent including,
without limitation, in connection with any unauthorized modifications
to any of its public licenses or any other arrangements,
understandings, or agreements concerning use of licensed material. For
the avoidance of doubt, this paragraph does not form part of the public
licenses.
Creative Commons may be contacted at creativecommons.org.

View File

@@ -1,28 +1,42 @@
# A guide to live stream musical performances from home
V1.0 written by [TFLCL.XYZ](http://tflcl.xyz)
### Available online [here](https://tflcl.xyz/MusicalPerformanceStreamingGuide/)
### Contributions are welcome: [github repo](https://github.com/Teufeuleu/StreamingAudioPerformanceGuide)
This guide is intended for people wanting to live stream a musical performance from home. It provides informations for most kind of setups, from purely acoustic performances to more complex cases implying a DAW, an external sound card with connected instruments and mics.
It focuses mainly on audio configuration as it might be the most tricky part depending on your setup, although it also includes walkthroughs for all the steps from installing a streaming software to actually start streaming.
**It focuses mostly on audio configuration** as it seems to be where most people struggle, although it also includes walkthroughs for all the steps from installing a streaming software to actually start streaming.
## Prerequisites
- Knowing what you want to play and the involved equipment
- Basic knowledge about your DAW (how to access its settings, add a plugin, manage tracks inputs and outputs)
- The streaming platform you are going to use (Twitch, Facebook, Youtube...) and a link to its documentation
- A computer running **Windows** or **macOS**[^1]
- A bit of free time to read this guide carefully
We will use [OBS Studio](https://obsproject.com/) as our streaming software but you are not required to know how to use it.
## How to use this guide?
Start by..
Simply follow the parts in the correct order! All parts can always be reached through the navigation side bar on the left.
Then...
Start by part [a super fast introduction to OBS (part 1)](obs.md) that will help you to install OBS and understand its basis.
And voilà.
You will then make OBS work with your camera in part [2. Video configuration](video.md)
Then come the main point of this guide: audio configuration. You will first follow part [3. Which audio setup do I use?](setup/README.md) which will lead you to the proper instructions in part [4. Audio configuration](audio/README.md) corresponding to your case.
You will then have to configure OBS to make it [stream to your favorite platform (part 5)](streaming.md)
There is also a [Troubleshooting](troubleshooting.md) part that should help you to solve most encountered problems.
## Why I wrote this guide?
It began during the COVID-19 lockdown. During this period we saw many initiatives (online festivals, groups, personal projects) aiming to live stream artists and musicians performing from their home.
I got somehow involved in some of these projects and saw the lack of information regarding the audio configuration, which can differ A LOT depending on the musical project itself. So I tried to find a solution for most cases and sorting everything properly allowing people to find which case fit their needs and how to do it.
I got somehow involved in some of these projects (especially the [Sottkvi festival](https://www.facebook.com/sottkvifestival/))and saw the lack of information regarding the audio configuration, which can differ A LOT depending on the musical project itself. So I tried to find a solution for most cases and sorting everything properly allowing people to find which case fit their needs and how to do it.
---
[^1]Sorry dear Linux user, I have no specific instructions for you, but you might still find this guide useful!
[^1]Sorry dear Linux user, I have no specific instructions for you, but you might still find this guide useful! Solution logics are the same but you will have to find compatible alternative softwares by yourself. Have a look at [Jack Audio](https://jackaudio.org/) or [Pulse Audio](https://www.freedesktop.org/wiki/Software/PulseAudio/).

View File

@@ -1,12 +1,12 @@
# Summary
* [Introduction](README.md)
* [1. Which audio setup do I use?](setup/README.md)
* [1. A super fast introduction to OBS](obs.md)
* [2. Video configuration](video.md)
* [3. Which audio setup do I use?](setup/README.md)
* [Acoustic/mic-captured performance](setup/dawless.md)
* [DAW without external audio interface](setup/daw.md)
* [DAW with an external audio interface](setup/dawinterface.md)
* [2. A super fast introduction to OBS](obs.md)
* [3. Video configuration](video.md)
* [4. Audio configuration](audio/README.md)
* [Case 1: OBS + Mic/Aux Source](audio/micaux.md)
* [Case 2: OBS + Desktop Audio Source](audio/desktopaudio.md)
@@ -14,3 +14,10 @@
* [Case 4: OBS + OBS-ASIO (Windows only)](audio/obsasio.md)
* [Case 5: OBS + OBS-ASIO + ASIO mixer (Windows only)](audio/asiomixer.md)
* [Case 6: OBS + BlackHole (macOS only)](audio/blackhole.md)
* [5. Streaming configuration](streaming.md)
* [Testing your internet connection](streaming.md#testing-your-internet-connection)
* [Choosing a video bitrate](streaming.md#wtf-is-a-bitrate-and-how-do-i-choose-one-)
* [Troubleshooting](troubleshooting.md)
* [OBS dropping frames](troubleshooting.md#troubleshooting-obs-dropping-frames)
* [Audio and video not in sync](troubleshooting.md#troubleshooting-audio-and-video-not-in-sync-in-obs)
* [Audio crackles and latency](troubleshooting.md#troubleshooting-audio-crackles-and-latency-issue)

View File

@@ -1,6 +1,6 @@
# 4. Audio configuration
**Please read carefully [1. Which audio setup do I use?](./setup/README.md) to know which of the following case(s) will match your setup.**
**Please read carefully [3. Which audio setup do I use?](../setup/README.md) to know which of the following case(s) will match your setup.**
- [Case 1: OBS + Mic/Aux source](micaux.md)
- [Case 2: OBS + Desktop Audio Source](desktopaudio.md)

View File

@@ -7,6 +7,7 @@ This is by far the hardest case of all, but also the most documented online. I h
- [VoiceMeeter Banana](https://download.vb-audio.com/Download_CABLE/VoicemeeterProSetup.exe) (free) is maybe the most user friendly and most documented solution.
- [Asio Link Pro](https://give.academy/posts/2018/03/02/AsioLinkPro/) (free) should be the most powerful and flexible solution, bu also the hardest to set up (thanks to a 20 years old GUI). [For the record](https://give.academy/posts/2018/03/02/AsioLinkPro/), it's an old piece of software which you had to pay for. The developer passed away a few years ago so nobody could buy it anymore. In 2019 his nephew decided to create a "legit" crack allowing anyone to use Asio Link Pro for free.
- [Jack Audio](https://jackaudio.org/downloads/) should be actually simpler to configure even though it does not provide a GUI (graphical user interface). All is done with command lines, but you need very few to get your setup working properly.
- [Jack Audio](https://jackaudio.org/downloads/) (free, open source) should be actually simpler to configure even though it does not provide a GUI (graphical user interface). All is done with command lines, but you need very few to get your setup working properly.
- [Synchronous Audio Router](http://sar.audio/) (free, open source) might be another solution.
If all these solutions seem too hard to get through, just go with Case 3.
If all these solutions seem too hard to get through, just go with [Case 3](reastream.md).

View File

@@ -9,7 +9,7 @@ BlackHole is the new "virtual audio device for macOS" replacement for SoundFlowe
2. Then open "Audio Midi Setup" app located in Applications/Utility. Once opened, click "Window" in the menu bar, then "Show audio devices".
3. Click the "+" in the bottom left, then "Add a multi-output device"
3. Click the in the bottom left, then "Add a multi-output device"
4. Click on the multi-output device you just created, then, depending on your case:
- If you uses no external sound card, tick the "Use" box for **each** of the following devices:
@@ -22,4 +22,4 @@ BlackHole is the new "virtual audio device for macOS" replacement for SoundFlowe
5. In your audio software, select the Multi-output device you just created as your audio output.
6. In OBS, open the Preferences/Settings, panel, go to the Audio tab, and select BlackHole as your Desktop Audio device. Click OK.
7. You should then see the corresponding VU-meter in the Audio mixer reacting to the audio sent by your audio software. You're done! Ready for part 3.
7. You should then see the corresponding VU-meter in the Audio mixer reacting to the audio sent by your audio software. You're done! Ready for part [5. Streaming configuration](../streaming.md).

View File

@@ -3,6 +3,8 @@
You are into Case 2 if:
> You use Windows with an audio software and MME/DirectX drivers, with or without external sound card.
---
It is as simple as case 1 but with a little variation.
1. Open your audio software, make it play some sounds, and remember the audio output it's using
@@ -13,4 +15,4 @@ It is as simple as case 1 but with a little variation.
4. Click OK then in the OBS audio mixer you should see the VU-meter of the "Desktop Audio" source moving relatively to the sound your audio software is outputting. Sometimes it seems a big buggy and you need to click the gear ⚙️ of the Desktop Audio source, click Properties, then re-select the same output you just selected in the previous step. You can also try restarting OBS (don't worry, it will automatically save your session).
5. Awesome, you are now ready to go to part 3!
5. Awesome, you are now ready to go to part [5. Streaming configuration](../streaming.md)!

View File

@@ -14,17 +14,19 @@ You are into Case 1 if:
> - a secondary external sound card with MME/DirectX drivers as a looback input, or
> - an external sound card with ASIO drivers and you loop your audio back into your built-in computer line-input.
---
If your whole audio come from a microphone, it may be already
automatically selected as Mic/Aux source in the audio mixer.
automatically selected as Mic/Aux source in the Audio Mixer.
If not, you should be able to select it or any appropriate (non ASIO)
audio input into OBS Preferences \> "Audio" tab \> "Mic/auxiliary Audio"
audio input into the OBS Settings panel, "Audio" tab, "Mic/auxiliary Audio" device.
drop-down list.
You can also click the gear near-by the Mic/Aux source in the Audio
Mixer, then click properties and select your correct or audio input in
You can also click the gear ⚙️ near-by the Mic/Aux source in the Audio
Mixer, then click Properties and select your correct or audio input in
the "Device" drop-down list.
You should then see the Mix/Aux VU-meter reacting to the captured audio.
If so your audio is properly configured, good! You are now ready for
part 3.
part [5. Streaming configuration](../streaming.md).

View File

@@ -11,7 +11,7 @@ You are in case 4 if:
4. Re-open OBS.
5. Click the "+" in the Sources window, and select "ASIO" to create a new ASIO source. Give it the name you want and click OK.
5. Click the in the Sources window, and select "ASIO" to create a new ASIO source. Give it the name you want and click OK.
6. In the appearing window, choose your ASIO device:
- If you use an external sound card with a built-in loopback feature or if you physically hard-wired an audio input of your external sound car back into one of its inputs, then choose this external sound cards driver
@@ -20,4 +20,4 @@ You are in case 4 if:
7. Choose "Stereo" in the Format field
8. In OBS Channels 1 and 2 (stands for left and right channels), select the appropriate ASIO inputs you looped your audio back into.
9. Click OK then in the OBS Audio Mixer you should see the VU-meter of the created ASIO source moving relatively to the sound your audio software is outputting. If so, you are good to go to part 3!
9. Click OK then in the OBS Audio Mixer you should see the VU-meter of the created ASIO source moving relatively to the sound your audio software is outputting. If so, you are good to go to part [5. Streaming configuration](../streaming.md)!

View File

@@ -3,42 +3,46 @@
You are into Case 3 if:
> You use Windows with an audio software and ASIO drivers, with or without external sound card.
This case work for any kind of ASIO driver, regardless the use of an external sound card or not.
This case work for any kind of ASIO driver, regardless the use of an external sound card or not. It can actually work also with any other kind of driver (MME/DirectX/WASAPI) but you should rather refer to [Case 2: OBS + Desktop Audio Source](desktopaudio.md) if you use one of those.
1. ReaStream is included in a suite of free plugins called ReaPlugs VST FX Suite you can download [here](https://www.reaper.fm/reaplugs/). Choose the 32bit or 64bit version depending on your audio software (Ableton Live 10 is 64bit only, other might depend).
---
2. Run the installer. In the "Choose Components" screen, you only need ReaStream (stereo) but you can select other plugins if you want to try them.
The following instructions are based on ReaStream, a VST plugin made to send audio and midi in real time over a local network. Here we will use it on a same comuter as a bridge between your DAW and OBS.
3. In the "Destination Folder", make sure you are using one of the [following](https://github.com/obsproject/obs-studio/wiki/Filters-Guide#vst-plugin) (see list below), otherwise the VST wont be available in OBS. Click Install and you're done. If you usually use a custom folder for your VSTs, just re-install ReaStream to your custom folder once you got it installed in one recognized by OBS:
- C:/Program Files/Steinberg/VstPlugins/
- C:/Program Files/Common Files/Steinberg/Shared Components/
- C:/Program Files/Common Files/VST2
- C:/Program Files/Common Files/VSTPlugins/
- C:/Program Files/VSTPlugins/
1. ReaStream is included in a suite of free plugins called ReaPlugs VST FX Suite you can download [here](https://www.reaper.fm/reaplugs/). Choose the 32bit or 64bit version depending on your audio software (Ableton Live 10 is 64bit only, other might depend).
4. Open your audio software and add the "reastream-standalone" VST plugin on your master track. You should see a firewall alert saying that the plugin want to access your network. Just allow it on both private and public networks, just in case, and click OK. Now on the plug-ins interface, select "Send audio/MIDI" then choose/type "\*local broadcast" (without quotation marks) in the IP field.
2. Run the installer. In the "Choose Components" screen, you only need ReaStream (stereo) but you can select other plugins if you want to try them.
5. Open OBS, click the "+" in the Sources window and select "Audio **input** capture". Give it any name you want, and click OK.
3. In the "Destination Folder", make sure you are using one of the [following](https://github.com/obsproject/obs-studio/wiki/Filters-Guide#vst-plugin) (see list below), otherwise the VST wont be available in OBS. Click Install and you're done. If you usually use a custom folder for your VSTs, just re-install ReaStream to your custom folder once you got it installed in one recognized by OBS:
- C:/Program Files/Steinberg/VstPlugins/
- C:/Program Files/Common Files/Steinberg/Shared Components/
- C:/Program Files/Common Files/VST2
- C:/Program Files/Common Files/VSTPlugins/
- C:/Program Files/VSTPlugins/
6. As Device, choose an audio input you are NOT using. We actually don't care of the audio input itself, as we want the audio coming from the VST we will add in the next steps. So just use an unused audio input. If you can only select some used inputs (such as your default microphone), then is is still OK, we will figure it out later. Click OK.
4. Open your audio software and add the **reastream-standalone** VST plugin on your master track. You should see a firewall alert saying that the plugin want to access your network. Just allow it on both private and public networks, just in case, and click OK. Now on the plug-ins interface, select "Send audio/MIDI" then choose/type `\*local broadcast` (without quotation marks) in the IP field.
7. Now right click on your newly created audio input capture source, and select "Filters".
5. Open OBS, click the in the Sources window and select "Audio **input** capture". Give it any name you want, and click OK.
8. If you had no unused audio input available, you want to turn down the volume of your used audio input without turning down the volume of the OBS audio source itself. To do so, add two "Gain" Filters and set them to -30dB.
6. As Device, choose an audio input you are NOT using. We actually don't care of the audio input itself, as we want the audio coming from the VST we will add in the next steps. So just use an unused audio input. If you can only select some used inputs (such as your default microphone), then is is still OK, we will figure it out later. Click OK.
9. Ad a new audio filter by clicking the +, and select "VST 2.x Plug-in". Give it the name you want and click OK.
7. Now right click on your newly created audio input capture source, and select "Filters".
10. In the VST 2.x Plug-in drop-down list, select "reastream-standalone", then click "Open Plug-in Interface". Windows should prompt you again the firewall security message. Just allow everything one more time.
8. If you had no unused audio input available, you want to turn down the volume of your used audio input without turning down the volume of the OBS audio source itself. To do so, add two "Gain" Filters and set them to -30dB.
11. Make sure the Identifier is the same as the one you set in Ableton ("default" by default), and you're done.
9. Ad a new audio filter by clicking the +, and select "VST 2.x Plug-in". Give it the name you want and click OK.
12. Now if you play some sound in your audio software you should get it into your OBS audio input capture device. If so, you're good to go to part 3. If not, see below for some troubleshooting.
10. In the VST 2.x Plug-in drop-down list, select "reastream-standalone", then click "Open Plug-in Interface". Windows should prompt you again the firewall security message. Just allow everything one more time.
What to do if ReaStream in OBS do not receive sound from my audio software?
11. Make sure the Identifier is the same as the one you set in Ableton ("default" by default), and you're done.
- Make sure you are using the same sample rate (44.1Khz or 48KHz) in your audio software and OBS (Settings \> Audio tab)
- Right click the Audio input capture, open "Properties" then select another input device. For some reasons, it might not work with some devices (especially the "Default" one).
- In ReaStream in your audio software, replace "\* local broadcast" by "127.0.0.1". It is a special IP address saying "this very own computer".
- Try changing to another identifier in both OBS and your audio software. Sometimes, just clicking in the Identifier field and hitting "Enter" can re-instanciate the plugin an make it work.
12. Now if you play some sound in your audio software you should get it into your OBS audio input capture device. If so, you're good to go to part [5. Streaming configuration](../streaming.md). If not, see below for some troubleshooting.
What to do you it seem like there is some latency between the received audio in OBS and the captured video? Just check the "**delay between your video and audio**" point in the "Troubleshooting audio issues" part below.
## What to do if ReaStream in OBS does not receive sound from my audio software?
- Make sure you are using the same sample rate (44.1Khz or 48KHz) in your audio software and OBS (Settings \> Audio tab)
- Right click the Audio input capture, open "Properties" then select another input device. For some reasons, it might not work with some devices (especially the "Default" one).
- In ReaStream in your audio software, replace `* local broadcast` by `127.0.0.1`. It is a special IP address saying "this very own computer".
- Try changing to another identifier in both OBS and your audio software. Sometimes, just clicking in the Identifier field and hitting "Enter" can re-instanciate the plugin an make it work.
What to do you it seem like there is some latency between the received audio in OBS and the captured video? Just check the related [troubleshooting part](troubleshooting.md#troubleshooting-audio-and-video-not-in-sync-in-obs) of this guide.

3
book.json Normal file
View File

@@ -0,0 +1,3 @@
{
"plugins": ["katex"]
}

3
obs.md
View File

@@ -1,5 +1,8 @@
# A super fast introduction to OBS
**Note:** If you are already familiar with OBS, feel free to skip the next two parts and go straight to part [3. Which audio setup du I use?](setup/README.md).
---
1. Start by downloading OBS Studio from [here](https://obsproject.com/download), then install it.

18
package.json Normal file
View File

@@ -0,0 +1,18 @@
{
"name": "A guide to live stream musical performances from home",
"version": "1.0.0",
"description": "This guide is intended for people wanting to live stream a musical performance from home. It provides informations for most kind of setups, from purely acoustic performances to more complex cases implying a DAW, an external sound card with connected instruments and mics.",
"main": "index.js",
"dependencies": {
"gitbook": "^6.14.2",
"gitbook-plugin-katex": "^1.1.4",
"katex": "^0.11.1",
"match-at": "^0.1.1"
},
"repository": {
"type": "git",
"url": "https://git.tflcl.xyz/tfl/StreamingAudioPerformance.git"
},
"author": "Théophile Clet",
"license": "cc-by-sa-4.0"
}

View File

@@ -1,7 +1,9 @@
# Which audio setup do I use?
# 3. Which audio setup do I use?
First you need to determine the kind of audio setup you are using. This will lead you to the appropriate instructions to prepare your live stream:
First you need to determine the kind of audio setup you are using:
- [My performance is purely acoustic and/or I just need one mic to capture it](dawless.md)
- [My performance requires an audio software but no external sound card](daw.md)
- [My performance requires an audio software and an external sound card](dawinterface.md)
This will lead you to the [appropriate instructions](../audio/README.md) to prepare the audio part of your live stream.

View File

@@ -1,14 +1,14 @@
# My performance requires an audio software but no external sound card
You will need [**OBS**](https://obsproject.com/download), and its configuration is quite straightforward in most cases:
Choose the case corresponding to your situation:
- macOS user: refer to **Case 6: OBS + BlackHole (macOS only)** in part 2 / Using a computer (OBS) / Audio setup
- **macOS users**: refer to [Case 6: OBS + BlackHole (macOS only)](../audio/blackhole.md).
- Windows user:
- **Windows users**:
- If you use default MME/DirectX drivers, refer to **Case 2: OBS + Desktop Audio source**
- If you use default **MME/DirectX drivers**, refer to [Case 2: OBS + Desktop Audio Source](../audio/desktopaudio.md)
- If you use ASIO drivers (such as [ASIO4ALL](http://www.asio4all.org/), [FL Studio ASIO](https://www.image-line.com/support/flstudio_online_manual/html/envsettings_audio.htm#FLStudioASIO) installed along with [FL Studio](https://www.image-line.com/downloads/flstudiodownload.html) but compatible with any audio software, or [ReaRoute](https://www.soundonsound.com/techniques/route-master) with [Reaper](https://www.reaper.fm/)), you have two solutions:
- If you use **ASIO drivers** (such as [ASIO4ALL](http://www.asio4all.org/), [FL Studio ASIO](https://www.image-line.com/support/flstudio_online_manual/html/envsettings_audio.htm#FLStudioASIO) installed along with [FL Studio](https://www.image-line.com/downloads/flstudiodownload.html) but compatible with any audio software, or [ReaRoute](https://www.soundonsound.com/techniques/route-master) with [Reaper](https://www.reaper.fm/)), you have two solutions:
- The ReaStream VST plugin solution might be the simplest one as you keep your audio software configured as usual with your favorite ASIO drivers. Refer to **Case 3: OBS + ReaStream VST (Windows only)** in part 2 / Using a computer (OBS) / Audio setup
- You can also choose to keep your audio in an ASIO context using an additional ASIO mixer such as [VoiceMeeter Banana](https://www.vb-audio.com/Voicemeeter/banana.htm), [Asio Link Pro](https://discuss.cakewalk.com/index.php?/topic/3519-odeus-asio-link-now-available-free/) or [Jack Audio](https://jackaudio.org/downloads/) (all free). This is the most tricky way to go and can be hard to configure properly to get less latency than with MME/DirectX drivers or ReaStream. Because latency is why you use ASIO drivers I guess. You can refer to **Case 5: OBS + OBS-ASIO + ASIO mixer** in part 2 / Using a computer (OBS) / Audio setup if you want to give it a try, and go back to **Case 3** (ReaStream) if you are unsuccessful.
- The **ReaStream VST plugin** solution might be the simplest one as you keep your audio software configured as usual with your favorite ASIO drivers. Refer to [Case 3: OBS + ReaStream VST (Windows only)](../audio/reastream.md).
- You can also choose to keep your audio in an ASIO context using an additional **ASIO mixer** such as [VoiceMeeter Banana](https://www.vb-audio.com/Voicemeeter/banana.htm), [Asio Link Pro](https://discuss.cakewalk.com/index.php?/topic/3519-odeus-asio-link-now-available-free/) or [Jack Audio](https://jackaudio.org/downloads/) (all free). This is the most tricky way to go and can be hard to configure properly to get less latency than with MME/DirectX drivers or ReaStream. Because latency is why you use ASIO drivers I guess. You can refer to [Case 5: OBS + OBS-ASIO + ASIO mixer (Windows only)](../audio/asiomixer.md) if you want to give it a try, and go back to [Case 3](../audio/reastream.md) if you are unsuccessful.

View File

@@ -1,40 +1,40 @@
# My performance requires an audio software and an external sound card
This might be the case for most of you. The idea is quite simple: we want to turn your main audio software output into an audio input in OBS. You can do that virtually, using your external sound card software (only for compatible models/drivers) or a 3^rd^ party virtual audio device, or you can do it physically, by wiring one of your external sound card's output to a physical audio input. Here are some details for all of these ways, each leading you to the **appropriate case shown in part 2 / Using a computer (OBS) / Audio setup**.
This might be the case for most of you. The idea is quite simple: we want to turn your main audio software output into an audio input in OBS. You can do that virtually, using your external sound card software (only for compatible models/drivers) or a 3<sup>rd</sup> party virtual audio device, or you can do it physically, by wiring one of your external sound card's output to a physical audio input. Here are some details for all of these ways, each leading you to the **appropriate [audio configuration](../audio/README.md)**.
A virtual loopback might be preferred as it does not need extra piece of hardware, but depending on your case a hard-wired loopback can eventually be easier to achieve. Choose the option you feel the most comfortable with.
## Virtual loopback
- Your sound card supports multi-initialization from multiple applications, and has a built-in **loopback feature**. It is the case of all 3^rd^ gen Focusrite Scarlett, 1^st^ gen 8i6 Focusrite Scarlett, most RME interfaces (using TotalMix), some Motu interfaces (using CueMix), the Roland Quad Capture, the Behringuer XR18, and some other devices I'm not aware of. This should be the best way to go as it is quite simple to configure and should add little to no additional latency. The loopback feature (generally accessible from your external sound card's mixer software) will allow you to route your audio output back into one of its (either virtual or physical) audio inputs. You can then easily select this input in OBS. First refer to your external sound cards owner manual to see how to use the loopack feature. Then, depending on your OS:
- Your sound card supports multi-initialization from multiple applications, and has a built-in **loopback feature**. It is the case of all 3<sup>rd</sup> gen Focusrite Scarlett, 1<sup>st</sup> gen 8i6 Focusrite Scarlett, most RME interfaces (using TotalMix), some Motu interfaces (using CueMix), the Roland Quad Capture, the Behringuer XR18, and some other devices I'm not aware of. This should be the best way to go as it is quite simple to configure and should add little to no additional latency. The loopback feature (generally accessible from your external sound card's mixer software) will allow you to route your audio output back into one of its (either virtual or physical) audio inputs. You can then easily select this input in OBS. First refer to your external sound cards owner manual to see how to use the loopack feature. Then, depending on your OS:
- macOS user: refer to **Case 1: OBS + Mic/Aux source**
- Windows: refer to **Case 4: OBS + OBS-ASIO** if your external sound card uses ASIO drivers, or **Case 1: OBS + Mic/Aux source** otherwise.
- **macOS user**: refer to [Case 1: OBS + Mic/Aux source](../audio/micaux.md).
- **Windows users**: refer to [Case 4: OBS + OBS-ASIO (Windows only)](../audio/obsasio.md) if your external sound card uses ASIO drivers, or [Case 1: OBS + Mic/Aux source](../audio/micaux.md) otherwise.
- Whichever the external sound card you use, you can still create a virtual loopback using additional softwares (but it can increase your audio latency):
- Whichever the external sound card you use, you can still create a virtual loopback using **additional softwares** (but it can increase your audio latency):
- macOS users: refer to **Case 6: OBS + BlackHole (macOS only)**
- **macOS users**: refer to [Case 6: OBS + BlackHole (macOS only)](../audio/blackhole.md)
- Windows users:
- **Windows users**:
- The ReaStream VST plugin solution might be the simplest one as it should work for any case and it allow you to keep your audio software configured as usual with your favorite sound card drivers (ASIO or other). Refer to **Case 3: OBS + ReaStream VST (Windows only)**
- If your external sound card uses MME/Direct drivers, you should be able to catch its output directly by selecting it as a "Desktop Audio" source in OBS. Refer to **Case 2: OBS + Desktop Audio source**
- If your external sound card uses ASIO drivers, you can try to use an additional ASIO mixer such as [VoiceMeeter Banana](https://www.vb-audio.com/Voicemeeter/banana.htm), [Asio Link Pro](https://discuss.cakewalk.com/index.php?/topic/3519-odeus-asio-link-now-available-free/) or [Jack Audio](https://jackaudio.org/downloads/) (all free). This is the most tricky way to go and can be hard to configure properly to get less latency than with MME/DirectX drivers or ReaStream. Complexity goes even higher if you need your external sound card to output/input audio to/from external audio effects, synths, mics involved in your performance... You can refer to **Case 5: OBS + OBS-ASIO + ASIO mixer** if you want to give it a try, and go back to **Case 3** (ReaStream) if you are unsuccessful.
- The **ReaStream VST** plugin solution might be the simplest one as it should work for any case and it allow you to keep your audio software configured as usual with your favorite sound card drivers (ASIO or other). Refer to [Case 3: OBS + ReaStream VST (Windows only)](../audio/reastream.md).
- If your external sound card uses **MME/Direct drivers**, you should be able to catch its output directly by selecting it as a "Desktop Audio" source in OBS. Refer to [Case 2: OBS + Desktop Audio Source](../audio/desktopaudio.md)
- If your external sound card uses **ASIO drivers**, you can try to use an additional ASIO mixer such as [VoiceMeeter Banana](https://www.vb-audio.com/Voicemeeter/banana.htm), [Asio Link Pro](https://discuss.cakewalk.com/index.php?/topic/3519-odeus-asio-link-now-available-free/) or [Jack Audio](https://jackaudio.org/downloads/) (all free). This is the most tricky way to go and can be hard to configure properly to get less latency than with MME/DirectX drivers or ReaStream. Complexity goes even higher if you need your external sound card to output/input audio to/from external audio effects, synths, mics involved in your performance... You can refer to [Case 5: OBS + OBS-ASIO + ASIO mixer (Windows only)](../audio/asiomixer.md) if you want to give it a try, and go back to [Case 3](../audio/reastream.md) if you are unsuccessful.
## Physical (hard-wired) loopback
- Your sound card does not provide a built-in loopback feature, but you have **two unused audio outputs** (or one stereo output) and possibly two unused audio inputs on your audio interface (can be an SPDIF in and out -- SPDIF is better for quality as the signal stays digital -- or two balanced jack/XLR outputs and two line inputs). If so, you can "manually" create a loopback with real cables from real life, by plugging your available output into your available input. The input can either be one of your external sound cards inputs, your computer built-in line mini-jack input (although not advised for quality reasons) or even a secondary external sound card (see next point). Notice that using an input from your only external sound card should only work if this sound card supports multiple initialization from multiple applications. As this feature is very rarely made explicit by sound card manufacturers, just try and see if it works. To proceed, in your audio software, find a way to double the output of your master (using a bus or return track, or an "External audio effect" in Ableton Live) so it can be sent to both your usual master/monitoring audio output, and the extra audio output available on your sound card. Then wire the selected secondary output back into an available input. Then:
- For macOS users, refer to **Case 1: OBS + Mic/Aux source**
- For **macOS users**, refer to [Case 1: OBS + Mic/Aux source](../audio/micaux.md)
- For Windows users:
- For **Windows users**:
- If you loop your audio back into your computer built-in line-input, refer to **Case 1: OBS + Mic/Aux source**
- If you use an available input on your external sound card, refer to **Case 4: OBS + OBS-ASIO** if your external sound card uses ASIO drivers, or **Case 1: OBS + Mic/Aux source** otherwise
- If you **loop your audio back into your computer built-in line-input**, refer to [Case 1: OBS + Mic/Aux source](../audio/micaux.md)
- If you use an **available input on your external sound card**, refer to [Case 4: OBS + OBS-ASIO (Windows only)](../audio/obsasio.md) if your external sound card uses ASIO drivers, or [Case 1: OBS + Mic/Aux source](../audio/micaux.md) otherwise
- You have **two external sound cards**, so you can use one with your audio software and the other one as an input for OBS. Your case is then similar to the previous one. You need to wire one of your main sound card output to the secondary audio interface input, then select this input in OBS. To do so:
- For macOS users, refer to **Case 1: OBS + Mic/Aux source**
- For Windows users: refer to **Case 4: OBS + OBS-ASIO** if your secondary external sound card uses ASIO drivers, or **Case 1: OBS + Mic/Aux source** otherwise
- For macOS users, refer to [Case 1: OBS + Mic/Aux source](../audio/micaux.md)
- For Windows users: refer to [Case 4: OBS + OBS-ASIO (Windows only)](../audio/obsasio.md) if your secondary external sound card uses ASIO drivers, or [Case 1: OBS + Mic/Aux source](../audio/micaux.md) otherwise

View File

@@ -1,17 +1,18 @@
#My performance is purely acoustic and/or I just need one mic to capture it
Using your **computer with [OBS](https://obsproject.com/download)**, a free and open-source software available for Windows macOS and Linux. This is the way to go you you have a microphone that requires to be connected to your computer. It can be the built-in microphone of your webcam, an external microphone you plug into the mic in, or a USB microphone, or even an XLR microphone connected to your external sound card.
If you don't necessary need a computer for your performance, you might consider streaming from a smartphone as it is very simple to set up. Just download the app corresponding to your streaming platform, do what they tell you to do and you should be good.
If you need to stream to a custom RTMP server, you can use Larix Broadcaster because it's free, simple to use, and available for [iOS](https://apps.apple.com/us/app/larix-broadcaster/id1042474385) and [Android](https://play.google.com/store/apps/details?id=com.wmspanel.larix_broadcaster&hl=en). If you don't have a proper microphone, many phones these days still have a decent quality, sometime even in stereo, so why not!
You may prefer to use a computer if you don't have a smartphone, or if you use a webcam with it's built-in mic, a USB microphone, a mini-jack microphone or an XLR microphone you nee to plug into your external audio interface. We assume here that you do not need a DAW. Choose the case corresponding to your situation:
- If you use the **built-in mic of your computer** or your **webcam**, the
**build-in mic input** of your computer or an **USB microphone**, refer
to [Case 1: OBS + Mic/Aux source]()
to [Case 1: OBS + Mic/Aux source](../audio/micaux.md).
- If you have to **plug your microphone into your external audio interface**:
- **macOS user**: refer to [Case 1: OBS + Mic/Aux source]()
- **macOS user**: refer to [Case 1: OBS + Mic/Aux source](../audio/micaux.md).
- **Windows user**:
- External sound card with **MME/DirectX drivers**: [Case 2:
OBS + Desktop Audio source]
- External sound card with **ASIO drivers**: [Case 4: OBS +
OBS-ASIO]()
- External sound card with **MME/DirectX drivers**: [Case 2: OBS + Desktop Audio Source](../audio/desktopaudio.md)
- External sound card with **ASIO drivers**: [Case 4: OBS + OBS-ASIO (Windows only)](../audio/obsasio.md)

54
streaming.md Normal file
View File

@@ -0,0 +1,54 @@
# 5. Streaming configuration
## Testing your internet connection
First of all, you need to know how good is your internet connection, to know if it is suitable or not for video live streaming. You have to make sure it is **fast** enough **stable** enough.
To know if it is fast enough, you can test it using [Speedtest](https://www.speedtest.net/) on the computer or smartphone you will use for your stream. Mind that for the best results, you should close all your opened websites, disconnect all your devices but the one you will test the connection with, and use a wired (LAN/ethernet) connection when possible.
Here we're interested in your **upload speed**, so the amount of data your device can send to the internet every seconds. In many cases it is much slower than the download speed (and people generally just remember their download speed) so it's important to test it.
In order to live stream audio an video at a decent quality, the bare minimum required upload speed is about **2Mbps**. It can still work below but in low quality and with possible drop outs. Also, be careful: a fast connection does NOT mean a stable connection.
If your connection sometimes randomly drops off, or get super slow for a few minutes or this kind of problem, that would mean that your internet connection may not be stable enough for a live stream and you should consider pre-record your performance, and make the resulting video streamed from another computer or video platform, which is out of the scope of this guide. I found now way of testing stability easily other than your personal experience, so it's really up to you.
## WTF is a bitrate and how do I choose one ?
The other critical part here is the **video bitrate** of your stream. A bitrate is the amount of data a stream needs for each second. The higher the bitrate is, the better the stream's quality is supposed to be, but the higher your internet connection speed need to be. If you dont want to go further in explanation, just remember to use a video bitrate of **850Kbps**. It's quite low in term of quality but it should be okay for most internet connection.
Now let's get a bit more technical. Remind your upload speed [you just tested](#testing-your-internet-connection). If your internet connection upload speed is 2Mbps, you should be able to stream with a maximum bitrate of 2Mbps (including both video and sound). But for security reasons, and because both an internet connection and a video bitrate are never perfectly stable, we will limit our bitrate to the half of your upload speed. So if your measured upload speed was 2Mbps, your total stream bitrate should not exceed 1Mbs including both video and audio.
As we want to keep the best possible audio quality, we will stay with a 160Kbps audio bitrate. The rest can be used for the video. So in our example of a maximum 1Mbps (=1000Kbps) stream bitrate, we have 1000-160=840Kbps available for the video bitrate. about the same 850Kbps value I gave earlier.
Let's write a global formula to calculate a safe video bitrate:
$$\Large {\text{Video bitrate} = {\text{Measured upload speed} \over 2} - \text{audio bitrate}}$$
with "audio bitrate" = 160Kbps for a better audio quality.
**Please don't use a video bitrate above 4000Kbps** even if your internet connection can handle it! There will be no real benefits in term of quality for a video stream of 1280x720 at 30 fps, so a higher bitrate basically means waisted bandwidth and energy. You can have further precisions about which bitrate to choose on [this page](https://support.video.ibm.com/hc/en-us/articles/207852117-Internet-connection-and-recommended-encoding-settings).
## Configuring OBS
1. Open OBS, then go to Settings panel, and set the configuration as follow:
1. In the Stream tab,:
- Service: select the streaming platform of your choice.
- Other settings: please refer to your platforms documentation or some online tutorials. Generally speaking, the streaming platform will give you a unique link you have to copy in OBS, as well as entering your platforms credentials.
- Output tab:
- Video bitrate: set the calculated bitrate as seen [above](#wtf-is-a-bitrate-and-how-do-i-choose-one-). If you don't know what to use, set it to 850Kpbs.
- Encoder: if available, choose "Hardware" (might need an Nvidia graphic card). Otherwise choose "Software (x264)"
- Audio Bitrate: 160 (we always want the best quality here)
- Video tab
- Output (Scaled) Resolution: **1280x720** (OK for most people)
- Downscale filter: Bicubic
- Common FPS Value: 30fps
2. Hit OK to save your preferences.
3. Check one last time in the audio mixer if your audio is working, then start streaming!
4. To monitor how your stream is going, refer to the bottom bar, showing the number of dropped frames and a colored square indicating the connections status. Your amount of dropped frames should be near 0%. If it is not the case, then you might have some internet connection issues or your computer is too slow. See the [Troubleshooting](troubleshooting.md) part for some advices.

60
troubleshooting.md Normal file
View File

@@ -0,0 +1,60 @@
# Troubleshooting
This page consists in a list of advices to solve most problems, split in three categories:
- [Troubleshooting OBS dropping frames](troubleshooting.md#troubleshooting-obs-dropping-frames)
- [Troubleshooting audio and video not in sync in OBS](troubleshooting.md#troubleshooting-audio-and-video-not-in-sync-in-obs)
- [Troubleshooting audio crackles and latency issue](troubleshooting.md#troubleshooting-audio-crackles-and-latency-issue)
---
## Troubleshooting OBS dropping frames
- If you're using an audio software and that your sound is NOT crackling, then your dropped frames should come from an internet connection issue. You want to improve your internet connection and/or lower the bitrate of your stream:
- Prefer a LAN (wired) connection rather than WIFI when using a computer
- Lower the video bitrate of your stream
- If you hear crackling while dropping frames, then your computer might not be powerful enough. You want to lower the CPU usage:
- Close/kill all ongoing useless applications/process during the performance (web browser, Steam...).
- In OBS Settings panel, go in the Video tab and set the Downscale Filter to `Bilinear`
- In OBS Settings panel, go in the Output tab, tick "Enable Advanced Encoder Settings" and choose a faster "Encoder preset". Depending on your computer hardware, presets can be named from slower to faster or from quality to performance. Both mean the same: choosing a faster or more performant encoding preset will result in a lower video quality but in more available CPU resources
- You want to make OBS and your audio software use less CPU ([see Troubleshooting audio crackles and latency issue]()).
- See [this page](https://obsproject.com/wiki/Dropped-Frames-and-General-Connection-Issues) for more informations
## Troubleshooting audio and video not in sync in OBS
After a few minutes of streaming, you might notice a slight **delay between the video and the audio** in OBS. I noticed that sometimes, even if you see a delay between your VU-meter or monitored audio and your camera in OBS, your stream is still correctly synchronized. To be sure of that, just connect to your own stream using VLC or a web browser.
If you are experiencing a true delay between your video and audio in OBS, there are a few things you can do. Latency can be frequent especially if you use your smartphone as an external webcam for OBS. It can also happen many other cases for many different reasons.
- Be sure that you are using the same audio sample rate (48KHz or 44.1KHz) in every involved software/hardware (external sound card, audio software, OBS...)
- Click the gear ⚙️ corresponding to your audio source in the OBS Audio Mixer, and select Properties. If there is a box labeled "Use device timestamp", try to check or uncheck it and click OK.
- If your audio is always in advance compared to your video, you can retard it by clicking a gear in the OBS Audio Mixer, select "Advanced Audio Properties", and increase the value of "Sync offset" corresponding to your audio source. A value of 1500ms means a retard of 1.5 seconds is applied to your audio.
- If your video is always in advance compared to your audio, you can retard it by following these steps:
- Right click your camera source in the OBS Sources window, and select "Filters". Click the under "Audio/video filters" and select "Video delay (async)".
- Set the desired delay (a value of 1500ms means a retard of 1.5 seconds is applied to your video) and click OK.
## Troubleshooting audio crackles and latency issue
Here we are talking about the latency between you playing and what you hear back. We are not talking about latency in OBS.
- Don't be afraid to restart your computer once you installed something new. Restarting OBS and/or your audio software can also help.
- Mind to **use the same sample rate** everywhere in your audio software, external sound card and OBS settings. We will prefer 48KHz but 44.1KHz is fine too (and a bit lighter for your CPU).
- You can improve the latency of your audio software by lowering your buffer size. A 128 samples buffer size will lead to two times less latency than a 256 samples buffer size. However it is more CPU intensive, so you might experience crackles.
- Make your audio project as light as possible: disable unused inputs and outputs, delete unused tracks, VSTs and plugins, export to audio (or "freeze" in Ableton jargon) the tracks you don't play with during you performance\...
- To improve CPU performance (allow more CPU resource to your audio software), you can go into OBS settings panel,

View File

@@ -15,4 +15,4 @@
4. Once you created your video source, make sure it fill the whole area of your scene by stretching it to the correct dimension. To stretch it, select the source in the Sources window, then a red frame should appear around your view. Click a corner and stretch.
5. Good, you can now go to the next part to [configure your audio](audio/README.md).
5. Good, you can now go to the next part to [fid the best audio setup that fits your situation](audio/README.md).