summaryrefslogtreecommitdiffstats
path: root/2020/organizers-notebook.md
diff options
context:
space:
mode:
authorSacha Chua <sacha@sachachua.com>2020-12-12 00:53:27 -0500
committerSacha Chua <sacha@sachachua.com>2020-12-12 00:53:27 -0500
commit1d2f0dec62f3695d50ef4bb1400aa2f71d775135 (patch)
treeae39186f9dfdeb5189fe72610e0c7a90c82f750e /2020/organizers-notebook.md
parent4dac85ef27c35d526edcb5c6bc1965bb26f84472 (diff)
downloademacsconf-wiki-1d2f0dec62f3695d50ef4bb1400aa2f71d775135.tar.xz
emacsconf-wiki-1d2f0dec62f3695d50ef4bb1400aa2f71d775135.zip
Fix heading level
Diffstat (limited to '2020/organizers-notebook.md')
-rw-r--r--2020/organizers-notebook.md62
1 files changed, 31 insertions, 31 deletions
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: <https://lists.gnu.org/r/emacsconf-discuss/2020-12/msg00000.html>
-##### 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:
<http://blog.webmproject.org/2010/05/inside-webm-technology-vp8-alternate.html>
-#### Collect speaker feedback
+### Collect speaker feedback
Another collaborative pad
-#### Encode highly-compressed versions
+### Encode highly-compressed versions
-[Compressing video](#org8cc42f6)
+[Compressing video](#org9a70982)
-<a id="org8cc42f6"></a>
+<a id="org9a70982"></a>
-#### 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 <subtitles/fix.py> 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