Building an Open-Source based audio streaming platform
Maxime Bugeia
2 February 2020
Building an Open-Source based audio streaming platform Maxime - - PowerPoint PPT Presentation
Building an Open-Source based audio streaming platform Maxime Bugeia 2 February 2020 We stream audio! 2 French public broadcasting service 6 national channels 47 local channels 23 music webradios 2 Million listeners per day 200k
2 February 2020
2
3
4
5
6
Streaming server Master/Relay Architecture Single bitrate No cache
Segmented audio/video files Sliding Playlist (m3u8) Adaptive bitrate Better mobile experience Cacheable content
7
8
9
10
11
LOCAL CHANNELS WEBRADIOS NATIONAL CHANNELS WAN
12 MULTICAST
DIRECT CONNECT
LOCAL CHANNELS WEBRADIOS NATIONAL CHANNELS WAN
13 MULTICAST
DIRECT CONNECT
LOCAL CHANNELS WEBRADIOS NATIONAL CHANNELS WAN
14 MULTICAST
DIRECT CONNECT
15
LOCAL CHANNELS WEBRADIOS NATIONAL CHANNELS WAN
16 MULTICAST
DIRECT CONNECT
17
SRT CALLER 1 SRT CALLER 2 SRT LISTENER 1 SRT LISTENER 2
m a i n backup m a i n backup
b a c k u p s a t b a c k u p s a t
18
DIRECT CONNECT SAT BACKUP
19
20
21
DIRECT CONNECT SAT BACKUP
Transcoder Liquidsoap
22
Liquidsoap Icecast Master Nginx Icecast stream HLS stream Icecast stream
HLS files
23
24
25
26
27
28
29
30
31
Liquidsoap Icecast Master HLS files live.m3u8 live_hifi.m3u8 segment1.ts segmentxxx.ts
HLS stream Nginx Icecast stream Icecast stream
32
33
https://icecast.radiofrance.fr/fip-hifi.aac
HTTP :80 HTTPS :443
Transcoder 1 Transcoder 2 Icecast Relay 1 Icecast Relay 2 Icecast Relay X
AWS NLB
34
https://icecast.radiofrance.fr/fip-hifi.aac
HTTP :80 HTTPS :443
Transcoder 1 Transcoder 2 Icecast Relay 1 Icecast Relay 2 Icecast Relay X
AWS NLB
35
Transcoder 1 Transcoder 2 Varnish 1 Varnish 2 Varnish X
AWS NLB https://stream.radiofrance.fr/fip/fip.m3u8 https://stream.radiofrance.fr/fip/fip_hifi.m3u8 fip_aac_hifi_2_301960_1579533023.ts Segments Playlists
36
Transcoder 1 Transcoder 2 Varnish 1 Varnish 2 Varnish X
AWS NLB https://stream.radiofrance.fr/fip/fip.m3u8 https://stream.radiofrance.fr/fip/fip_hifi.m3u8 fip_aac_hifi_2_301960_1579533023.ts Segments Playlists
37
Transcoder 1 Transcoder 2 Varnish 1 Varnish 2 Varnish X
AWS NLB https://stream.radiofrance.fr/fip/fip.m3u8 https://stream.radiofrance.fr/fip/fip_hifi.m3u8 fip_aac_hifi_2_301960_1579533023.ts Segments Playlists
38
39
Liquidsoap Icecast Master Nginx Icecast stream HLS stream Icecast stream
HLS files
40
Liquidsoap Icecast Master Nginx Liquidsoap xxxx Icecast stream HLS stream Icecast stream
HLS files Liquidsoap xxxx Liquidsoap xxxx Liquidsoap xxxx Liquidsoap xxxx Liquidsoap xxxx
41
42
43
44
HLS access logs HTTP POST Json Custom logs Ingester HLS Icecast
Icecast prometheus Exporter
45
46
47
For internal use only / prepared with love
For internal use only / prepared with love
50
51
52
53
N L B Transcoders Segments HLS HTTP POST Segment Forwarder Storekeeper PGM PostgreSQL Bus RabbitMQ Cluster Kubernetes Segment .ts Playlists .m3u8 Player