├── img
├── settings-audio.png
├── settings-output-streaming.png
├── settings-video-resolution.png
├── 720p-settings-video-resolution.png
└── 1080p-settings-video-resolution.png
├── pdf
└── streaming-equipment.pdf
├── continuity.md
├── FAQ.md
├── bot-commands.md
├── day-of-checklist.md
├── README.md
├── streamers-guide.md
└── LICENSE
/img/settings-audio.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cloud-platforms-streaming/streaming-docs/HEAD/img/settings-audio.png
--------------------------------------------------------------------------------
/pdf/streaming-equipment.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cloud-platforms-streaming/streaming-docs/HEAD/pdf/streaming-equipment.pdf
--------------------------------------------------------------------------------
/img/settings-output-streaming.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cloud-platforms-streaming/streaming-docs/HEAD/img/settings-output-streaming.png
--------------------------------------------------------------------------------
/img/settings-video-resolution.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cloud-platforms-streaming/streaming-docs/HEAD/img/settings-video-resolution.png
--------------------------------------------------------------------------------
/img/720p-settings-video-resolution.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cloud-platforms-streaming/streaming-docs/HEAD/img/720p-settings-video-resolution.png
--------------------------------------------------------------------------------
/img/1080p-settings-video-resolution.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cloud-platforms-streaming/streaming-docs/HEAD/img/1080p-settings-video-resolution.png
--------------------------------------------------------------------------------
/continuity.md:
--------------------------------------------------------------------------------
1 | # Continuity Plan
2 |
3 | As of 2020-09-28
4 |
5 | ## People
6 |
7 | Currently [Chris Short](https://github.com/chris-short) streams and produces (as well as, hosts as needed) the majority of shows on [Red Hat Livestreaming](https://red.ht/livestreaming). But, in case Chris is unavailable due to technical or other issues we've lined up the following folks to help cover the [Streamers](https://github.com/cloud-platforms-streaming/streaming-docs#streamers) and [Producers](https://github.com/cloud-platforms-streaming/streaming-docs/blob/master/README.md#producers) responsibilities. Please understand, this isn't their full time responsibility and when working together, more communication is better than less:
8 |
9 | * Erik Jacobs ([thoaraxe](https://github.com/thoraxe))
10 | * Andrew Sullivan ([acsulli](https://github.com/acsulli))
11 | * Natale Vinto
12 | * Eric Hendricks
13 | * Michael Foster
14 |
15 | As mentioned, these folks aren't doing this regularly as part of their day-to-day jobs. They are trained and technical folks but, please don't consider them as go to folks for producing bespoke shows or series.
16 |
17 | Please use the [New Media Initiative Proposal](https://red.ht/streamform) form to propose topics for the channel.
18 |
19 | ## Process
20 |
21 | If the slotted Streamer/Producer is unable to stream but, able to communicate they should inform the next in line of their issues and need to handoff responsibilities as soon as possible. If the next inline isn't available, keep going down the list.
22 |
23 | If you plan on being out for prescheduled shows please find a replacement for yourself early. Be sure they have the same invites you have, and definitely check-in with them the day before to make sure they realize what year it is.
24 |
25 | ## Tools (or How)
26 |
27 | Emailing and informing via [Slack](https://coreos.slack.com/archives/C01456K7G2H) all producers on this page of your issues is a critical step in the handoff process.
28 |
29 | If you're able to hit up the Streaming channel on GChat, that's helpful too. But, as determined in the 2020-09-28 Production Meeting, the [Slack Streaming Channel](https://coreos.slack.com/archives/C01456K7G2H) is the official go to source for Red Hat Livestreaming help, conversations, etc.
30 |
31 | Thank you!
32 |
--------------------------------------------------------------------------------
/FAQ.md:
--------------------------------------------------------------------------------
1 | # Red Hat Live Streaming Overview/FAQ
2 |
3 | Handy link to this doc: https://red.ht/streamfaq
4 |
5 | If this FAQ needs additional information, feel free to to submit a pull request or raise an issue.
6 |
7 | Why live streaming? The COVID-19 pandemic has affected almost every event on the planet. We need a better way to connect to customers, partners, contributors, and communities.
8 |
9 | The ideal situation is that this connection point remains a very natural and human experience. Think of it as a TV show with a live studio audience (in the form of chat) for all things Kubernetes and OpenShift but, a more relaxed environment where people are human and relatable.
10 |
11 | ## What’s our URL?
12 |
13 | Please use [Red Hat Livestreaming](https://red.ht/livestreaming).
14 |
15 | It contains all the platforms we're currently streaming to as well as the calendar. This allows everyone to choose the setup that works best for them.
16 |
17 | ## Is there a public calendar?
18 |
19 | Yes!
20 |
21 | https://red.ht/streamcal
22 |
23 | You can add this calendar to your own by clicking the “+Google Calendar” icon in the lower right-hand corner of the page.
24 |
25 | ## Have an idea for a live stream?
26 |
27 | Please use the Red Hat Livestreaming Topic Proposal Form. We are very welcoming of streams that involve customers, upstream contributors, Accelerators, Partners, etc. Please use the form to act as a steward and/or handoff from outside the company to inside.
28 |
29 | Red Hat Livestreaming Topic Proposal Form:
30 | https://red.ht/streamform
31 |
32 | ## What are the needed roles to stream?
33 |
34 | We see three “[Personas](https://github.com/cloud-platforms-streaming/streaming-docs#personas)” on every stream. Keep in mind that, in theory, all three Personas can be held by the same person:
35 |
36 | * [Guests](https://github.com/cloud-platforms-streaming/streaming-docs#guests)
37 | * [Producers](https://github.com/cloud-platforms-streaming/streaming-docs#producers)
38 | * [Streamers](https://github.com/cloud-platforms-streaming/streaming-docs#streamers)
39 |
40 | ## What does it take to stream?
41 |
42 | Building a great stream is not for the faint of heart. We’ve documented so much already with plenty more to document every day. Please make suggestions and add issues from your own experience participating in our streams. This is an open source project that we are working with upstream contributors to help other live streaming efforts.
43 |
44 | Streaming Docs: https://github.com/cloud-platforms-streaming/streaming-docs
45 |
46 | Streaming Tools/Assets: https://github.com/cloud-platforms-streaming/streaming-tools
47 |
48 | Equipment Suggestions: [Streaming Equipment](pdf/streaming-equipment.pdf)
49 |
50 | ## Can I run pre-recorded content?
51 |
52 | Always live is our mantra but, some pre-recorded content in the stream is possible. Please use the [Red Hat Livestreaming Topic Proposal Form](https://red.ht/streamform) to submit your idea.
53 |
54 | ## I am lazy, can you give me a template to send to Red Hatters about the stream?
55 |
56 | Hi!
57 |
58 | Red Hat's [Red Hat Livestreaming][1] is awesome. Please check it out and sign up to follow it! You can find out the schedule on our [public calendar][2]. If you have your own ideas, please [submit them][3]! If you have any questions, we have a full [FAQ][4].
59 |
60 | ## I am lazy, can you give me a template to send to non-Red Hatters about the stream?
61 |
62 | Hi!
63 |
64 | Red Hat's [Red Hat Livestreaming][1] is awesome. Please check it out and sign up to follow it! You can find out the schedule on our [public calendar][2]. If you have your own ideas, please let me know!
65 |
66 | [1]: https://red.ht/livestreaming
67 | [2]: https://red.ht/streamcal
68 | [3]: https://red.ht/streamform
69 | [4]: https://red.ht/streamfaq
70 |
71 | ### Points of Contact
72 |
73 | Chris Short: cshort@redhat.com
74 | Alexa Overbay: ahollis@redhat.com
75 |
--------------------------------------------------------------------------------
/bot-commands.md:
--------------------------------------------------------------------------------
1 | # Bot Commands
2 |
3 | As of 2020-12-02
4 |
5 | ## Restream
6 |
7 | The following bot commands are for use and managed in [Restream Chat](https://restream.io/chat-product):
8 |
9 | | Command | Output |
10 | |:-------------|:-------|
11 | | !archive | Miss a previous episode that's expired off Twitch? Have no fear, YouTube is here! https://www.youtube.com/user/rhopenshift |
12 | | !askquestions| Welcome all! Please feel free to ask questions via chat and we'll get them answered even if the expert isn't on the line right now. |
13 | | !blog | Checkout the latest news and tips on the OpenShift blog. You might even see a few familiar names from the channel. https://red.ht/openshift-blog |
14 | | !cal | Red Hat Streaming Calendar — https://red.ht/streamcal — Note: Click the + in the bottom right of the Google Calendar to add to your own calendar. |
15 | | !commons | OpenShift Commons: Where users, partners, customers, and contributors come together to collaborate and work together on OpenShift. Learn more at https://red.ht/stream-commons |
16 | | !discord | Feel free to join our Discord to continue the discussion: https://red.ht/discord |
17 | | !ebooks | Need some reading material on some cloud native software? We've got just the thing! Check out all our free eBooks: https://red.ht/all-the-ebooks |
18 | | !helpernode | In this live stream, Christian Hernandez and Chris Short walk through what helpernode is, how to get the helpernode up and running, and getting an OpenShift 4 cluster stood up with helpernode's assistance. https://youtu.be/wZYx4_xBSUQ |
19 | | !knative | Get a free copy of the O'Reilly Knative Cookbook by Burr Sutter & Kamesh Sampath https://red.ht/knative-ecookbook |
20 | | !learn | Checkout https://red.ht/stream-learn for Katacoda courses designed to help you learn more about Red Hat OpenShift |
21 | | !makeyourmark | Join a community of passionate tech users, customers, and practitioners The Red Hat Accelerators program is a global enterprise customer community of Red Hat technology experts and enthusiasts who willingly share their knowledge and expertise with peers in the industry, their community, and with Red Hat. https://red.ht/makeyourmark |
22 | | !operators | Get the Kubernetes Operators O'Reilly book for free! This book explains what an Operator is and how Operators extend the Kubernetes API. It shows how to deploy and use existing Operators, and how to create and distribute Operators for your applications using the Red Hat Operator Framework. https://red.ht/operators-ebook |
23 | | !patterns | Get your own copy of the Kubernetes Patterns O'Reilly eBook for free! With this book, you'll learn to create cloud-native applications with Kubernetes as a runtime platform, manage container and platform interactions, apply configuration patterns to your Kubernetes-based applications, and build container images directly within the cluster. https://red.ht/k8s-patterns-ebook |
24 | | !slides | If slides are available they are posted at https://speakerdeck.com/redhatopenshift |
25 | | !tluh | Want to take the next step in leveling up your knowledge and career? We’ve got you covered! Head over to https://red.ht/leveluphour to take advantage of learning materials and exam discounts. |
26 | | !try | Get started with OpenShift — Try Red Hat OpenShift 4 now, or set up your own clusters in the environment of your choice. https://red.ht/stream-try |
27 | | !welcome | Welcome all! Thank you for joining us. We're happy to have you here with us today. Feel free to ask questions and we'll be happy to answer. Enjoy! |
28 |
29 | ## Streamlabs
30 |
31 | The following bot commands are for use in Twitch chat and are controlled by [Streamlabs](https://streamlabs.com/dashboard#/cloudbot/commands/custom):
32 |
33 | | Command | Output |
34 | |:-------------|:-------|
35 | | !followage | {touser.name} has been following {channel.name} for {touser.followage}. |
36 | | !hug | /me hugs {target.name} <3 |
37 | | !uptime | The stream has been live for {uptime}. |
--------------------------------------------------------------------------------
/day-of-checklist.md:
--------------------------------------------------------------------------------
1 | # Live Stream Day of Checklist
2 |
3 | ## Pre-Event Logistics
4 |
5 | 1. Pre-schedule the Zoom call (you'll need a paid account or someone with one)[1](#footnote1)
6 | 1. Copy the invite details into a calendar invite including your Guests, Producer, and Streamer with a fifteen minute setup time buffer ahead of the event.
7 | 1. Create an event for the **public calendar**; include a description folks can use for social and add only redhatstreaming AT gmail DOT com to that invite. Include a link to the YouTube video from the preferred channel as the location. It never hurts to include a link to in the description (NEVER share the Zoom details publicly[2](#footnote2))
8 | 1. A public calendar maintainer will make sure the invite for public consumption is published
9 | 1. You need a stream key for OBS (or otherwise capable software); ask Erik Jacobs or Chris Short through official Red Hat channels (if you're using Restream Live this isn't an issue usually).
10 |
11 | **NOTE: It's highly encouraged to test streaming with your own account(s) to get the hang of it.**
12 |
13 | ## Pre-stream
14 |
15 | 1. Establish a back channel to communicate with all participants. Slack or GChat can be used but make sure you're not spamming the live stream with notification sounds (Do Not Disturb is your friend). Using the Zoom or BlueJeans chat (you're all in it automatically) has drawbacks as well (like displaying when there are messages publicly to the world)
16 | 1. Download the streaming-tools repo (put it in /opt/ on Linux/macOS or C:\ for Windows)
17 | 1. Linux users: Install the [Linux Browser plugin](https://github.com/cloud-platforms-streaming/streaming-docs/blob/master/streamers-guide.md#linux-browser-plugin)
18 | 1. Check your OBS scenes are configured correctly. Zoom launches two windows; make sure the right Zoom window is selected in the Main Zoom Scenes -> Mac/Linux Zoom Window
19 | 1. Note: If you're using PrimeTime, open a browser window and go to the URL for the event. You can use the "OpenShift_What's_New" Scene Collection in OBS for anything non-Commons on BlueJeans Primetime (Commons has their own scene collection).
20 | 1. Rotate through the scenes; make sure you're seeing what is expected. OBS will automatically tell you if an asset is missing when you switch to the scene. All assets are in the streaming-tools repo.
21 | 1. Get everyone on Zoom EARLY so you can test their setups, font sizes, screen sharing, etc.
22 | 1. Make sure Side by Side in Zoom Settings is enabled (buried in Zoom Screen Sharing settings)
23 | 1. Make sure you're in Gallery View (not available until two people are on call)
24 | 1. Make sure font sizes look good when screen sharing
25 | 1. Update the title and description of the show in [Restream](https://app.restream.io/titles) (note: happens immediately; will impact content that's currently on air)
26 | 1. Make sure all the destinations are set correctly in [Restream](https://restream.io/channel)
27 | 1. In Restream, make sure you're streaming to the right YouTube events (buried in Restream's channel sections)
28 | 1. About 90 seconds before the scheduled stream start time; click Start Streaming on the "Starting Soon" Scene (unless of course you're still cat herding in which case it is recommend hitting the Starting Soon animation at the start time).
29 | 1. Make sure you have at least one of the streaming platforms open and muted (Twitch/YouTube/etc.) so you can participate in the chat and get audience questions answered.
30 |
31 | ## Go Live
32 |
33 | 1. Ask participants to be quiet
34 | 1. Switch Scenes to the Intro Bumper
35 | 1. Once Intro Bumper plays, switch to the Main Zoom Scene
36 | 1. You're now live!
37 |
38 | ## Ending the stream
39 |
40 | 1. Encourage folks to follow the channel (like and subscribe)
41 | 1. Point folks to the calendar at every chance (https://red.ht/streamcal)
42 | 1. Tell people about upcoming streams
43 | 1. Once the bumper is complete, switch scenes to "Ended". Let that run for a few seconds.
44 | 1. Hit Stop Streaming in OBS (this will send the end stream signal to the various services)
45 | 1. The stream is complete.
46 |
47 | 1: Zoom has a "feature" that prevents an account from being on two calls at once. We have two separate Zoom accounts as a result. If your event prep time overlaps with an existing show, you will need to use the alternative Zoom account.
48 |
49 | 2: [Zoombombing](https://en.wikipedia.org/wiki/Zoombombing) is a thing and was a major problem in the Kubernetes community for awhile as well as at the beginning of the COVID-19 pandemic. If you accidentally expose the Zoom link publicly, even for a second, create a new meeting link in Zoom. It's worth it, trust me.
50 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Streaming Docs
2 |
3 | A great part about streaming platforms is that you can stream from almost any device. This allows for more natural conversations. However, when you start pulling in multiple people for a chat, streaming it, adding graphics to the stream, etc. things can get complicated. In practice, we try to keep things simple. In reality, live streaming is a learned skill and there's a lot of ways to get to the same outcome. These docs aim to help educate others about how [Red Hat Livestreaming](https://red.ht/livestreaming) is run.
4 |
5 | Please note there is an internal Red Hat Livestreaming README doc that contains additional information that's unsafe to share publicly. Contact any producer
6 |
7 | ## Have an idea for a live stream?
8 |
9 | This form will send your idea to the New Media Initiative for proper review.
10 |
11 |
12 |
13 | ## Personas
14 |
15 | Three main roles need to be played to do a stream. Guests, Producers, and Streamers. In reality, one person can do a stream by themselves. But, we call out these specific personas because they all have some requirements and responsibilities.
16 |
17 | The number one rule of all these personas is the be authentic and transparent. Be you, be real. It's okay to make some mistakes during the live streams, that makes it very real for folks.
18 |
19 | ### Guests
20 |
21 | Congrats! You're the star of the show! You've made it to a league, the size of which is to be determined. We want you to have the best experience possible. We want you to have fun and be the best version of you that you can be. Thank you for joining our stream.
22 |
23 | All we ask is that you be able to join a Zoom call. We'd like you to be on a webcam, using a wired mic (stock Apple EarPods are sufficient), and able to share your screen if you intend to present anything or live code.
24 |
25 | That's it! Join us and share your knowledge and experience.
26 |
27 | If you're a regular guest you might want to consider acquiring equipment that we suggest in the [Streamers Guide](streamers-guide.md)
28 |
29 | ### Producers
30 |
31 | "Producers" are the term for the folks that are managing the channel during the show. There are many ways to interact with the audience, including chat, that are available to the Producers to provide a great experience.
32 |
33 | TODO: Document extensions that are added to broadcast (Streamlabs integrations)
34 |
35 | One of the more important things is making sure the stream is adhering to community guidelines and make the experience fun and enjoyable for everyone on the stream.
36 |
37 | #### Community Guidelines
38 |
39 | * [Twitch Community Guidelines](https://www.twitch.tv/p/legal/community-guidelines/)
40 | * [YouTube Policies and Safety](https://www.youtube.com/about/policies/#community-guidelines)
41 | * [FaceBook Community Standards](https://www.facebook.com/communitystandards/)
42 | * [Twitter Rules and policies](https://help.twitter.com/en/rules-and-policies#twitter-rules)
43 | Summary: Be excellent to everyone.
44 |
45 | Producers are also the ones making sure we adhere to the [Rules for Streaming](#rules-for-streaming)
46 |
47 | ### Streamers
48 |
49 | Streamers are the ones that mux everything together out to the internet. Streamers are the folks that are responsible for getting everyone that's joined a Zoom call, adding in any customizations via [OBS](http://obsproject.com/), and streaming that feed out to the internet.
50 |
51 | Streamers are the folks that will be the ones making sure the content lands on Twitch/YouTube/Facebook/Twitter/etc.
52 |
53 | There are some requirements though for streaming that are best-maintained separate from this README.md in the [**Streamers Guide**](streamers-guide.md).
54 |
55 | #### Bot Commands
56 |
57 | There are various bot commands (or as Restream calls them, "Reply commands") that are available for use during live streams. These commands can be used to drive people to useful assets, sites, previous episodes, etc.
58 |
59 | Refer to the Restream Chat settings to see all the available Reply Commands.
60 |
61 | ## Rules for Streaming
62 |
63 | Fun and natural but professional is the goal. The channel is not marked as mature on any platform so please be cognizant of language and environment.
64 |
65 | * Read the [Community Guidelines](#community-guidelines) because they are very different than what you might think (like [Music](https://www.twitch.tv/p/legal/community-guidelines/music/))
66 | * Please contribute to the docs and assets: https://github.com/cloud-platforms-streaming
67 | * Don't get into open source drama/politics/etc. (Example: Chris Short will not be talking about behind the scenes CNCF goings-on)
68 | * Don't knock competing projects and products (we all know this but, let's continue to stay above board here).
69 |
70 | ## Streaming Calendar
71 |
72 | We maintain an externally facing Google Calendar that can be shared freely and subscribed to at: https://red.ht/streamcal
73 |
74 | This calendar is managed by Red Hat Livestreaming Executive Producers, Producers, and those involved with marketing events in the calendar. No other individuals should be granted access as this is a public facing asset for the business.
75 |
76 | Executive Producers will be able to "Make changes and manage sharing" while Producers will have their permissions set to "Make changes to events" so that better security controls are in place on this resource.
77 |
78 | ### Adding events as a non-Producer
79 |
80 | If you are a regular host and are booking shows, be sure to add redhatstreaming AT gmail to your invite. It might also be prudent to add your producer.
81 |
82 | ### Show changes/problems, calendar conflicts and show prioritization
83 |
84 | As part of the Executive Producer’s responsibilities, they will need to maintain the calendar with up to date information as part of this they will need to resolve any conflicts, prioritize content, and determine what goes on the air. At times, the Executive Producer will need to balance organizational needs vs channel needs. Producers generally have rights to the public streaming calendar, however, those rights can be revoked without notice in cases of abuse/misuse/etc.
85 |
86 | In the case of a previously scheduled show, any time/date changes need to be shared with at least one Executive Producer 10 days prior to the originally scheduled date. All efforts will be made to accommodate the change but existing shows will have priority unless customers are involved.
87 |
88 | In the case of an emergency (presenter power outage, connectivity issues, etc.) on the day of a scheduled show, you will need to contact an Executive Producer as soon as possible to reschedule. Do not try to pull off heroics to get on a live stream. We can always apologize for the technical difficulties and reschedule. If there are issues with a streaming service itself, the show's producer will have to decide on the spot to postpone or continue.
89 |
90 | Shows involving outside or external guests/partners/customers will always take precedence over shows with only Red Hatters.
91 |
92 | ### Continuity Plan
93 |
94 | If you plan on being out for prescheduled shows please find a replacement for yourself early. Be sure they have the same invites you have, and definitely check-in with them the day before to make sure they realize what year it is.
95 |
96 | [Continuity Plan](https://github.com/cloud-platforms-streaming/streaming-docs/blob/master/continuity.md#continuity-plan)
--------------------------------------------------------------------------------
/streamers-guide.md:
--------------------------------------------------------------------------------
1 | # Streaming Guide
2 |
3 | Streamers are the ones that mux everything together out to the internet. Streamers are the folks that are responsible for getting everyone that's joined a Zoom call, adding in any customizations via [OBS](http://obsproject.com/), and streaming that feed out to the internet.
4 |
5 | Streamers are the ones that will be making sure the content lands on Twitch/YouTube/Facebook/Twitter/etc.
6 |
7 | **Some requirements must be met to stream.** As such we have [a series of producers](continuity.md) to help cover the needs of the channel.
8 |
9 | ## Bandwidth
10 |
11 | If you have a lower end upload speed, streaming is possible but 720p and 1080p streams require at least 5 Mbps of upload bandwidth. Keep in mind, other things on your network contend for this bandwidth. Also, you'll be watching the stream too which takes additional bandwidth. It racks up fast so your mileage may vary.
12 |
13 | While we don't intend to stream in 4K, it's worth mentioning, the upload bandwidth requirements for broadcasting 4K video is 25 Mbps.
14 |
15 | ## Equipment
16 |
17 | Keep in mind; you can stream and participate with a wide variety of devices and hardware. What you have right now as someone who participates in meetings remotely regularly likely has good enough equipment to join in a stream. However, some regular streamers will probably be filling a [Guest](README.md#Guests) and/or [Producers](README.md#Producers) role as well. If you don't have enough compute and video power to pull this off, a two computer set up is suggested.
18 |
19 | ### Two computer set up
20 |
21 | Streamers will need to consider how they will both broadcast a stream while participating in it (either in one of the streaming platforms and/or Zoom). While this is possible with a powerful enough setup, many Streamers choose to use two computers; one to stream the OBS feed and the other to participate in the Zoom call and streaming platforms.
22 |
23 | #### Computer A
24 |
25 | Computer A will be the box from which you speak, present, etc. to the audience on the stream. You'll connect to Zoom with this computer and use the microphone and camera on this machine. You will likely have the chat(s) for the streaming platform(s) open here as well.
26 |
27 | #### Computer B
28 |
29 | Computer B will be the machine that runs [OBS](https://obsproject.com/) to broadcast the Zoom call to the streaming platform(s). This computer should be able to handle the demand of encoding video feeds and streaming them. For example, an 8th generation Intel i3 is the bare minimum platform being recommended.
30 |
31 | The good news is there are other people that have figured this out, so do not feel like you have to do it all yourself. If you have questions, ask away in an Issue or PR (or DM is fine too).
32 |
33 | ### Three device set up
34 |
35 | Building on the Two computer set up, you can also have a third computer that could be used as a remote client. This client device would be in charge of managing the system OBS is running on remotely. This reduces CPU usage on the computer being used to connect to Zoom so it those resources can be used to run demos from or do other screen sharing.
36 |
37 | This isn't a common use case, but it's possible and viable should you need it.
38 |
39 | ### Equipment suggestions
40 |
41 | With that in mind, if you're going to be a regular [Guest](README.md#Guests) or Streamer we've assembled a list of suggested equipment to help improve the experience for our viewers.
42 |
43 | For a tiered list of suggested equipment, see our [Streaming Equipment](pdf/streaming-equipment.pdf) guide.
44 |
45 | Twitch also has its own [Hardware Recommendations](https://www.twitch.tv/creatorcamp/en/setting-up-your-stream/hardware-recommendations/) if you'd like to compare options.
46 |
47 | There is a good presentation put together by the brand team that will help you make the most of your physical appearance. Ideally, you have a decent mic, good lighting, and are wearing Red Hat or neutrally colored clothing: [Webcam Video
48 | Best practices for presentations](https://docs.google.com/presentation/d/1xnW3hm-jDfwrqma-1j8vzmq4an1mJMk0Y2hQfUkKss4/edit#slide=id.g547716335e_0_260) (Red Hat only).
49 |
50 | TODO: open source this guide or some version of it
51 |
52 | ## OBS
53 |
54 | [OBS](https://obsproject.com/), short for Open Broadcaster Software, is an open source project designed to making streaming easier and more professional looking. OBS is the interface to streaming services like Twitch, YouTube, etc. There are a number of useful resources across the web to help you get up and running with OBS or one of its forks. We'll provide the best here along with specific configuration settings that are needed.
55 |
56 | All assets that are consumed by OBS for the stream are in the [**streaming-tools**](https://github.com/cloud-platforms-streaming/streaming-tools) repo
57 |
58 | ### OBS Quick References
59 |
60 | Note: For Fedora users, the RPMFusion OBS should be used as the Flatpak has some issues with the required plugins.
61 |
62 | * [OBS Forum Resources](https://obsproject.com/forum/resources/)
63 | * [General Performance And Encoding Issues](https://obsproject.com/wiki/General-Performance-and-Encoding-Issues)
64 | * [Streaming with Open Broadcaster in YouTube (LinkedIn Learning)](https://www.linkedin.com/learning/learning-video-live-streaming/streaming-with-open-broadcaster-in-youtube)
65 | * [GPU Overload Issues](https://obsproject.com/wiki/GPU-overload-issues)
66 |
67 | ### OBS Scene Creation
68 |
69 | #### Cropping
70 |
71 | Cropping inputs is something that you'll find yourself doing quite a bit of in OBS as you're building scenes. The "ALT crop" (Option key on Macs) is a great way to get a crop *just right*. When editing a source, hold the ALT (Option on Mac) key and grab any point in the frame to crop it to suit the scene. Once you have your crop just right, it's encouraged that you do a "Fit to Screen" (CTRL/CMD+F) to make sure the crop is the best you can make it.
72 |
73 | For those comfortable with photo editing, this might feel a little awkward, but the outcome is similar. You might notice a black box (letterboxing) around your object as you're positioning it. This is due to the resulting image not fitting the aspect ratio of the screen being streamed. Keeping crops at a 16:9 aspect ratio will help with black boxes.
74 |
75 | * [How To CROP, RESIZE And STRETCH In OBS Studio! Easy (YouTube)](https://youtu.be/qEKBaeTJfpc)
76 |
77 | ### OBS Settings (aka problems and how to fix them)
78 |
79 | #### (Linux) Browser Plugin
80 |
81 | In order to use various overlays and alerts on Twitch, a browser plugin is available. This plugin does not ship for Fedora and must be installed. Other operating systems already have a browser plugin packaged. For Fedora, simply follow the [binary release installation instructions](https://github.com/bazukas/obs-linuxbrowser#installing-binary-release).
82 |
83 | #### Video Settings
84 |
85 | **Broadcasting in 1080p at 30 fps** is the goal. To get that set up, Open Settings, Video. Then make sure the settings are for 1080p (1920x1080) and 30 fps.
86 |
87 | 
88 |
89 | #### x264 CPU Usage Preset
90 |
91 | If your on stream video is laggy, lagging significantly, or jittering tuning the x264 CPU Usage preset on your device might help.
92 |
93 | The bitrate should be set to 4500 Kbps due to the 1080p@30fps requirement. This bitrate is the amount of data you send when you stream. If you have an upload speed of less than 4500 Kbps, you should not be a [Streamer](https://github.com/cloud-platforms-streaming/streaming-docs#streamers).
94 |
95 | You should be using a setting of veryfast (but superfast or ultrafast might be necessary depending on your setup). The higher the setting the better performance. But, the lower the quality; there's a sacrifice. This is device-specific; testing is required. "The image may look a bit blockier or pixelated, but you will be able to retain your resolution/fps."
96 |
97 | There is also a worthwhile **Tune** option in the Output settings. If you're streaming content, configuring the x264 Tune option to `zerolatency` should help performance.
98 |
99 | 
100 |
101 | Reference: [Twitch Broadcasting Guidelines](https://stream.twitch.tv/encoding/)
102 |
103 | #### Sound Settings
104 |
105 | In general, sound quality is the most important part of a livestream. If the sound isn't pleasant and of high-quality, people tune out. Much like radio, silence is bad. When in doubt, talk about whatever plugins are being used by the person showing their screen or ask for some more color around a particular feature or setting.
106 |
107 | General OBS sound settings should be set to 48 kHz and Stereo. Some services support a full 5.1 surround sound experience but, unless you intend to use 5.1 channels of audio during your production, keep it in Stereo.
108 |
109 | 
110 |
111 | #### Error: `Encoding overloaded! Consider turning down the video settings of using a faster preset.`
112 |
113 | This is a common error usually related to the stress that video encoding is putting on the system.
114 |
115 | Downscaling the output resolutions to 720p is the biggest thing that can be done to fix this. This is a huge sacrifice to video quality though.
116 |
117 | Try to see if there are updated drivers available for your system. At the very least, reach out to @chris-short for help here because ***720p isn't good***.
118 |
119 | 
120 |
121 | TODO:
122 |
123 | * Streaming key acquisition
124 | * Scenes and more assets (D. Russo helping with animations)
125 | * Add more resources, hints, and refined settings (almost done)
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Apache License
2 | Version 2.0, January 2004
3 | http://www.apache.org/licenses/
4 |
5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6 |
7 | 1. Definitions.
8 |
9 | "License" shall mean the terms and conditions for use, reproduction,
10 | and distribution as defined by Sections 1 through 9 of this document.
11 |
12 | "Licensor" shall mean the copyright owner or entity authorized by
13 | the copyright owner that is granting the License.
14 |
15 | "Legal Entity" shall mean the union of the acting entity and all
16 | other entities that control, are controlled by, or are under common
17 | control with that entity. For the purposes of this definition,
18 | "control" means (i) the power, direct or indirect, to cause the
19 | direction or management of such entity, whether by contract or
20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
21 | outstanding shares, or (iii) beneficial ownership of such entity.
22 |
23 | "You" (or "Your") shall mean an individual or Legal Entity
24 | exercising permissions granted by this License.
25 |
26 | "Source" form shall mean the preferred form for making modifications,
27 | including but not limited to software source code, documentation
28 | source, and configuration files.
29 |
30 | "Object" form shall mean any form resulting from mechanical
31 | transformation or translation of a Source form, including but
32 | not limited to compiled object code, generated documentation,
33 | and conversions to other media types.
34 |
35 | "Work" shall mean the work of authorship, whether in Source or
36 | Object form, made available under the License, as indicated by a
37 | copyright notice that is included in or attached to the work
38 | (an example is provided in the Appendix below).
39 |
40 | "Derivative Works" shall mean any work, whether in Source or Object
41 | form, that is based on (or derived from) the Work and for which the
42 | editorial revisions, annotations, elaborations, or other modifications
43 | represent, as a whole, an original work of authorship. For the purposes
44 | of this License, Derivative Works shall not include works that remain
45 | separable from, or merely link (or bind by name) to the interfaces of,
46 | the Work and Derivative Works thereof.
47 |
48 | "Contribution" shall mean any work of authorship, including
49 | the original version of the Work and any modifications or additions
50 | to that Work or Derivative Works thereof, that is intentionally
51 | submitted to Licensor for inclusion in the Work by the copyright owner
52 | or by an individual or Legal Entity authorized to submit on behalf of
53 | the copyright owner. For the purposes of this definition, "submitted"
54 | means any form of electronic, verbal, or written communication sent
55 | to the Licensor or its representatives, including but not limited to
56 | communication on electronic mailing lists, source code control systems,
57 | and issue tracking systems that are managed by, or on behalf of, the
58 | Licensor for the purpose of discussing and improving the Work, but
59 | excluding communication that is conspicuously marked or otherwise
60 | designated in writing by the copyright owner as "Not a Contribution."
61 |
62 | "Contributor" shall mean Licensor and any individual or Legal Entity
63 | on behalf of whom a Contribution has been received by Licensor and
64 | subsequently incorporated within the Work.
65 |
66 | 2. Grant of Copyright License. Subject to the terms and conditions of
67 | this License, each Contributor hereby grants to You a perpetual,
68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69 | copyright license to reproduce, prepare Derivative Works of,
70 | publicly display, publicly perform, sublicense, and distribute the
71 | Work and such Derivative Works in Source or Object form.
72 |
73 | 3. Grant of Patent License. Subject to the terms and conditions of
74 | this License, each Contributor hereby grants to You a perpetual,
75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76 | (except as stated in this section) patent license to make, have made,
77 | use, offer to sell, sell, import, and otherwise transfer the Work,
78 | where such license applies only to those patent claims licensable
79 | by such Contributor that are necessarily infringed by their
80 | Contribution(s) alone or by combination of their Contribution(s)
81 | with the Work to which such Contribution(s) was submitted. If You
82 | institute patent litigation against any entity (including a
83 | cross-claim or counterclaim in a lawsuit) alleging that the Work
84 | or a Contribution incorporated within the Work constitutes direct
85 | or contributory patent infringement, then any patent licenses
86 | granted to You under this License for that Work shall terminate
87 | as of the date such litigation is filed.
88 |
89 | 4. Redistribution. You may reproduce and distribute copies of the
90 | Work or Derivative Works thereof in any medium, with or without
91 | modifications, and in Source or Object form, provided that You
92 | meet the following conditions:
93 |
94 | (a) You must give any other recipients of the Work or
95 | Derivative Works a copy of this License; and
96 |
97 | (b) You must cause any modified files to carry prominent notices
98 | stating that You changed the files; and
99 |
100 | (c) You must retain, in the Source form of any Derivative Works
101 | that You distribute, all copyright, patent, trademark, and
102 | attribution notices from the Source form of the Work,
103 | excluding those notices that do not pertain to any part of
104 | the Derivative Works; and
105 |
106 | (d) If the Work includes a "NOTICE" text file as part of its
107 | distribution, then any Derivative Works that You distribute must
108 | include a readable copy of the attribution notices contained
109 | within such NOTICE file, excluding those notices that do not
110 | pertain to any part of the Derivative Works, in at least one
111 | of the following places: within a NOTICE text file distributed
112 | as part of the Derivative Works; within the Source form or
113 | documentation, if provided along with the Derivative Works; or,
114 | within a display generated by the Derivative Works, if and
115 | wherever such third-party notices normally appear. The contents
116 | of the NOTICE file are for informational purposes only and
117 | do not modify the License. You may add Your own attribution
118 | notices within Derivative Works that You distribute, alongside
119 | or as an addendum to the NOTICE text from the Work, provided
120 | that such additional attribution notices cannot be construed
121 | as modifying the License.
122 |
123 | You may add Your own copyright statement to Your modifications and
124 | may provide additional or different license terms and conditions
125 | for use, reproduction, or distribution of Your modifications, or
126 | for any such Derivative Works as a whole, provided Your use,
127 | reproduction, and distribution of the Work otherwise complies with
128 | the conditions stated in this License.
129 |
130 | 5. Submission of Contributions. Unless You explicitly state otherwise,
131 | any Contribution intentionally submitted for inclusion in the Work
132 | by You to the Licensor shall be under the terms and conditions of
133 | this License, without any additional terms or conditions.
134 | Notwithstanding the above, nothing herein shall supersede or modify
135 | the terms of any separate license agreement you may have executed
136 | with Licensor regarding such Contributions.
137 |
138 | 6. Trademarks. This License does not grant permission to use the trade
139 | names, trademarks, service marks, or product names of the Licensor,
140 | except as required for reasonable and customary use in describing the
141 | origin of the Work and reproducing the content of the NOTICE file.
142 |
143 | 7. Disclaimer of Warranty. Unless required by applicable law or
144 | agreed to in writing, Licensor provides the Work (and each
145 | Contributor provides its Contributions) on an "AS IS" BASIS,
146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147 | implied, including, without limitation, any warranties or conditions
148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149 | PARTICULAR PURPOSE. You are solely responsible for determining the
150 | appropriateness of using or redistributing the Work and assume any
151 | risks associated with Your exercise of permissions under this License.
152 |
153 | 8. Limitation of Liability. In no event and under no legal theory,
154 | whether in tort (including negligence), contract, or otherwise,
155 | unless required by applicable law (such as deliberate and grossly
156 | negligent acts) or agreed to in writing, shall any Contributor be
157 | liable to You for damages, including any direct, indirect, special,
158 | incidental, or consequential damages of any character arising as a
159 | result of this License or out of the use or inability to use the
160 | Work (including but not limited to damages for loss of goodwill,
161 | work stoppage, computer failure or malfunction, or any and all
162 | other commercial damages or losses), even if such Contributor
163 | has been advised of the possibility of such damages.
164 |
165 | 9. Accepting Warranty or Additional Liability. While redistributing
166 | the Work or Derivative Works thereof, You may choose to offer,
167 | and charge a fee for, acceptance of support, warranty, indemnity,
168 | or other liability obligations and/or rights consistent with this
169 | License. However, in accepting such obligations, You may act only
170 | on Your own behalf and on Your sole responsibility, not on behalf
171 | of any other Contributor, and only if You agree to indemnify,
172 | defend, and hold each Contributor harmless for any liability
173 | incurred by, or claims asserted against, such Contributor by reason
174 | of your accepting any such warranty or additional liability.
175 |
176 | END OF TERMS AND CONDITIONS
177 |
178 | APPENDIX: How to apply the Apache License to your work.
179 |
180 | To apply the Apache License to your work, attach the following
181 | boilerplate notice, with the fields enclosed by brackets "[]"
182 | replaced with your own identifying information. (Don't include
183 | the brackets!) The text should be enclosed in the appropriate
184 | comment syntax for the file format. We also recommend that a
185 | file or class name and description of purpose be included on the
186 | same "printed page" as the copyright notice for easier
187 | identification within third-party archives.
188 |
189 | Copyright [yyyy] [name of copyright owner]
190 |
191 | Licensed under the Apache License, Version 2.0 (the "License");
192 | you may not use this file except in compliance with the License.
193 | You may obtain a copy of the License at
194 |
195 | http://www.apache.org/licenses/LICENSE-2.0
196 |
197 | Unless required by applicable law or agreed to in writing, software
198 | distributed under the License is distributed on an "AS IS" BASIS,
199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200 | See the License for the specific language governing permissions and
201 | limitations under the License.
202 |
--------------------------------------------------------------------------------