Skip to content

Commit 474d0d4

Browse files
committed
Add a page covering the the different video streaming systems we've used
so far.
1 parent 135a9c6 commit 474d0d4

File tree

1 file changed

+87
-0
lines changed

1 file changed

+87
-0
lines changed

content/projects/video/history.md

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
---
2+
title: "Video Streaming Project History"
3+
date: 2025-03-09T13:18:35+08:00
4+
draft: true
5+
---
6+
7+
Over the years, PLUG has gone through multiple generations of its
8+
video recording/streaming system.
9+
10+
## Version 1: DVswitch
11+
12+
The first recording system was based on [DVswitch][DVswitch]. This was
13+
a client/server video mixing system:
14+
15+
* Clients read DV video or audio sources, and send it over the network.
16+
* Server provides a UI allowing an editor to mix audio and video
17+
sources in real time to stream online or record to disk.
18+
19+
Our video sources were:
20+
21+
* [Canon Vixia HV30][Canon] DV camcorders.
22+
* [Canopus Twinpact 100][Twinpact] VGA capture device. Connected
23+
between presenter's laptop and projector to capture their slides.
24+
25+
Both devices provided a DV video feed over Firewire, which could be
26+
captured by a laptop and sent over the network using
27+
`dvsource-firewire`.
28+
29+
Microphone audio was routed via a small mixing board that appeared as
30+
a USB sound card, which was sent via `dvsource-alsa`.
31+
32+
These would all feed in to DVswitch, which would produce an output
33+
stream that could be sent to an Icecast server for streaming and
34+
written to disk for later processing.
35+
36+
[DVswitch]: https://web.archive.org/web/20180326132702/http://dvswitch.alioth.debian.org/wiki/
37+
[Canon]: https://global.canon/en/c-museum/product/dhc738.html
38+
[Twinpact]: https://archive.org/details/manualzz-id-908869
39+
40+
41+
## Version 2: BigBlueButton
42+
43+
In 2020 during the COVID pandemic lockdowns, we started investigating
44+
ways of holding meetings remotely. One piece of software we considered
45+
was [BigBlueButton][BBB]: an Open Source web based video conferencing
46+
system with a focus on classroom style meetings with a single
47+
presenter talking to a large audience members.
48+
49+
While we never ended up using BBB for fully remote meetings, it did
50+
offer a way to improve our ability to record in-person meetings:
51+
52+
* Through the use of an HDMI capture device, we could make our
53+
existing cameras appear as USB webcams.
54+
* As the mixing board acts as a USB sound card, so behave similar to a
55+
headset.
56+
* The presenter could log in to BBB to show slides or screen share.
57+
58+
We could then live stream the meeting to anyone not present in-person,
59+
and produce a recording.
60+
61+
It also offered a few benefits over the old DVswitch system:
62+
63+
* No dependence on Firewire: these expansion cards could be a bit
64+
unreliable and it was getting hard to source replacements.
65+
* We were no longer limited to standard definition video.
66+
67+
One downside was that recordings live within the BigBlueButton
68+
instance. Rather than a single video, the slides, screen share, and
69+
webcam footage are all served separately and stitched together by a
70+
web app. This would be a problem if we ever wanted to move off of BBB.
71+
72+
To solve this, we wrote [bbb-render][bbb-render]: some scripts to
73+
download the various files that make up a recording and assemble them
74+
into a [GStreamer Editing Services][GES] project. This could then
75+
render out a single video file suitable for archive and publication on
76+
YouTube.
77+
78+
This also gave an opportunity to add some PLUG branding, in the form
79+
of opening and closing cards and a backdrop.
80+
81+
[BBB]: https://bigbluebutton.org/
82+
[bbb-render]: https://github.com/plugorgau/bbb-render
83+
[GES]: https://gstreamer.freedesktop.org/documentation/gst-editing-services/
84+
85+
86+
## Version 3: OBS Studio?
87+

0 commit comments

Comments
 (0)