Project

General

Profile

Video Release Process » History » Version 1

tnt, 01/15/2022 04:10 PM

1 1 tnt
h1. Video Release Process
2
3
Unless the presenter has an objection, talks are recorded and published afterward. This page details the current process.
4
5
Note that the process uses "Davinci Resolve":https://www.blackmagicdesign.com/products/davinciresolve/ for the editing. It's not OSS but this is what I'm used to and have already setup for other jobs, so this is what I use.
6
7
h2. Source material
8
9
The BBB instance raw stream dump can be downloaded just by looking up the link in the page source. Or simply using the script below and feeding it the meeting ID which is in the URL when viewing the raw stream dump through the BBB interface.
10
11
Once downloaded, ffmpeg is used to repackage the video streams in `mp4` container and transcode the audio from OPUS into FLAC to bring them into containers/formats that the linux version of resolve can load. (Note newer version of resolve should support MKV now, but that hasn't been tried. Sticking with the "tried and working" process for now).
12
13
<pre><code class="shell">
14
#!/bin/bash
15
set -e
16
17
ODC_SLUG="$1"
18
MEETING_ID="$2"
19
20
curl -o "tmp_webcams.webm"   "https://meeting4.franken.de/presentation/${MEETING_ID}/video/webcams.webm"
21
curl -o "tmp_deskshare.webm" "https://meeting4.franken.de/presentation/${MEETING_ID}/deskshare/deskshare.webm"
22
23
ffmpeg -i "tmp_webcams.webm"   -vn -c:a flac -sample_fmt s16 "${ODC_SLUG}-audio.flac"
24
ffmpeg -i "tmp_webcams.webm"   -an -c:v copy                 "${ODC_SLUG}-webcam-vp9.mp4"
25
ffmpeg -i "tmp_deskshare.webm" -an -c:v copy                 "${ODC_SLUG}-screen-vp9.mp4"
26
27
rm "tmp_webcams.webm" "tmp_deskshare.webm"
28
</code></pre>
29
30
31
h2. Edit
32
33
FIXME
34
35
36
h2. Local encode
37
38
Once the master render is done, the file is transcoded into a few formats more suitable for online viewing using ffmpeg using the script below :
39
Theses are relatively low bitrates but perfectly fine for "slides" type of content with voice-over in 720p.
40
(Note the script is design to work on a machine with a NVidia card and driver to have hw acceleration of h264 and h265 encoding)
41
42
<pre><code class="shell">
43
#!/bin/bash
44
set -e
45
46
ODC_SLUG="$1"
47
ODC_RENDER_PATH="$2"
48
ODC_RENDER_MASTER="${ODC_RENDER_PATH}/osmodevcall-${ODC_SLUG}_master.mov"
49
50
ffmpeg \
51
	-hwaccel cuda -hwaccel_output_format cuda \
52
	-i ${ODC_RENDER} \
53
	-c:v h264_nvenc -b:v 1M -pix_fmt yuv420p \
54
	-c:a aac -b:a 96k \
55
	"${ODC_RENDER_PATH}/osmodevcall-${ODC_SLUG}_h264_420.mp4"
56
57
ffmpeg \
58
	-hwaccel cuda -hwaccel_output_format cuda \
59
	-i ${ODC_RENDER} \
60
	-c:v hevc_nvenc -b:v 512k -pix_fmt yuv420p \
61
	-c:a aac -b:a 96k \
62
	"${ODC_RENDER_PATH}/osmodevcall-${ODC_SLUG}_h265_420.mp4"
63
64
ffmpeg \
65
	-i ${ODC_RENDER} \
66
	-c:v libvpx-vp9 -b:v 400k \
67
	-c:a libopus -b:a 80k \
68
	"${ODC_RENDER_PATH}/osmodevcall-${ODC_SLUG}_vp9.webm"
69
</code></pre>
70
71
72
h2. VOC upload
73
74
The final step is to feed the master render to the VOC rendering pipeline so the talk can be published on https://media.ccc.de .
75
76
FIXME
Add picture from clipboard (Maximum size: 48.8 MB)