From 6aa1ff1ec4d3c066d5a3933966f3d29f81e6601f Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Tue, 23 Nov 2021 20:14:03 -0500 Subject: Add notes on ALSA --- playbook.org | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/playbook.org b/playbook.org index 4f99f066..80e3bbf9 100644 --- a/playbook.org +++ b/playbook.org @@ -479,4 +479,31 @@ Exceptions: - Try to record name pronunciation - Encourage webcam for Q&A, although make it clear that it's totally optional - Possible picture-in-picture approach to maximize screen real estate - +** Experiment with setup to allow MPV / BBB sound isolation + +Set MIC and OUTPUT appropriately. + +#+begin_src sh :eval no +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 +#+end_src + +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. + +#+begin_src sh :eval no +pacmd list-sink-inputs # notice the +pacmd move-sink-input 1 mpv +#+end_src + -- cgit v1.2.3 From d9a8d950a0f40fbc6e8b3edc2f0811ff29f441b0 Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Tue, 23 Nov 2021 20:24:23 -0500 Subject: Let's try using straight HTML for the video insertion --- 2021/info/news-schedule.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/2021/info/news-schedule.md b/2021/info/news-schedule.md index 45baaf21..906474c4 100644 --- a/2021/info/news-schedule.md +++ b/2021/info/news-schedule.md @@ -6,9 +6,10 @@ Duration: 4:28
Saturday, Nov 27 2021, ~ 9:05 AM - 9:10 AM EST
Saturday, Nov 27 2021, ~ 6:05 AM - 6:10 AM PST
Saturday, Nov 27 2021, ~ 2:05 PM - 2:10 PM UTC
Saturday, Nov 27 2021, ~ 3:05 PM - 3:10 PM CET
Saturday, Nov 27 2021, ~ 4:05 PM - 4:10 PM EET
Saturday, Nov 27 2021, ~ 7:35 PM - 7:40 PM IST
Saturday, Nov 27 2021, ~10:05 PM - 10:10 PM +08
Saturday, Nov 27 2021, ~11:05 PM - 11:10 PM JST
Find out how to watch and participate
[[!inline pages="internal(2021/inline-alternate)" raw="yes"]] -[[!template vidid="mainVideo" id=vid src="https://media.emacsconf.org/2021/emacsconf-2021-news--emacs-news-highlights--sacha-chua--main.webm" size="6.4M" subtitles="../../captions/emacsconf-2021-news--emacs-news-highlights--sacha-chua--main.vtt" duration="4:28"]] -[Download .org](https://media.emacsconf.org/2021/emacsconf-2021-news--emacs-news-highlights--sacha-chua.org) - + # Description -- cgit v1.2.3 From 3a4a44436033bd8cb91514e5b3f0ea9b4eb1d522 Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Tue, 23 Nov 2021 20:26:39 -0500 Subject: Fix URL --- 2021/info/news-schedule.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/2021/info/news-schedule.md b/2021/info/news-schedule.md index 906474c4..d33bfd1f 100644 --- a/2021/info/news-schedule.md +++ b/2021/info/news-schedule.md @@ -9,8 +9,7 @@ Duration: 4:28 - + # Description -- cgit v1.2.3 From ace67ad104fd21823dfb6b45021bf95205a487e0 Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Tue, 23 Nov 2021 20:32:32 -0500 Subject: Fix links --- 2021/info/news-schedule.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/2021/info/news-schedule.md b/2021/info/news-schedule.md index d33bfd1f..beefe9d7 100644 --- a/2021/info/news-schedule.md +++ b/2021/info/news-schedule.md @@ -9,7 +9,7 @@ Duration: 4:28 + # Description -- cgit v1.2.3 From d5170e8cd387f16c97a506b18dbe75ba1828c7e9 Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Tue, 23 Nov 2021 23:04:18 -0500 Subject: Add ALSA notes --- playbook.md | 43 +++++++++++++++++++++++++++++++++++++------ 1 file 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) @@ -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 +- HOST: Confirm that the stream is live at - STREAM: Update the status page to say that the stream is live - CHECK: Start low-resolution stream, confirm at 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. @@ -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 + + + +## 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 + -- cgit v1.2.3