From c42aa40033fd9d16e1da51cccc56b6063d6eec6e Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Sat, 20 Nov 2021 20:17:07 -0500 Subject: Add custom IDs, streaming script --- playbook.org | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) (limited to 'playbook.org') diff --git a/playbook.org b/playbook.org index 1083a52e..49281f95 100644 --- a/playbook.org +++ b/playbook.org @@ -81,6 +81,9 @@ - Backchannel for easy viewing *** Start streaming :stream: +:PROPERTIES: +:CUSTOM_ID: start-streaming +:END: - HOST: Display getting-ready message - STREAM: Set up BBB view in organizer room to have HOST's webcam maximized @@ -103,6 +106,9 @@ ** Talk process *** Check in a speaker +:PROPERTIES: +:CUSTOM_ID: check-in +:END: Exception: [[*CHECK is unavailable][CHECK is unavailable]] @@ -139,6 +145,9 @@ Exception: [[*CHECK is unavailable][CHECK is unavailable]] *** Present talk +:PROPERTIES: +:CUSTOM_ID: present +:END: - CHECK marks previous talk as done and notes the time finished: - ${conf} @@ -165,6 +174,9 @@ Exception: [[*CHECK is unavailable][CHECK is unavailable]] - HOST nudges speaker verbally. *** Publish information +:PROPERTIES: +:CUSTOM_ID: publish +:END: - CHECK updates the schedule in: - ${conf} @@ -199,6 +211,9 @@ ${description} - wiki page for talk *** Handle Q&A +:PROPERTIES: +:CUSTOM_ID: questions +:END: Exceptions: - [[*Speaker has not checked in][Speaker has not checked in]] @@ -235,12 +250,18 @@ Exceptions: - [[*Present talk][Present next talk]] ** Break time +:PROPERTIES: +:CUSTOM_ID: break +:END: - CHECK stops and restarts the Toobnix restreaming process, and re-checks the stream - CHECK uses =conf-upcoming-add-subtree= to add the afternoon talks to upcoming.org - HOST doublechecks network transfer limit and server health ** End of stream +:PROPERTIES: +:CUSTOM_ID: end +:END: - CHECK stops ffmpeg process for Youtube - CHECK stops ffmpeg process for main-480p @@ -249,23 +270,35 @@ Exceptions: ** In case of... *** Last-minute prerecording submission +:PROPERTIES: +:CUSTOM_ID: last-minute-prerec +:END: - CHECK will copy it from the FTP upload server to ${protected} and name it appropriately. - CHECK will notify STREAM with the scp command and the mpv command so that STREAM can choose. *** Last-minute caption update +:PROPERTIES: +:CUSTOM_ID: last-minute-captions +:END: - CHECK uploads the --main.vtt file to ${protected} - CHECK notifies STREAM via ${upcoming} - STREAM uses the provided commands to download the VTT file and load it into MPV with =--sub-file= *** Speaker has not checked in +:PROPERTIES: +:CUSTOM_ID: missing +:END: - Let the previous talk run a little longer for Q&A; end at least in time for the prerec - After the previous Q&A wraps up, play the prerec - [? still not around after prerec finishes] - HOST: Speaker might be having some difficulty connecting, but we'll collect your questions on the pad and send them afterwards. - Can play next prerec a few minutes early *** Speaker does not have a prerec and has not checked in +:PROPERTIES: +:CUSTOM_ID: really-missing +:END: - Let the previous talk do live Q&A/demo if ready - Close to the time of the missing talk: - See if any of the previous speakers want to be set up for an impromptu talk/extension in a BBB room, just in case @@ -285,6 +318,9 @@ Exceptions: accept a prerecording afterwards, then include it on the site and in post-conference communication *** Alternate stream volunteer wants to stream (nice to have, at risk) +:PROPERTIES: +:CUSTOM_ID: alternate +:END: - CHECK gives ALTERNATE the BBB room URL for the talk they are interested in - ALTERNATE starts streaming to assigned end point - CHECK confirms stream @@ -295,24 +331,48 @@ Exceptions: - HOST sends ${alternate-url} to IRC: Alternate stream for ${title}: ${alternate-url} - ALTERNATE notifies #emacsconf-org when the stream is done. - CHECK updates ${stream-status} to note that the alternate stream is finished. + + FFMPEG process for sending the desktop and audio to the $CONFALT mountpoint on Linux with X11 and Alsa: + + 1. Set the CONFALT environment variable to icecast://user:password@live0.emacsconf.org:8000/alt.webm + 2. Install pavucontrol if you don't have it already. + 3. Start the following command: + #+begin_src sh :eval no :tangle playbook/stream-desktop-and-audio.sh + while 1; do ffmpeg -reconnect_at_eof 1 -reconnect_streamed 1 -loglevel 0 -ar 48000 -f alsa -channels 2 -sample_rate 48000 -i default -re -video_size 1280x720 -framerate 25 -f x11grab -i :0.0 -cluster_size_limit 2M -cluster_time_limit 5100 -content_type video/webm -c:v libvpx -b:v 1M -crf 30 -g 125 -deadline good -threads 4 -f webm $CONFALT; done + #+end_src + 4. Use pavucontrol to set the recording source for the ffmpeg + command to be the audio monitor, so you get system output as + well. *** Pad malfunction or mess-up +:PROPERTIES: +:CUSTOM_ID: pad-broken +:END: - PAD resets the pad using https://etherpad.wikimedia.org/p/emacsconf-2021/timeslider - [? still not recovered] - PAD reimports the pad from backup *** CRDT malfunctions +:PROPERTIES: +:CUSTOM_ID: crdt-broken +:END: - HOST notifies CHECK and tries reconnecting - [? still doesn't work] - Switch to backup Etherpad *** Conduct guidelines issue +:PROPERTIES: +:CUSTOM_ID: conduct +:END: - HOST addresses it (on-camera if needed) with a reminder and/or a kick or a ban *** CHECK is unavailable +:PROPERTIES: +:CUSTOM_ID: check-gone +:END: - HOST does check-ins - HOST refers to conf.org for Q&A preference etc. @@ -322,10 +382,16 @@ Exceptions: - Updating schedule/wiki on the fly *** HOST is unavailable +:PROPERTIES: +:CUSTOM_ID: host-gone +:END: - Either STREAM or CHECK does hosting *** Technical issues during a live presentation +:PROPERTIES: +:CUSTOM_ID: live-issues +:END: - HOST tries to contact the speaker - [? back on track] @@ -338,6 +404,9 @@ Exceptions: be able to follow up after the conference *** Big technical issues with streaming +:PROPERTIES: +:CUSTOM_ID: stream-issues +:END: - HOST notifies #emacsconf and #emacsconf-org and pad - HOST updates the 2021.md wiki page @@ -349,6 +418,9 @@ Exceptions: - STREAM e-mails the mailing list *** live0 can't handle the load or is close to network transfer limit +:PROPERTIES: +:CUSTOM_ID: network +:END: - OR: - Redirect some viewers via asking in #emacsconf: @@ -358,6 +430,9 @@ Exceptions: - Add additional node to Linode account for shared transfer pool (TODO: doublecheck) * Before the conference +:PROPERTIES: +:CUSTOM_ID: before +:END: ** Help speakers with tech checks - Explain process - Test audio, webcam, screensharing, collaborative pad -- cgit v1.2.3