From 1d2f0dec62f3695d50ef4bb1400aa2f71d775135 Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Sat, 12 Dec 2020 00:53:27 -0500 Subject: Fix heading level --- 2020/organizers-notebook.md | 62 ++++++++++++++++++++++----------------------- 1 file changed, 31 insertions(+), 31 deletions(-) (limited to '2020/organizers-notebook.md') diff --git a/2020/organizers-notebook.md b/2020/organizers-notebook.md index 80a0c81d..94a8e8d5 100644 --- a/2020/organizers-notebook.md +++ b/2020/organizers-notebook.md @@ -98,13 +98,13 @@ Note that re-evaluating a defvar won't change the value, so if you want to chang STREAM - main organizer, CHECK - secondary organizer or volunteer, PAD - organizer focusing on pad -### Planning +## Planning - Collect e-mail addresses of accepted speakers into a list for easy pasting into Bcc (organizers' private wiki) - See submissions.org for Org scheduling code; 3 minutes of buffer was okay last time, but more would be better for Q&A; opening remarks time could be trimmed -#### Code for scheduling +### Code for scheduling (defun conf/get-talk-info () (let (talk results) @@ -268,7 +268,7 @@ STREAM - main organizer, CHECK - secondary organizer or volunteer, PAD - organiz (lambda () (org-entry-get (point) "MIN_TIME")) nil 'tree)))))))) -#### Generate schedule file +### Generate schedule file (defun conf/format-talk-link (talk) (and talk (if (plist-get talk :talk-id) @@ -425,7 +425,7 @@ Set the info based on submissions.org. (setq conf/info (conf/get-talk-info-from-file "submissions.org")) -### Before the conference +## Before the conference - Do tech checks and get alternative ways to contact speakers (phone number? IRC nick? Something that goes ding?) - Install Mute Tab extension if desired @@ -438,7 +438,7 @@ Set the info based on submissions.org. - Set up pad with Q1: Q2: Q3: Q4: slots -#### Tech check +### Tech check - Explain process - Test audio, webcam, screensharing, collaborative pad @@ -456,24 +456,24 @@ Set the info based on submissions.org. - Linux: share desktop, run cheese, set Always on Top -### During the conference +## During the conference -#### Start of streaming +### Start of streaming - STREAM starts streaming and has live0 relay - STREAM displays time on screen: `watch TZ=America/New_York date` ? - CHECK confirms stream and starts low-resolution mirror -##### ffmpeg: mirror main stream to low-resolution stream +#### ffmpeg: mirror main stream to low-resolution stream Needs the `$main480p` environment variable set to somethnig of the form `icecast://username:password@site:port/mount-point.webm`. Icecast configuration can be found on `live0` at `/etc/icecast2/icecast.xml`. It was okay to run this command directly on `live0` in 2020, since that kept the speed at roughly 1x. while true; do ffmpeg -f webm -reconnect_at_eof 1 -reconnect_streamed 1 -re -i http://localhost:8000/main.webm -vf scale=854:480 -f webm -c:a copy -b:v 500k -maxrate 1M -bufsize 1M -content_type video/webm -c:v libvpx $main480p done -#### Shortly before the presentation +### Shortly before the presentation - Speaker checks in via IRC ~30m before - CHECK directs speaker to available room @@ -498,7 +498,7 @@ Needs the `$main480p` environment variable set to somethnig of the form `icecast - PAD clears the pad colours and updates timestamp -#### During the presentation +### During the presentation - OR: - Live presentation? @@ -513,7 +513,7 @@ Needs the `$main480p` environment variable set to somethnig of the form `icecast - (It would be pretty cool if we can figure out how to make the previous talks available for watching) -#### Q&A +### Q&A - STREAM joins speaker's room if not already there - STREAM gives go-ahead to start Q&A @@ -523,35 +523,35 @@ Needs the `$main480p` environment variable set to somethnig of the form `icecast - STREAM goes to next talk when ready -#### Lunch break +### Lunch break - STREAM plays music - STREAM quickly highlights `#emacsconf-accessible`, Etherpad, notes -#### Scenarios +### Scenarios -##### Prerecorded presentations +#### Prerecorded presentations - STREAM will play it on the computer and stream from there (or ideally, send it directly to the stream) -##### Tech issues +#### Tech issues - If can't be easily resolved, play pre-recorded talk early and try again later (or follow up) - Stream a technical issues slide to the end point -#### Code for ERC +### Code for ERC -##### Load data +#### Load data (defvar conf/info nil "List of plists with the following keys: `:talk-id', `:name', `:speakers', and other info.") ; Set from submissions.org -##### Announce topics +#### Announce topics (defmacro conf/erc-with-channels (channel-list &rest forms) (declare (indent 1) (debug (form form body))) @@ -618,22 +618,22 @@ Needs the `$main480p` environment variable set to somethnig of the form `icecast (erc-send-message (s-join " " message)))) -### After the conference +## After the conference -#### Convert pad, copy sections to individual pages +### Convert pad, copy sections to individual pages This makes the links available right away -#### Split individual files +### Split individual files Post to individual pages, and make a talks page with durations. Change individual schedule pages to redirect to talks (or start there in the first place). Announcement example: -##### Splitting up the stream recording into individual files +#### Splitting up the stream recording into individual files NOTE: ffmpeg has a hard time splitting with -c:v copy unless it's on a keyframe boundary. If it isn't on a keyframe, then you'll have a few @@ -699,19 +699,19 @@ Further reading: -#### Collect speaker feedback +### Collect speaker feedback Another collaborative pad -#### Encode highly-compressed versions +### Encode highly-compressed versions -[Compressing video](#org8cc42f6) +[Compressing video](#org9a70982) - + -#### Compressing video +### Compressing video Thanks to ArneBab for this ffmpeg script which is now documented in [Extreme compression of Video with VP9 (webm) using ffmpeg](https://www.draketo.de/software/ffmpeg-compression-vp9-av1). We modified it to keep the original audio. @@ -728,17 +728,17 @@ Here's the original version which compresses audio too. Usage: compress-video-co nice ffmpeg -y -i $1 -c:v libvpx-vp9 -b:v 0 -crf $Q -aq-mode 2 -c:a libopus -b:a 12k -tile-columns 2 -tile-rows 2 -frame-parallel 0 -cpu-used -5 -auto-alt-ref 1 -lag-in-frames 25 -pass 2 -g 999 -threads 8 $2 -#### Upload to alternative video hosting platforms once main announcement has been out for a few days +### Upload to alternative video hosting platforms once main announcement has been out for a few days Create playlist, too -#### Add subtitles +### Add subtitles Take advantage of provided scripts or autogenerated files -##### Code sachac used to move sbv files from the Downloads directory +#### Code sachac used to move sbv files from the Downloads directory Autogenerated captions can save a bit of time when setting up captions. This code renames a downloaded file to match the current @@ -766,7 +766,7 @@ file's naming scheme and moves it to the right directory. To convert from SBV to VTT (used for the HTML5 video player) and fix timestamps so that they're not overlapping, install `python3-webtt` and run like this: `fix.py - emacsconf-2020--04-music-in-plain-text--jonathan-gregory.sbv`. + emacsconf-2020--04-music-in-plain-text--jonathan-gregory.sbv`. # Other useful tidbits -- cgit v1.2.3