From 915d537894e53c9546a9f7d2a60c2ce16a390b17 Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Mon, 7 Nov 2022 11:41:29 -0500 Subject: Streaming notes update --- 2022/organizers-notebook/index.org | 306 +++++++++++++++---------------------- 1 file changed, 126 insertions(+), 180 deletions(-) (limited to '2022/organizers-notebook/index.org') diff --git a/2022/organizers-notebook/index.org b/2022/organizers-notebook/index.org index bd340db1..31878275 100644 --- a/2022/organizers-notebook/index.org +++ b/2022/organizers-notebook/index.org @@ -124,6 +124,25 @@ SCHEDULED: <2022-11-11 Fri> :END: *** TODO Update logbook with notes from e-mails :zaeph: *** TODO Follow up with speakers based on their availability +** TODO Make a linear hyperlist for managing EmacsConf :sachac: +:PROPERTIES: +:CUSTOM_ID: hyperlist +:END: + + +- 9:05 Journalism + - [X] [[elisp:(emacsconf-update-talk-status "journalism" "." "PLAYING")][Start talk]] + - [X] [[elisp:(emacsconf-update-talk-status "journalism" "." "CLOSED_Q")][Start closed Q&A]] + - [ ] [[elisp:(emacsconf-update-talk-status "journalism" "." "OPEN_Q")][Open Q&A]] + - [ ] [[elisp:(emacsconf-update-talk-status "journalism" "." "UNSTREAMED_Q")][Mark Q&A as unstreamed]] + - [ ] [[elisp:(emacsconf-update-talk-status "journalism" "." "TO_ARCHIVE")][Finish talk]] +- 9:40 Handwritten + - [ ] [[elisp:(emacsconf-update-talk-status "handwritten" "." "PLAYING")][Start talk]] + - [ ] [[elisp:(emacsconf-update-talk-status "handwritten" "." "CLOSED_Q")][Start closed Q&A]] + - [ ] [[elisp:(emacsconf-update-talk-status "handwritten" "." "OPEN_Q")][Open Q&A]] + - [ ] [[elisp:(emacsconf-update-talk-status "handwritten" "." "UNSTREAMED_Q")][Mark Q&A as unstreamed]] + - [ ] [[elisp:(emacsconf-update-talk-status "handwritten" "." "TO_ARCHIVE")][Finish talk]] + ** DONE Send schedule-published email for emacsconf-discuss :needsowner:timesensitive:email: CLOSED: [2022-11-01 Tue 08:50] SCHEDULED: <2022-10-31 Mon> DEADLINE: <2022-10-31 Mon> :PROPERTIES: @@ -322,7 +341,9 @@ placeholder text Overlay considerations: - talk videos will likely have subtitles; no subtitles for Q&A - zaeph doesn't like vertical text - +*** TODO Generate talk banners :sachac: +https://gitlab.com/akshay196/emacsconf-artwork/-/blob/main/2022/talk-banner/sample.svg + ** TODO Create protocol for live Q&A :zaeph: :PROPERTIES: :CUSTOM_ID: live-protocol @@ -486,126 +507,6 @@ Agenda: - Consider whether we want to prioritize local OBS (more screen real estate) or stream OBS (easier swapping, can be controlled remotely) - Consider whether we want mumble to be able to quickly add audio; how do we want to set it up scene-wise? -*** Broadcasting from local OBS - - You can copy the profile from your track or look inside it for the icecast mount point details: - - - Gen: rsync -avze ssh emacsconf-gen@res.emacsconf.org:~/.config/obs-studio/basic/profiles/ ~/.config/obs-studio/basic/profiles/ - - Dev: rsync -avze ssh emacsconf-dev@res.emacsconf.org:~/.config/obs-studio/basic/profiles/ ~/.config/obs-studio/basic/profiles/ - - - Sacha will turn off the OBS recordings on res so that you can test streaming from your computer - - If you're doing this independently, you can jump ahead to "Test connecting to the VNC" in order to stop the recording yourself - - - Verify with MPV: - #+begin_example - mpv https://live0.emacsconf.org/emacsconf/gen.webm - mpv https://live0.emacsconf.org/emacsconf/dev.webm - #+end_example - - - With luck, the 480p streams will be up automatically as well - #+begin_example - mpv https://live0.emacsconf.org/emacsconf/gen-480p.webm - mpv https://live0.emacsconf.org/emacsconf/dev-480p.webm - #+end_example - -*** Connecting to the track VNC - - 1. Stop broadcasting locally if you were testing local OBS. - - 2. Install a VNC viewer on your system (ex: tigervnc-viewer). - - 3. Set up your local environment: - - - gen: export TRACK=gen; export TRACK_PORT=5905 - - dev: export TRACK=dev; export TRACK_PORT=5906 - 4. Copy the password: - - scp emacsconf-$TRACK@res.emacsconf.org:~/.vnc/passwd vnc-passwd-$TRACK - - 5. Forward your local ports and connect via VNC viewer to the - appropriate forwarded port from your laptop: - - ssh emacsconf-$TRACK@res.emacsconf.org -N -L $TRACK_PORT:127.0.0.1:$TRACK_PORT & - xvncviewer 127.0.0.1:$TRACK_PORT -shared -geometry 1280x720 -passwd vnc-passwd-$TRACK & - - (If this doesn't find a VNC server to connect to, you can start it with ~ssh emacsconf-$TRACK@res.emacsconf.org ~/bin/track-vnc~) - - 6. Start recording. It's probably on workspace 2, so you can switch with Alt-2. Confirm that it is now broadcasting to the stream. - - 7. Verify with MPV on your local system: - #+begin_example - mpv https://live0.emacsconf.org/emacsconf/$TRACK.webm & - #+end_example - - 8. With luck, the 480p streams will be up automatically as well. On your local system: - #+begin_example - mpv https://live0.emacsconf.org/emacsconf/$TRACK-480p.webm & - #+end_example - - 9. Play a video. It should display the video and update the overlays. If you need to update the overlays manually, you can copy files from ~/data/emacsconf/overlays~ onto ~$HOME/other.png~ and ~$HOME/video.png~. - - #+begin_example - cd /data/emacsconf/stream/2022 - track-mpv filename.webm - #+end_example - - 10. Test Q&A. You can either wait for the video to finish or quit it with "q". - You can paste in the URLs or use - ~firefox /data/emacsconf/2022/index-$TRACK.html~ - - i3 cheat sheet: - - Alt-Enter creates a terminal - - Alt-d runs a command - - Alt-e toggles horizontal/vertical split - - Alt-f toggles full-screen - - Alt-w switches to tabbed view - - Alt-1 switches to workspace 1, Alt-2 switches to workspace 2 - - Alt-Shift-2 moves things to workspace 2 - - Alt-Shift-Left moves the current window to the left - - Alt-Shift-Right moves the current window to the right - - - Use OBS or ~pavucontrol~ to adjust the volume of BBB as needed. - - - Start an Emacs for emergency announcements. - -*** Managing the stream from the agenda - -ssh orga@res.emacsconf.org -p 46668 -emacsclient -c -nw -a emacs - -You can then use - -- emacsconf-stream-play-video -- emacsconf-stream-open-qa-windows-on-change -- emacsconf-agenda-by-track -- emacsconf-agenda - -If things are going well, you can use C-c C-t on the agenda view to change a talk to PLAYING, CLOSED_Q, or OPEN_Q, and various things should happen in the background. If they don't happen in the background, use emacsconf-add-org-after-todo-state-change-hook to add the todo state change hook, then try again. - -Task state shortcuts for C-c C-t: - -- m (mpv) :: PLAYING - -stream-play-video, emacsconf-stream-set-talk-info, publish the files to the media directory -- q (Q&A) :: CLOSED_Q -- o (open) :: update the BBB redirect URLs to let people into the room -- u (unstreamed) -- r (to archive) - -You can leave the emacsclient with ~C-x 5 0~ - -*** Test list for managing EmacsConf - -- 9:05 Journalism - - [X] [[elisp:(emacsconf-update-talk-status "journalism" "." "PLAYING")][Start talk]] - - [X] [[elisp:(emacsconf-update-talk-status "journalism" "." "CLOSED_Q")][Start closed Q&A]] - - [ ] [[elisp:(emacsconf-update-talk-status "journalism" "." "OPEN_Q")][Open Q&A]] - - [ ] [[elisp:(emacsconf-update-talk-status "journalism" "." "UNSTREAMED_Q")][Mark Q&A as unstreamed]] - - [ ] [[elisp:(emacsconf-update-talk-status "journalism" "." "TO_ARCHIVE")][Finish talk]] -- 9:40 Handwritten - - [ ] [[elisp:(emacsconf-update-talk-status "handwritten" "." "PLAYING")][Start talk]] - - [ ] [[elisp:(emacsconf-update-talk-status "handwritten" "." "CLOSED_Q")][Start closed Q&A]] - - [ ] [[elisp:(emacsconf-update-talk-status "handwritten" "." "OPEN_Q")][Open Q&A]] - - [ ] [[elisp:(emacsconf-update-talk-status "handwritten" "." "UNSTREAMED_Q")][Mark Q&A as unstreamed]] - - [ ] [[elisp:(emacsconf-update-talk-status "handwritten" "." "TO_ARCHIVE")][Finish talk]] - *** Checklist for later dry run 1. Streams @@ -845,7 +746,6 @@ SCHEDULED: <2022-12-14 Wed> :CUSTOM_ID: watch-css :END: - *** TODO Add start and end attributes to the brief stuff for possible JS/CSS :PROPERTIES: :CREATED: [2022-10-20 Thu 22:26] @@ -1048,74 +948,131 @@ CLOSED: [2022-11-06 Sun 18:16] DEADLINE: <2022-11-20 Sun> :CUSTOM_ID: streaming :END: -Current status +Current status: - res.emacsconf.org seems to be able to handle 2x (OBS + TigerVNC + MPV, should test with Firefox as well) - +- corwin and jman will stream gen from OBS on res +- bandali will stream dev from his laptop +- let sachac know if you want manual control or more autopilot for the gen stream + Goals: - [X] Be able to start a VNC server with OBS, MPV, and Firefox, connect to it, and stream - [X] Have another session with the sound isolated -- [X] Split the audio so that we can join the Q&A room before the MPV ends - handled by automatic scene switcher detecting mpv -- [X] Control MPV from the commandline: track-mpv appears in the correct display, and it can also be controlled via the socket like this: - echo '{ "command": ["loadfile", "test2.webm"] }' | socat - ~/mpv-socket-emacsconf-dev +- [-] Split the audio so that we can join the Q&A room before the MPV ends - handled by automatic scene switcher detecting mpv, but we can't share just a window, so we might as well just wait +- [X] Control MPV from the commandline: track-mpv appears in the correct display, and it can also be controlled via the socket like this: echo '{ "command": ["loadfile", "test2.webm"] }' | socat - ~/mpv-socket-emacsconf-dev - [ ] Share the window instead of the desktop? + +*** Broadcasting from local OBS (optional) + - You can copy the profile from your track or look inside it for the icecast mount point details: + + - Gen: rsync -avze 'ssh -p 46668' emacsconf-gen@res.emacsconf.org:~/.config/obs-studio/basic/profiles/ ~/.config/obs-studio/basic/profiles/ + - Dev: rsync -avze 'ssh -p 46668' emacsconf-dev@res.emacsconf.org:~/.config/obs-studio/basic/profiles/ ~/.config/obs-studio/basic/profiles/ + + - Sacha will turn off the OBS recordings on res so that you can test streaming from your computer + - If you're doing this independently, you can jump ahead to "Test connecting to the VNC" in order to stop the recording yourself -*** Set up connection to the track + - Verify with MPV: + #+begin_example + mpv https://live0.emacsconf.org/emacsconf/gen.webm + mpv https://live0.emacsconf.org/emacsconf/dev.webm + #+end_example + + - With luck, the 480p streams will be up automatically as well + #+begin_example + mpv https://live0.emacsconf.org/emacsconf/gen-480p.webm + mpv https://live0.emacsconf.org/emacsconf/dev-480p.webm + #+end_example + +*** Connecting to the track VNC + + 1. Stop broadcasting locally if you were testing local OBS. + + 2. Install a VNC viewer on your system (ex: tigervnc-viewer). + + 3. 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 + 4. Copy the password: -1. Set up your local environment - - gen: export TRACK=gen; export TRACK_PORT=5905 - dev: export TRACK=dev; export TRACK_PORT=5906 - -2. Copy the vnc password file - - scp emacsconf-$TRACK@res:~/.vnc/passwd vnc-passwd-$TRACK - -3. Start up the VNC server if it's not already running - - ssh emacsconf-$TRACK@res.emacsconf.org "~/bin/track-vnc" + scp emacsconf-$TRACK@res.emacsconf.org:~/.vnc/passwd vnc-passwd-$TRACK -p $SSH_PORT + + 5. Forward your local ports and connect via VNC viewer to the + appropriate forwarded port from your laptop: -4. Forward your local ports + #+begin_example + ssh emacsconf-$TRACK@res.emacsconf.org -N -L $TRACK_PORT:127.0.0.1:$TRACK_PORT -p $SSH_PORT & + xvncviewer 127.0.0.1:$TRACK_PORT -shared -geometry 1280x720 -passwd vnc-passwd-$TRACK & + #+end_example + + (If this doesn't find a VNC server to connect to, you can start it with ~ssh emacsconf-$TRACK@res.emacsconf.org -p $SSH_PORT ~/bin/track-vnc~) - ssh emacsconf-$TRACK@res.emacsconf.org -N -L $TRACK_PORT:127.0.0.1:$TRACK_PORT & - -4. Connect via VNC viewer to the appropriate forwarded port from your laptop - - xvncviewer 127.0.0.1:$TRACK_PORT -shared -geometry 1280x720 -passwd vnc-passwd-$TRACK + 6. 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. Confirm that it is now broadcasting to the stream. + + 7. Verify with MPV on your local system: + #+begin_example + mpv https://live0.emacsconf.org/emacsconf/$TRACK.webm & + #+end_example + + 8. With luck, the 480p streams will be up automatically as well. On your local system: + #+begin_example + mpv https://live0.emacsconf.org/emacsconf/$TRACK-480p.webm & + #+end_example -5. Set up a viewer so that you can monitor the stream + 9. Play a video. It should display the video and update the overlays. If you need to update the overlays manually, you can copy files from ~/data/emacsconf/overlays~ onto ~$HOME/other.png~ and ~$HOME/video.png~. + + #+begin_example + cd /data/emacsconf/stream/2022 + track-mpv filename.webm + #+end_example + + i3 cheat sheet: + - Alt-Enter creates a terminal + - Alt-d runs a command + - Alt-e toggles horizontal/vertical split + - Alt-f toggles full-screen + - Alt-w switches to tabbed view + - Alt-1 switches to workspace 1, Alt-2 switches to workspace 2 + - Alt-Shift-2 moves things to workspace 2 + - Alt-Shift-Left moves the current window to the left + - Alt-Shift-Right moves the current window to the right - mpv https://live0.emacsconf.org/emacsconf/$TRACK.webm - -*** Connect to the conf file on res.emacsconf.org -ssh orga@res.emacsconf.org + 10. Test Q&A. You can either wait for the video to finish or quit it with "q". + You can paste in the URLs or use + ~firefox /data/emacsconf/2022/index-$TRACK.html~ + + - Use OBS or ~pavucontrol~ to adjust the volume of BBB as needed. + + - Start an Emacs for emergency announcements. + +*** Managing the stream from the agenda + +ssh orga@res.emacsconf.org -p $SSH_PORT emacsclient -c -nw -a emacs -*** Play a talk +You can then use -Shortcuts for navigating to a talk -- C-c e a a :: agenda -- C-c e a g :: gen agenda -- C-c e a d :: dev agenda -- C-c e t :: emacsconf-go-to-talk +- emacsconf-stream-play-video +- emacsconf-stream-open-qa-windows-on-change +- emacsconf-agenda-by-track +- emacsconf-agenda -From the agenda, you can use ~C-c C-t~ to set the talk status: +If things are going well, you can use C-c C-t on the agenda view to change a talk to PLAYING, CLOSED_Q, or OPEN_Q, and various things should happen in the background. If they don't happen in the background, use emacsconf-add-org-after-todo-state-change-hook to add the todo state change hook, then try again. -| m (mpv) | PLAYING | emacsconf-stream-play-video, emacsconf-stream-set-talk-info | -| q | CLOSED_Q | | -| o | OPEN_Q | update the BBB redirect URLs to let people into the room | +Task state shortcuts for C-c C-t: -If the video doesn't play automatically when the talk changes to PLAYING, you can play it manually with: +- m (mpv) :: PLAYING - -stream-play-video, emacsconf-stream-set-talk-info, publish the files to the media directory +- q (Q&A) :: CLOSED_Q +- o (open) :: update the BBB redirect URLs to let people into the room +- u (unstreamed) +- r (to archive) -#+begin_src sh :eval no -ssh emacsconf-$TRACK@res.emacsconf.org -cd /data/emacsconf/2022/stream -~/bin/track-mpv file -#+end_src +You can leave the emacsclient with ~C-x 5 0~ -*** Do Q&A + +**** Do Q&A From the emacsclient on orga@res.emacsconf.org, you can open various talk-related things: - emacsconf-stream-open-pad @@ -1126,17 +1083,6 @@ Alternatively, you can switch to the VNC viewer and use the links in file:///data/emacsconf/2022/index-gen.html or file:///data/emacsconf/2022/index-dev.html . -i3 cheat sheet: - -- Alt-e toggles horizontal/vertical split -- Alt-f toggles full-screen -- Alt-w switches to tabbed view -- Alt-1 switches to workspace 1, Alt-2 switches to workspace 2 -- Alt-Shift-2 moves things to workspace 2 -- Alt-Shift-Left moves the current window to the left -- Alt-Shift-Right moves the current window to the right -- Alt-Enter creates a terminal - For Q&A, you may want to have the Etherpad on the left, the BBB Q&A or IRC chat on the right, and the terminal and OBS windows on workspace 2. @@ -1312,7 +1258,7 @@ https://emacsconf.org/2022/decisions/#schedule Ideas to consider: - Toggling local time display on the schedule - Making organizers-notebook nicer to browse through (or maybe use organice?) -- Improve the video player (resolution switching?) +- Improve the video player (resolution switching? chapter markers?) - https://github.com/sampotts/plyr for video? *** BLOCKED ?: Figure out JS and CSS niceties that will make organizers-notebook more enjoyable to browse through :css:js: -- cgit v1.2.3