summaryrefslogtreecommitdiffstats
path: root/organizers-notebook/index.org
diff options
context:
space:
mode:
authorSacha Chua <sacha@sachachua.com>2024-11-11 11:56:43 -0500
committerSacha Chua <sacha@sachachua.com>2024-11-11 11:56:43 -0500
commit0a836323d1ca15b73f907187cfde237383b02c29 (patch)
treeae0a10731f14abba06e784e98aee2810415a49ff /organizers-notebook/index.org
parentd441adc7f22deedcd700dff2ed128be439f5babc (diff)
downloademacsconf-wiki-0a836323d1ca15b73f907187cfde237383b02c29.tar.xz
emacsconf-wiki-0a836323d1ca15b73f907187cfde237383b02c29.zip
update watch pages, infra
Diffstat (limited to '')
-rw-r--r--organizers-notebook/index.org209
1 files changed, 209 insertions, 0 deletions
diff --git a/organizers-notebook/index.org b/organizers-notebook/index.org
index a43a8044..50dc9158 100644
--- a/organizers-notebook/index.org
+++ b/organizers-notebook/index.org
@@ -230,12 +230,19 @@ Process:
Checklist:
- [ ] IRC
+ - [ ] Manual announcements
+ - [ ] Automated announcements
- [ ] Web conference
- [ ] Streaming assets
+ - [ ] Overlays
+ - [ ] Intros
- [ ] OBS
+- [ ] VNC
- [ ] Publishing to the wiki
- [ ] Publishing to the media server
- [ ] Etherpad
+- [ ] Mumble
+- [ ] Icecast
** Getting ready for captions
@@ -244,7 +251,209 @@ Onboarding:
- Add captioner to conf.org with the ~:caption:~ tag, under a Volunteers heading with the ~volunteer~ tag. Make sure the ~EMAIL~ property is set.
- Add captioner to emacsconf-org mailing list.
- Send backstage information elisp:emacsconf-mail-backstage-info-to-volunteer . (Can be sent to all captioning volunteers with elisp:emacsconf-mail-backstage-info-to-captioning-volunteers)
+* General infrastructure
+** Icecast
+:PROPERTIES:
+:CUSTOM_ID: icecast
+:END:
+
+Success: You can use [[#obs-instructions][OBS+VNC to record]], and the results can be viewed by mpv.
+- [X] Gen
+- [X] Dev
+Also, recordings are available in /data.
+
+New year:
+
+1. Reprovision with
+ #+begin_src sh :eval no
+ ansible-playbook -i inventory.yml prod-playbook.yml --tags stream
+ #+end_src
+ so that the year is updated in the configuration.
+2. SSH to live0.emacsconf.org and run ~/etc/init.d/emacsconf stop~. Confirm that icecast has stopped with ~ps | grep emacsconf~; if not, kill the process.
+ Start it again with ~/etc/init.d/emacsconf start~
+3. To test, you can use FFmpeg like this for the gen stream:
+ #+begin_src sh
+ ffmpeg -y -f lavfi -i testsrc=size=1280x720:rate=10 -i background-music.opus \
+ -c:v libvpx -b:v 500K -crf 25 -b:a 128k \
+ -content_type video/webm "icecast://emacsconf:$EMACSCONF_ICECAST_SOURCE_PASSWORD@live0.emacsconf.org:8001/gen.webm"
+ #+end_src
+ For dev:
+ #+begin_src sh
+ ffmpeg -y -f lavfi -i testsrc=size=1280x720:rate=10 -i background-music.opus \
+ -c:v libvpx -b:v 500K -crf 25 -b:a 128k \
+ -content_type video/webm "icecast://emacsconf:$EMACSCONF_ICECAST_SOURCE_PASSWORD@live0.emacsconf.org:8001/dev.webm"
+ #+end_src
+ and then view it with
+ #+begin_src sh
+ mpv https://live0.emacsconf.org/gen.webm
+ #+end_src
+
+** Watching pages
+:PROPERTIES:
+:CUSTOM_ID: watch
+:END:
+
+Success: You can watch at https://live.emacsconf.org.
+- [X] https://live.emacsconf.org goes to the current year's page.
+- [X] gen stream works in the browser
+- [X] dev stream works in the browser
+- [X] Schedule is correct
+
+New year:
+1. ansible-playbook -i inventory.yml prod-playbook.yml --tags live
+2. Republish with elisp:emacsconf-publish-watch-pages.
+3. Update front:/var/www/live.emacsconf.org.
+
+Set up test streams (see ffmpeg instructions from [[#icecast][Icecast]]) and then:
+
+
+** IRC web client
+
+Success:
+- [X] You can join from https://chat.emacsconf.org
+- [X] You can join from https://live.emacsconf.org and the channels end up as the latest ones
+
+Remember to schedule a task to ask libera.chat to increase the number of users it will accept from chat.emacsconf.org to avoid connection exhaustion errors.
+
+Message I've posted to support@libera.chat:
+
+Thank you for running libera.chat. We're looking forward to using IRC
+(#emacsconf-gen, #emacsconf-dev) for the discussions for the upcoming
+EmacsConf (Dec 7-8, https://emacsconf.org). In the past, we've needed to
+coordinate with Libera staff to increase the number of connections
+allowed from chat.emacsconf.org during conference days in order to avoid
+connection exhaustion errors. Is that something we can plan now or would
+you like me to bring it up a few days before the conference?
+** Etherpad
+
+Success:
+
+- [X] pad.emacsconf.org redirects to this year's entry
+- [X] Each talk has its own Etherpad
+
+** Manual IRC announcements
+
+Success:
+
+- [ ] You can /opall, /conftopic, and /broadcast
+
+
+** Automated IRC announcements
+
+** VNC
+:PROPERTIES:
+:CUSTOM_ID: vnc
+:END:
+
+We use VNC to connect to the X servers on res.emacsconf.org so that we can stream from it.
+
+Success:
+- [X] Confirm that you can connect to emacsconf-gen via VNC
+- [X] Confirm that you can connect to emacsconf-dev via VNC
+
+Setting up
+- elisp:emacsconf-publish-res-index
+
+**** Instructions
+:PROPERTIES:
+:CUSTOM_ID: vnc-instructions
+:END:
+
+NOTE: VNC+OBS doesn't work well if you have a window manager that
+automatically resizes windows, like i3. Please configure your window
+manager so that the VNC window is not resized.
+
+ 1. Install a VNC viewer on your system (ex: tigervnc-viewer).
+
+ 2. Set up your local environment:
+
+ - gen: export TRACK=gen; export TRACK_PORT=5905; export SSH_PORT=46668
+ - dev: export TRACK=dev; export TRACK_PORT=5906; export SSH_PORT=46668
+
+ 3. Copy the password:
+
+ scp emacsconf-$TRACK@res.emacsconf.org:~/.vnc/passwd vnc-passwd-$TRACK -p $SSH_PORT
+
+ 4. Forward your local ports and connect via VNC viewer to the
+ appropriate forwarded port from your laptop:
+
+ #+begin_example
+ ssh emacsconf-$TRACK@res.emacsconf.org -N -L $TRACK_PORT:127.0.0.1:$TRACK_PORT -p $SSH_PORT &
+ sleep 5 # Give it time to establish the tunnels
+ xvncviewer 127.0.0.1:$TRACK_PORT -shared -geometry 1280x720 -passwd vnc-passwd-$TRACK &
+ #+end_example
+
+If you get the following error:
+
+#+begin_example
+channel 2: open failed: connect failed: Connection refused
+CConn: End of stream
+CConn: The connection was dropped by the server before the session could
+ be established.
+#+end_example
+
+then the VNC server hasn't started yet. You can start it with
+
+#+begin_src sh :eval no
+ssh emacsconf-$TRACK@res.emacsconf.org -p $SSH_PORT /home/emacsconf-$TRACK/bin/track-vnc
+#+end_src
+
+and then connect with:
+
+#+begin_src sh :eval no
+xvncviewer 127.0.0.1:$TRACK_PORT -shared -geometry 1280x720 -passwd vnc-passwd-$TRACK &
+#+end_src
+
+** Streaming with OBS
+
+Success: Confirm that you can stream
+- [ ] gen
+- [ ] dev
+
+New year: reprovision with
+
+#+begin_src sh :eval no
+ansible-playbook -i inventory.yml prod-playbook.yml --tags obs
+#+end_src
+
+so that the year is updated in the shell scripts.
+
+**** Instructions
+:PROPERTIES:
+:CUSTOM_ID: obs-instructions
+:END:
+
+1. [[#vnc-instructions][Connect to the VNC session for the track.]]
+
+2. Start *recording* (not streaming). If you don't see OBS when you connect, it's probably on workspace 2, so you can switch with Alt-2. If you still don't see it there, you can open a terminal with Alt-Enter and then run ~track-obs~. After you start recording, confirm that it is now broadcasting to the stream.
+
+3. Verify with MPV on your local system:
+
+ #+begin_example
+ mpv https://live0.emacsconf.org/$TRACK.webm &
+ #+end_example
+
+*** Icecast
+:PROPERTIES:
+:CUSTOM_ID: icecast
+:END:
+
+Success: You can use [[#obs-instructions][OBS+VNC to record]], and the results can be viewed by mpv.
+- [ ] gen
+- [ ] dev
+
+New year: reprovision with
+
+#+begin_src sh :eval no
+ansible-playbook -i inventory.yml prod-playbook.yml --tags stream
+#+end_src
+
+so that the year is updated in the configuration.
+This is on live.emacsconf.org and can be restarted with =/etc/init.d/emacsconf restart=.
+** Low-res stream
+** Restream to YouTube
+** Restream to Toobnix
* Other process notes
:PROPERTIES:
:CUSTOM_ID: other