summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--2021/prepare.md2
-rw-r--r--playbook.md87
-rw-r--r--playbook.org36
3 files changed, 114 insertions, 11 deletions
diff --git a/2021/prepare.md b/2021/prepare.md
index 5a24bb17..115d8432 100644
--- a/2021/prepare.md
+++ b/2021/prepare.md
@@ -120,7 +120,7 @@ WebM format if possible.*
If you would like to compress your video before uploading, the following shell script may be useful:
- Q=56
+ Q=32
ffmpeg -y -i "$1" -c:v libvpx-vp9 -b:v 0 -crf $Q -aq-mode 2 -an -tile-columns 0 -tile-rows 0 -frame-parallel 0 -cpu-used 8 -auto-alt-ref 1 -lag-in-frames 25 -g 240 -pass 1 -f webm -threads 8 /dev/null &&
ffmpeg -y -i "$1" -c:v libvpx-vp9 -b:v 0 -crf $Q -c:a copy -tile-columns 2 -tile-rows 2 -frame-parallel 0 -cpu-used -5 -auto-alt-ref 1 -lag-in-frames 25 -pass 2 -g 240 -threads 8 "$2"
diff --git a/playbook.md b/playbook.md
index d8c04274..eb9b9833 100644
--- a/playbook.md
+++ b/playbook.md
@@ -2,6 +2,9 @@
# Table of Contents
- [Roles/values](#roles)
+- [After the conference](#orgac70a06)
+ - [Update captions](#org1e43b2c)
+ - [Update](#org4cfcaec)
- [Thursday or Friday before the conference](#days-before)
- [On the day of the conference](#day-of)
- [Set up](#setup)
@@ -33,6 +36,8 @@
- [Before the conference](#before)
- [Help speakers with tech checks](#tech-checks)
- [Experiment with setup to allow MPV / BBB sound isolation](#sound)
+ - [Compress video](#orgf31a1d7)
+ - [Check for video encoding issues](#org7482155)
<!-- This file was automatically generated from playbook.org. Instead of editing the .md, please edit the .org and republish. Thanks! -->
@@ -147,10 +152,64 @@
<td class="org-left">${live-alt}</td>
<td class="org-left"><a href="file://ssh:front:/var/www/live.emacsconf.org/alt.html">file://ssh:front:/var/www/live.emacsconf.org/alt.html</a></td>
</tr>
+
+
+<tr>
+<td class="org-left">${profile}</td>
+<td class="org-left"><a href="file://ssh:live:~/.profile">file://ssh:live:~/.profile</a></td>
+</tr>
+
+
+<tr>
+<td class="org-left">${emacsconf-el}</td>
+<td class="org-left"><a href="https://git.emacsconf.org/emacsconf-el/">https://git.emacsconf.org/emacsconf-el/</a></td>
+</tr>
+
+
+<tr>
+<td class="org-left">&#xa0;</td>
+<td class="org-left">&#xa0;</td>
+</tr>
</tbody>
</table>
+<a id="orgac70a06"></a>
+
+# After the conference
+
+
+<a id="org1e43b2c"></a>
+
+## Update captions
+
+- Merge them into the video with `add-captions.sh`
+
+ #!/usr/bin/zsh
+ BASE="${1%.*}"
+ BASE="${BASE%--main}"
+ ffmpeg -y -i "$1" ${BASE}--main.vtt
+ if [ -f "${BASE}--normalized.webm" ]; then
+ ffmpeg -y -i "$1" -i "${BASE}--normalized.webm" -c:a copy -c:v copy "${BASE}--captioned.webm"
+ else
+ ffmpeg -y -i "$1" -i "${BASE}--compressed.webm" -c:a copy -c:v copy "${BASE}--captioned.webm"
+ fi
+ cp ${BASE}--main.vtt ${BASE}--chapters.vtt ~/vendor/emacsconf-wiki/2021/captions
+ scp "${BASE}--captioned.webm" "${BASE}--main.webm"
+ scp "${BASE}--main.webm" front:~/protected
+ scp "${BASE}--main.vtt" front:~/protected
+ scp "${BASE}--chapters.vtt" front:~/protected
+ ssh front 'cd protected; chmod ugo+r *'
+- Update Toobnix and Youtube captions with `conf-video-share`.
+- Update Toobnix and Youtube descriptions with chapters.
+- Update ${conf-year}/${captions}/${slug}.md in the wiki. To make this from scratch, use `M-x conf-prepare-transcript-directives` from the talk heading in the conference Org file.
+
+
+<a id="org4cfcaec"></a>
+
+## Update
+
+
<a id="days-before"></a>
# Thursday or Friday before the conference
@@ -188,7 +247,7 @@
done
- Computer for alternate streaming:
- Open browser for joining BBB
- - Open MPV for playing <https://live0.emacsconf.org/main.webm>
+ - Open MPV for playing <http://live0.emacsconf.org:8000/main.webm>
- HOST:
- rsync the newest &#x2013;main.webm from front: rsync -avze ssh front:/var/www/media.emacsconf.org/2021/protected/\*&#x2013;main.webm .
- Check OBS scenes for sharing windows/tabs as a virtual camera:
@@ -404,10 +463,13 @@ Exceptions:
## End of stream
+- CHECK removes live Q&A links
- CHECK stops ffmpeg process for Youtube
- CHECK stops ffmpeg process for Toobnix
- CHECK stops ffmpeg process for main-480p
- STREAM stops streaming
+- B updates the status pages
+- bandali figures out the downstream
<a id="exceptions"></a>
@@ -641,3 +703,26 @@ redirect the mpv output to the mpv sink.
pacmd list-sink-inputs # notice the ID for the process you want to redirect
pacmd move-sink-input 1 mpv
+
+<a id="orgf31a1d7"></a>
+
+## Compress video
+
+Usage: `compress-video.sh original-file output-file`:
+
+ Q=32
+ ffmpeg -y -i "$1" -c:v libvpx-vp9 -b:v 0 -crf $Q -aq-mode 2 -an -tile-columns 0 -tile-rows 0 -frame-parallel 0 -cpu-used 8 -auto-alt-ref 1 -lag-in-frames 25 -g 240 -pass 1 -f webm -threads 8 /dev/null &&
+ ffmpeg -y -i "$1" -c:v libvpx-vp9 -b:v 0 -crf $Q -c:a copy -tile-columns 2 -tile-rows 2 -frame-parallel 0 -cpu-used -5 -auto-alt-ref 1 -lag-in-frames 25 -pass 2 -g 240 -threads 8 "$2"
+
+We tried using q56 before, but it was a little too aggressive. Q=32 is the default and is probably a reasonable space vs. quality compromise.
+
+
+<a id="org7482155"></a>
+
+## Check for video encoding issues
+
+Sometimes the compression may get cut off. You can use
+`compile-media-verify-video-frames` from
+<https://github.com/sachac/compile-media> to check that videos have
+enough frames for their expected duration
+
diff --git a/playbook.org b/playbook.org
index db03fac4..d47dc9e1 100644
--- a/playbook.org
+++ b/playbook.org
@@ -18,18 +18,19 @@
| HOST | hosting, streaming, intros, reading, moving questions/answers around | zaeph |
| ${protected} | [[/ssh:front:/var/www/media.emacsconf.org/2021/protected/]] |
-| ${stream-status} | [[/ssh:front:/var/www/live.emacsconf.org/index.html]] |
+| ${stream-status} | [[/ssh:front:/var/www/live.emacsconf.org/index.html]] |
| ${upcoming} | upcoming.org shared over CRDT |
| ${conf} | conf.org shared over CRDT |
| ${playbook} | playbook.org shared over CRDT |
| ${dump} | [[/ssh:live:/data/]] |
| ${media} | [[/ssh:front:/var/www/media.emacsconf.org/2021/]] |
-| ${live-main} | [[/ssh:front:/var/www/live.emacsconf.org/main.html]] |
-| ${live-480p} | [[/ssh:front:/var/www/live.emacsconf.org/main-480p.html]] |
-| ${live-index} | [[/ssh:front:/var/www/live.emacsconf.org/index.html]] |
-| ${live-alt} | [[/ssh:front:/var/www/live.emacsconf.org/alt.html]] |
-| ${profile} | [[/ssh:live:~/.profile]] |
-
+| ${live-main} | [[/ssh:front:/var/www/live.emacsconf.org/main.html]] |
+| ${live-480p} | [[/ssh:front:/var/www/live.emacsconf.org/main-480p.html]] |
+| ${live-index} | [[/ssh:front:/var/www/live.emacsconf.org/index.html]] |
+| ${live-alt} | [[/ssh:front:/var/www/live.emacsconf.org/alt.html]] |
+| ${profile} | [[/ssh:live:~/.profile]] |
+| ${emacsconf-el} | https://git.emacsconf.org/emacsconf-el/ |
+| | |
* After the conference
** Update captions
@@ -54,6 +55,9 @@
- Update Toobnix and Youtube captions with =conf-video-share=.
- Update Toobnix and Youtube descriptions with chapters.
- Update ${conf-year}/${captions}/${slug}.md in the wiki. To make this from scratch, use =M-x conf-prepare-transcript-directives= from the talk heading in the conference Org file.
+** Update
+
+
* Thursday or Friday before the conference
:PROPERTIES:
@@ -540,8 +544,22 @@ redirect the mpv output to the mpv sink.
pacmd list-sink-inputs # notice the ID for the process you want to redirect
pacmd move-sink-input 1 mpv
#+end_src
-** Check for video encoding issues
+** Compress video
+
+Usage: =compress-video.sh original-file output-file=:
-Sometimes the compression may get cut off.
+#+begin_src sh :eval no :tangle compress-video.sh
+Q=32
+ffmpeg -y -i "$1" -c:v libvpx-vp9 -b:v 0 -crf $Q -aq-mode 2 -an -tile-columns 0 -tile-rows 0 -frame-parallel 0 -cpu-used 8 -auto-alt-ref 1 -lag-in-frames 25 -g 240 -pass 1 -f webm -threads 8 /dev/null &&
+ffmpeg -y -i "$1" -c:v libvpx-vp9 -b:v 0 -crf $Q -c:a copy -tile-columns 2 -tile-rows 2 -frame-parallel 0 -cpu-used -5 -auto-alt-ref 1 -lag-in-frames 25 -pass 2 -g 240 -threads 8 "$2"
+#+end_src
+
+We tried using q56 before, but it was a little too aggressive. Q=32 is the default and is probably a reasonable space vs. quality compromise.
+
+** Check for video encoding issues
+Sometimes the compression may get cut off. You can use
+=compile-media-verify-video-frames= from
+https://github.com/sachac/compile-media to check that videos have
+enough frames for their expected duration