summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--playbook.md43
1 files changed, 37 insertions, 6 deletions
diff --git a/playbook.md b/playbook.md
index 6b16988a..d4f8439b 100644
--- a/playbook.md
+++ b/playbook.md
@@ -33,6 +33,7 @@
- [live0 can't handle the load or is close to network transfer limit](#network)
- [Before the conference](#before)
- [Help speakers with tech checks](#tech-checks)
+ - [Experiment with setup to allow MPV / BBB sound isolation](#org76b68a3)
<!-- This file was automatically generated from playbook.org. Instead of editing the .md, please edit the .org and republish. Thanks! -->
@@ -213,19 +214,20 @@
- HOST: Display getting-ready message
- STREAM: Set up BBB view in organizer room to have HOST's webcam maximized
- STREAM: Start streaming from OBS to local Icecast, relay to live0 icecast
-- CHECK: Confirm that the stream is live at <https://live.emacsconf.org/main.webm>
+- HOST: Confirm that the stream is live at <https://live.emacsconf.org/main.webm>
- STREAM: Update the status page to say that the stream is live
- CHECK: Start low-resolution stream, confirm at <https://live.emacsconf.org/main-480p.webm>
Call this on live0 with $CONF480PASS as the first parameter. The Icecast configuration is on `live0` at `/etc/icecast2/icecast.xml`.
PASS=$1
while true; do ffmpeg -loglevel 24 -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 icecast://ec2020main480pmu:$PASS@localhost:8000/main-480p.webm; done
-- CHECK: Start Youtube stream. Call this with $YOUTUBE1PASS, $YOUTUBE2PASS, or $TOOBNIX as the parameter
+- CHECK: Start Youtube and Toobnix streams. Call this with $YOUTUBE1PASS, $YOUTUBE2PASS, or $TOOBNIX as the parameter
MOUNT=$1
while true; do ffmpeg -loglevel 24 -i http://localhost:8000/main.webm -cluster_size_limit 2M -cluster_time_limit 5100 -b:v 1M -crf 30 -g 125 -deadline good -threads 4 -vcodec libx264 -acodec libmp3lame -f flv $MOUNT; done
-- CHECK: Verify the alternate streams and the load on live0.
-- CHECK: Verify with #emacsconf that the stream is active
+- CHECK: Verify YouTube and Toobnix streams and the CPU load on live0.
+- HOST: Verify with #emacsconf that the stream is active.
+- CHECK: Start alternate stream on second laptop. Point to main stream for now.
<a id="talk"></a>
@@ -329,7 +331,8 @@ Exception: [CHECK is unavailable](#check-gone)
- Mark it as public.
- Add it to the EmacsConf 2021 playlist.
- [? live sections ]
- - CHECK does a rough-cut of the recording from ${dump} to get the last X minutes or by time range
+ - CHECK does a rough-cut of the recording from ${dump} to get the last X minutes or by time range. There's about a 1-2 minute delay.
+ Ex: `(kill-new (conf-dump-get "alt" "10:24" "10:30" "qa_"))`
- When there's an opportunity to do so:
- CHECK finetunes the rough-cut recording (trim start and end) and posts it to:
- media.emacsconf.org/2021
@@ -345,6 +348,7 @@ Exceptions:
- [Speaker has not checked in](#missing)
- [? live]
+ - CHECK-alternate joins the BBB room.
- HOST joins the BBB room
- HOST starts recording in BBB or confirms that it's already recording
- STREAM joins meeting and gives go-ahead
@@ -356,7 +360,7 @@ Exceptions:
- HOST adds note to IRC/Etherpad that speakers can answer in any order, skip questions, answer afterwards, etc.
- [? Q&A needs to be wrapped up]
- HOST writes in Etherpad/IRC or nudges speaker verbally.
- - CHECK notes the time that the live Q&A finished.
+ - CHECK notes the time that the live Q&A finished and switches back to the main stream on CHECK-alternate.
- [? IRC/pad]
- HOST and STREAM switch to organizer BBB meeting (room S)
- HOST describes Q&A method and shows it on the screen
@@ -592,3 +596,30 @@ Exceptions:
- Encourage webcam for Q&A, although make it clear that it's totally optional
- Possible picture-in-picture approach to maximize screen real estate
+
+<a id="org76b68a3"></a>
+
+## Experiment with setup to allow MPV / BBB sound isolation
+
+Set MIC and OUTPUT appropriately.
+
+ MIC=alsa_input.usb-046d_0819_A68D6BE0-02.mono-fallback
+ OUTPUT=alsa_output.pci-0000_00_1b.0.analog-stereo
+ if [ "$1" == "-u" ]; then
+ pactl unload-module module-loopback
+ pactl unload-module module-null-sink
+ else
+ pacmd load-module module-null-sink sink_name=recording sink_properties=device.description=recording channels=2
+ pacmd load-module module-null-sink sink_name=mpv sink_properties=device.description=mpv
+ pacmd load-module module-loopback source=$MIC sink=recording
+ pacmd load-module module-loopback source=mpv.monitor sink=recording
+ pacmd load-module module-loopback source=recording.monitor sink=$OUTPUT
+ fi
+
+You can probably then use `pavucontrol` (choose All Streams instead of
+Applications on the Playback tab) or something like the following to
+redirect the mpv output to the mpv sink.
+
+ pacmd list-sink-inputs # notice the
+ pacmd move-sink-input 1 mpv
+