├── images ├── logo-pt.png ├── logo-yt.png ├── logo-zm.png ├── logo-obs.png ├── logo-sdo.png ├── logo-vlc.png └── fn-overview.png ├── README.md └── foss-north.md /images/logo-pt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/e8johan/virtual-conf-resources/HEAD/images/logo-pt.png -------------------------------------------------------------------------------- /images/logo-yt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/e8johan/virtual-conf-resources/HEAD/images/logo-yt.png -------------------------------------------------------------------------------- /images/logo-zm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/e8johan/virtual-conf-resources/HEAD/images/logo-zm.png -------------------------------------------------------------------------------- /images/logo-obs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/e8johan/virtual-conf-resources/HEAD/images/logo-obs.png -------------------------------------------------------------------------------- /images/logo-sdo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/e8johan/virtual-conf-resources/HEAD/images/logo-sdo.png -------------------------------------------------------------------------------- /images/logo-vlc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/e8johan/virtual-conf-resources/HEAD/images/logo-vlc.png -------------------------------------------------------------------------------- /images/fn-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/e8johan/virtual-conf-resources/HEAD/images/fn-overview.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Virtual Conference Resources 2 | 3 | This repository contains resources for organizers of virtual conferences. 4 | 5 | The background to this repository is that the [foss-north 2020](https://foss-north.se/2020/) conference had to go virtual due to the COVID-19 situation during the spring of 2020. The repository is split into a general description of the foss-north setup, and links to various tools that can be used. 6 | 7 | Pull requests are welcome! 8 | 9 | ## The foss-north Setup 10 | 11 | You can find out about the [foss-north setup](foss-north.md) in a separate page. 12 | 13 | ## Tools 14 | 15 | This list of tools is split into open source and closed source alternatives. 16 | 17 | ### Video Conferencing 18 | 19 | *For sharing screens, video streams, and audio* 20 | 21 | #### Open Source 22 | 23 | * [Jitsi](https://jitsi.org) - open-source video conferencing. See [installation instructions](https://www.digitalocean.com/community/tutorials/how-to-install-jitsi-meet-on-ubuntu-18-04) for self-hosting. 24 | * [BigBlueButton](https://bigbluebutton.org/) - open-source video conferencing. 25 | 26 | #### Closed Source 27 | 28 | * [Zoom](https://zoom.ui) - powerful video conferencing tools with clients for most platforms. 29 | 30 | ### Q&A 31 | 32 | *For audience interaction such as QA, polls, etc* 33 | 34 | #### Open Source 35 | 36 | * [Nextcloud Polls](https://github.com/nextcloud/polls) - self-hosted polls. 37 | 38 | #### Closed Source 39 | 40 | * [sli.do](https://sli.do) - conference QA and polling service. 41 | 42 | ### Video Broadcasting Software 43 | 44 | *Software for live streaming videos - for services, see next category* 45 | 46 | #### Open Source 47 | 48 | * [Open Broadcaster Software](https://obsproject.com/) - broadcasting and recording software with a range of input modules. Plugin based with a large set of community plugins. Supports multiple streaming platforms. 49 | 50 | #### Closed Source 51 | 52 | ### Video Broadcasting Platforms 53 | 54 | *Platforms for live video streaming - for client software, see previous category* 55 | 56 | #### Open Source 57 | 58 | * [Open Streaming Platform](https://gitlab.com/Deamos/flask-nginx-rtmp-manager/-/blob/master/README.md) - a self-hosted alternative to services like Twitch.tv, Ustream.tv, and Youtube Live. 59 | 60 | #### Closed Source 61 | 62 | * [YouTube](https://youtube.com) - the world's largest video hosting service. 63 | 64 | ### Media Editing 65 | 66 | *For editing videos* 67 | 68 | #### Open Source 69 | 70 | * [Kdenlive](https://kdenlive.org/en/) - powerful non-linear video editor. Can generate rendering scripts, to distribute rendering to other machines. 71 | * [Audacity](https://www.audacityteam.org/) - powerful audio editor / recorder. Can be used to [fix sound](https://drbacchus.com/video-noise-reduction-using-kdenlive-and-audacity/) in video recordings. Look for noise reduction filter, but also the [compressor](https://en.wikipedia.org/wiki/Dynamic_range_compression) to fix noise and volume issues. 72 | 73 | #### Closed Source 74 | 75 | * [Auphonic](https://auphonic.com) - automated audio postproduction tool. 76 | 77 | ### Video Publishing 78 | 79 | *For publishing videos for non-live consumption* 80 | 81 | #### Open Source 82 | 83 | * [PeerTube](https://joinpeertube.org/en/) - open source video hosting platform. 84 | * [ConfTube](https://conf.tube) - PeerTube instance focused on open source conferences. 85 | 86 | #### Closed Source 87 | 88 | * [YouTube](https://www.youtube.com/) - the world's largest video hosting service. 89 | * [Vimeo](https://vimeo.com/) - video hosting service. 90 | -------------------------------------------------------------------------------- /foss-north.md: -------------------------------------------------------------------------------- 1 | # The foss-north Setup 2 | 3 | This page describes the virtual conference setup of foss-north. This was deployed during [foss-north 2020](https://foss-north.se/2020). 4 | 5 | We are working towards a free and open source setup, but this documents the setup used during the foss-north 2020 event. 6 | 7 | # Overview 8 | 9 | The foss-north was conducted as a live event with QA after each talk, but all sessions where also published for non-live consumption after the event. 10 | 11 | The setup is illustrated in the figure below: 12 | 13 | ![Image fo the foss-north setup](images/fn-overview.png) 14 | 15 | The setup consists of the following services: 16 | 17 | Service | Web site | Usage 18 | --------|----------|------ 19 | ![Zoom](images/logo-zm.png) Zoom | https://zoom.us | Video conferencing system for live talks 20 | ![sli.do](images/logo-sdo.png) sli.do | https://sli.do | QA system 21 | ![VLC](images/logo-vlc.png) VLC | https://www.videolan.org/vlc/ | Media player for pre-recorded talks 22 | ![OBS](images/logo-obs.png) OBS | https://obsproject.com/ | Broadcasting and recording program 23 | ![YouTube](images/logo-yt.png) YouTube | https://youtube.com | Video streaming and hosting service 24 | ![ConfTube](images/logo-pt.png) ConfTube | https://conf.tube | Video hosting service 25 | 26 | The live event is broadcasted to YouTube. After the event, the videos are published to YouTube and ConfTube after editing. 27 | 28 | During the live event, each speaker joins a Zoom conference with the broadcaster. The Zoom conference is captured using OBS for broadcasting. 29 | 30 | The OBS program also captures a view of sli.do, as well as various clips. 31 | 32 | For pre-recorded sessions, VLC is used to play back the clip. The speaker is then joining the Zoom conference for the QA part. 33 | 34 | The QA consists of questions entered into sli.do by the viewers, which are read to the speaker in the Zoom conference. This has turned out to be the best way to ask questions, as the live broadcasting introduces a lag. 35 | 36 | # Tool Configurations 37 | 38 | ## OBS 39 | 40 | OBS works with scenes. Each scene consists of media sources. For foss-north we use five basic scenes (and some variants): 41 | 42 | - **Intro Splash** shown on the stream before the stream begins. This scene contains logo, link to the schedule, and a text element where we note when the next session starts. 43 | - **Session Intro** shown in the beginning of each session. This scene contains a prerecorded video where the sponsors are thanked. It ends in out *Pause Screen* scene (or the same still picture). 44 | - **Pause Screen** shown when doing background stuff, e.g. getting speaker's screensharing up. 45 | - **Presentation** shows the presentation from the Zoom session. This is a screen capture of the separate screen showing the full screen Zoom session. 46 | - **QA Screen** shown during the QA session. This scene consists of a Browser source referring to the sli.do presentation URL that can be retieved from the sli.do event administration page. This means that we do not have to capture the output of a Browser. The OBS scene contains the actual browser. 47 | 48 | In addition to these scenes, the various audio sources can be individually muted. This includes the Zoom session with the speaker (desktop sounds), the voice of the broadcaster (mic sound), and in the *Session Intro* the prerecorded sound that comes with the clip. 49 | 50 | Notice that the voice of the person controlling the broadcast can be muted separately in Zoom and OBS, meaning that you can speak either to the viewers, the speaker, or both. 51 | 52 | ## YouTube 53 | 54 | Configure OBS and YouTube according to these [instructions](https://support.google.com/youtube/answer/2907883?hl=en&ref_topic=9257984). 55 | 56 | ## Zoom 57 | 58 | We capture a full screen version of Zoom. This means that we have a full screen zoom session on a full HD monitor that we capture using OBS. 59 | 60 | We use a single zoom session for all speakers, which means that the next speaker joins during the end of the previous talk. This has not been a problem this far, but it is worth noting that the meeting host can mute all participants, so any noise can be removed. 61 | 62 | It is also possible for the meeting host to revoke screen sharing to make handover between speakers easier. 63 | 64 | Zoom usually goes full screen when someone shares the screen. Make sure to manually go to full screen before this happens, to avoid the window popping back to an ordinary window if the speaker stops sharing or drops from the call. 65 | 66 | For the foss-north background, the desktop background behind the Zoom window is the same graphics as is used in the OBS *Pause Screen*, so if Zoom crashes, it looks to the broadcast as if we go to the *Pause Screen*. 67 | 68 | # The Broadcast 69 | 70 | During the broadcast, two people operated each session. An _OBS Operator_, and a _Moderator_. Both are in the Zoom conference with the speakers. 71 | 72 | The broadcast basically goes through the following flow: 73 | 74 | 1. Show the **Intro Splash** showing when the stream is about to start. 75 | 2. Start streaming in good time before the broadcast is about to start. 76 | 3. Start the Zoom conference and start recording there via Zoom. 77 | 4. When each session starts, run the **Session Intro**. Make sure to setup audio monitoring so that the _OBS Operator_ can hear when the intro stops. Nobody in the Zoom will hear this. 78 | 5. The OBS operator then introduces the speaker in Zoom and at OBS, notifying the speaker that it is time. 79 | 6. Shift to the **Presentation** view. 80 | 7. After the talk, the _Moderator_ thanks the speaker and shifts to the QA. 81 | 8. Shift to the **QA Screen** during the QA section. The _OBS Operator_ needs to be prepared to shift between **Presentation** view and **QA Screen** during this part. 82 | 9. After the QA, make sure to thank the speaker and announce when the next session will be, then shift to the next **Intro Splash**. 83 | 84 | In addition to the sequence above, there are some scenarios that are good to be aware of: 85 | 86 | * If showing a pre-recorded session, make sure to setup audio monitoring so that the _OBS Operator_ can tell when the session is over. 87 | * Setup the **Pause Screen** without audio sources, or with a muteable mic, so that you can resolve the issue with the session quickly. 88 | * Be careful with your muting. In our setup, the _OBS Operator_ can be muted in Zoom, as well as in OBS. These are separate and need to be kept in sync. If making noise, Zoom will show a pop-up indicating that the _OBS Operator_ is trying to speak while muted. This is shown in the broadcast. To solve this, the mic of the _OBS Operator_ was muted with a physical switch as well. This means that muting and unmuting is a manual and risk prone part of the broadcast. At a couple of occations, OBS was not unmuted, but Zoom was. This affected the live broadcast, but could be fixed in the post processing, as we recorded Zoom separately from the YouTube stream. 89 | 90 | # Post Event Editing 91 | 92 | For foss-north we have prerecorded intro and exit clips consisting of full screen slides with a voice over. These intro is the same as is used in the live broadcast and this part can usually be reused. The exit clip is added after each speaker in the post production. 93 | 94 | For editing, kdenlive is used. The YT broadcast is used as the primary video. In some cases, the Zoom recording can be used as a fallback. Various hickups (e.g. technical issues, silence during QA, bad audio) are cut out. 95 | 96 | All screen transitions are handled with a short fade in / fade out (usually 0.5s), and all audio is also faded in and out (usually 0.25 s) to avoid clicks and pops. 97 | 98 | # Open Issues 99 | 100 | The following issues are left to resolve: 101 | 102 | * Hard to notify the speaker of time left using Zoom 103 | * YouTube comments and QA needs to be synced 104 | --------------------------------------------------------------------------------