From 7894bc33982bd414b7fdea5619574d44a84113c2 Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Thu, 3 Nov 2022 15:34:01 -0400 Subject: Add notes on stream --- 2022/organizers-notebook/index.org | 145 ++++++++++++++++++++++++++++--------- 1 file changed, 112 insertions(+), 33 deletions(-) diff --git a/2022/organizers-notebook/index.org b/2022/organizers-notebook/index.org index 48d50561..8e3b284f 100644 --- a/2022/organizers-notebook/index.org +++ b/2022/organizers-notebook/index.org @@ -471,6 +471,25 @@ zaeph is available on 2022-11-06 - [ ] Message on the schedule - [ ] Prerec live - [ ] Wind everything down + +*** Create test + +gst-launch-1.0 compositor name=mix sink_1::xpos=1180 sink_1::ypos=470 ! videoconvert ! autovideosink filesrc location=community-title.svg ! rsvgdec ! imagefreeze num_buffers=100 ! mix. videotestsrc ! video/x-raw,width=400,height=300 ! mix. audiotestsrc freq ! autoaudiosink + +gst-launch-1.0 compositor name=mix sink_1::xpos=1200 sink_1::ypos=600 ! videoconvert ! autovideosink \ +filesrc location=community-title.svg ! rsvgdec ! imagefreeze num_buffers=100 ! mix. \ +filesrc location=background.opus ! oggdemux ! opusdec ! audioconvert ! audioresample ! mix. +videotestsrc ! video/x-raw,width=400,height=300,framerate=25/1 num_buffers=(25 * (4 * 60 + 5)) ! mix. + +gst-launch-1.0 webmmux name=mux ! filesink location=community.webm \ +compositor name=mix sink_1::xpos=1200 sink_1::ypos=600 ! videoconvert ! vp8enc ! queue ! mux.video_0 \ +filesrc location=community-title.svg ! rsvgdec ! imagefreeze num_buffers=2450 ! mix. \ +filesrc location=background.opus ! oggdemux ! opusdec ! audioconvert ! audioresample ! vorbisenc ! queue ! mux.audio_0 \ +videotestsrc num_buffers=2450 ! video/x-raw,width=400,height=300,framerate=10/1 ! mix. + +1251,/home/sacha/proj/emacsconf/private/assets/titles% find -name community-title.svg -exec inkscape --export-type=png --export-width=1280 --export-height=720 --export-background-opacity=0 {} \; + + ** TODO [#C] Smoothen captioning workflow :sachac: :PROPERTIES: :CUSTOM_ID: caption-workflow @@ -829,60 +848,120 @@ 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 -- [ ] Share the window instead of the desktop? - [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 - -Process on res: +- [ ] Share the window instead of the desktop? + +*** Set up connection to the track -1. Copy the vnc password file - - scp emacsconf-gen@res:~/.vnc/passwd vnc-passwd-gen - - scp emacsconf-dev@res:~/.vnc/passwd vnc-passwd-dev -1. Start up the VNC server if it's not already running - - Gen: ssh emacsconf-gen@res.emacsconf.org -L 5905:127.0.0.1:5905 -L 6005:127.0.0.1:6005 "~/bin/track-vnc; sleep infinity" - - Dev: ssh emacsconf-dev@res.emacsconf.org -L 5906:127.0.0.1:5906 -L 6006:127.0.0.1:6006 "~/bin/track-vnc; sleep infinity" -2. Connect via VNC viewer to the appropriate forwarded port from your laptop - - Gen: xvncviewer 127.0.0.1:5905 -shared -geometry 1280x720 -passwd vnc-passwd-gen - - Dev: xvncviewer 127.0.0.1:5906 -shared -geometry 1280x720 -passwd vnc-passwd-dev -3. Load something with audio in Firefox, and start playing it. -4. Use pavucontrol to make sure the Firefox process is going into the $track-qa sink. +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 -L $TRACK_PORT:127.0.0.1:$TRACK_PORT "~/bin/track-vnc; sleep infinity" + +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 + +5. Set up a viewer so that you can monitor the stream + + mpv https://live0.emacsconf.org/emacsconf/$TRACK.webm + +*** Connect to the conf file on res.emacsconf.org -To play an MPV file, ssh to the appropriate account and: +ssh orga@res.emacsconf.org +emacsclient -a -c -nw -~/bin/track-mpv files +*** Play a talk -To change the displayed text, echo text to ~/url.txt, ~/news.txt, or ~/bottom.txt like this: +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 -ssh emacsconf-dev@res.emacsconf.org "echo emacsconf.org/2021/talks/project > ~/url.txt" +From the agenda, you can use ~C-c C-t~ to set the talk status: -or use ~emacsconf-stream-set-talk-info~ or ~emacsconf-stream-write-news~, -or use the TODO state change hook set up with ~emacsconf-add-org-after-todo-state-change-hook~. +| 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 | -To kill the VNC server: +If the video doesn't play automatically when the talk changes to PLAYING, you can play it manually with: + +#+begin_src sh :eval no +ssh emacsconf-$TRACK@res.emacsconf.org +cd /data/emacsconf/2022/stream +~/bin/track-mpv file +#+end_src + +*** Do Q&A + +From the emacsclient on orga@res.emacsconf.org, you can open various talk-related things: +- emacsconf-stream-open-pad +- emacsconf-stream-join-qa +- emacsconf-stream-join-chat + +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. + +*** Other tasks as needed + +**** Display emergency news / announcements + +M-x emacsconf-stream-broadcast to send a message to both streams +or M-x emacsconf-stream-set-news to send a message to one stream. + +If that doesn't work, edit the news file directly with: +~ssh emacsconf-$TRACK@res.emacsconf.org > ~/news.txt~ + +If that doesn't work, use the VNC session to switch to an Emacs window +and type your message in. +**** Kill the VNC server: ssh emacsconf-gen@res.emacsconf.org "vncserver -kill" ssh emacsconf-dev@res.emacsconf.org "vncserver -kill" | ~/bin/track-obs | start OBS with the track's profile and scene collection | | ~/bin/track-mpv file.webm | play the file using the track's sink | - +*** Other notes There are sockets in the home directory for MPV control if you want to keep that process. echo '{ "command": ["loadfile", "test2.webm"] }' | socat - ~/mpv-socket-emacsconf-dev -After you start recording in OBS, -watch at https://live.emacsconf.org/2022/watch/dev/ or https://live.emacsconf.org/2022/watch/gen/ -i3 cheat sheet: -- M-RET: terminal -- M-f: toggle full-screen -- M-w: switch to tabbed view -- M-j: go to next window -- M-shift-SPC: toggle floating -- to resize a window, right-click-drag on its title bar -*** TODO Move my conf.org setup to res so that we can control everything from there +*** DONE Move my conf.org setup to res so that we can control everything from there +CLOSED: [2022-11-03 Thu 14:10] *** TODO Set timers for echoing text into the appropriate places and starting videos -*** TODO Use xdotool to automate joining BBB in Firefox (signing in, clicking on listen only) +*** TODO Figure out how to work with the layout +https://i3wm.org/docs/layout-saving.html + + + +*** TODO [#C] Use xdotool to automate joining BBB in Firefox (signing in, clicking on listen only) *** TODO [#C] Experiment with sharing part of the screen so that there's space for us to work a little off-screen We might just have to rely on xdotool to move windows the way we want them -- cgit v1.2.3