3 | | The user facing documentation is published [wiki:broadcast here]. |
4 | | |
5 | | The May First/People Link live code lives on dee.mayfirst.org and is published via [https://gitlab.com/jamie/icecream gitlab]. |
6 | | |
7 | | It has two components: |
8 | | |
9 | | * A client component that users the [https://developer.mozilla.org/en-US/docs/Web/API/MediaStream_Recording_API/Using_the_MediaStream_Recording_API mediarecorder API] to capture and send a video stream. |
10 | | * A nodejs component to pipe the stream to ffmpeg, which sends it to icecast |
11 | | |
12 | | The code is installed on dee in /home/icream and the service is maintained via /etc/systemd/system/icecream.service. |
13 | | |
14 | | == Icecast == |
15 | | |
16 | | Our code is currently streaming to b.stream.mayfirst.org (sankara). |
17 | | |
18 | | Iceast is configured using [http://icecast.org/docs/icecast-2.4.1/auth.html the url method of authentication] plus wildcard mount points. |
19 | | |
20 | | In other words, we have the following mount point defined: |
21 | | |
22 | | {{{ |
23 | | <mount> |
24 | | <mount-name>/s-*</mount-name> |
25 | | <public>1</public> |
26 | | <authentication type="url"> |
27 | | <option name="stream_auth" value="http://localhost:3000"/> |
28 | | </authentication> |
29 | | </mount> |
30 | | }}} |
31 | | |
32 | | The s-* means it will match on any stream starting with s-. |
33 | | |
34 | | The authentication part says: whenever someone tries to authenticate this stream, send the username and password (via POST) to the given URL. |
35 | | |
36 | | This setting is complemented with a nodejs web app (published via `git://git.mayfirst.org/mfpl/icecast-stream-auth`) that is running on sankara in `/home/icecast-stream-auth` with the service managed via /etc/systemd/system/icecast-stream-auth. This web app simply passes the username and password on to our [wiki:login-service login service] and returns an appropriate answer to icecast. |
| 3 | This service has been discontinued. |