cdn

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revisionBoth sides next revision
cdn [2020/10/10 20:49] ischluffcdn [2024/01/29 00:19] ischluff
Line 1: Line 1:
 = CDN = CDN
-Diese Doku beschreibt unser Live-Streaming CDN, wie es seit dem 34C3 existiert. Anfang 2020 wurde das Verteilen der Transcoder-Prozesse automatisiert, und die Doku entsprechend angepasst. Das File-CDN wird dagegen auf [[software:voctoweb]] beschrieben. 
  
-== Architektur +<bootnote> 
-Die CDN-Kaskade hat 5 Stufen: Master-Encoder, Transcoder, Fanout, Transport-/Master-Relays und schließlich Edge-Relays.+This documentation describes our Livestreaming CDN as of 2024. 
 + 
 +The File-CDN for media.ccc.de is described on [[software:voctoweb]]. 
 +</bootnote> 
 + 
 + 
 + 
 +== The Future of Streaming 
 + 
 +For redundancy and ease of use the CDN is managed by a distributed system built on consul. 
 + 
 +Damit ist es möglich redundante CDN-Master sowie redundante Ingest-Server zu betreiben und trotzdem ein Web-Backend mit allen relevanten Streaming-Infos bereitzustellen. Weiterhin könnte die Streaming-Webseite intelligent auf das Vorhandensein/Fehlen von Streams im CDN reagieren und zusätzliche Metadaten von Encodern verarbeiten. 
 + 
 +Ein weiterer Vorteil des angedachten Setups sind deutlich geringere Latenz durch den fehlenden Fanout, sowie deutlich schnellere Stream-Restarts durch aktive Benachrichtigung der Transcoder. 
 + 
 +=== Übersicht 
 +{{drawio>diagram1.png}} 
 + 
 +==== Repo Links 
 +  * Stream-api, Upload-Proxy, Upload-Server: https://github.com/voc/stream-api 
 +  * rtmp-auth daemon: https://github.com/voc/rtmp-auth 
 +  * Transcoding-Script: https://github.com/voc/transcoding 
 + 
 +== Architecture 
 +The CDN-Cascade has 6 stages: Master-Encoder, Ingest, Transcoder, Fanout, Master-Relays and finally Edge-Relays.
  
 {{:cdn_overview.png?1200|}} {{:cdn_overview.png?1200|}}
  
 === 1. Master-Encoder === 1. Master-Encoder
 +The master stream encoding is created near the stage on the encoder PC running voctomix or on with other videoencoder for third party streams.
 +The master encoding contains a 1080p25 video signal.
 Das Master-Encoding entsteht auf dem encoder-cube im Saal aus dem Ausgabesignal des Voctomix. Das Master-Encoding enthält den Mix als 1080p25 in h264 sowie die Slides als 1080p5 in h264 mit bis zu drei Audiospuren in AAC (Native, Translated, Translated-2). Wahlweise können die Übersetzerspuren sowie die Slide-Spur weggelassen werden. Alle Spuren werden in einem Matroska-Container verpackt. Das Master-Encoding entsteht auf dem encoder-cube im Saal aus dem Ausgabesignal des Voctomix. Das Master-Encoding enthält den Mix als 1080p25 in h264 sowie die Slides als 1080p5 in h264 mit bis zu drei Audiospuren in AAC (Native, Translated, Translated-2). Wahlweise können die Übersetzerspuren sowie die Slide-Spur weggelassen werden. Alle Spuren werden in einem Matroska-Container verpackt.
  
Line 136: Line 161:
 Die endgültigen Stream-URLs für einen Beispielstream sX sind dann wie folgt: Die endgültigen Stream-URLs für einen Beispielstream sX sind dann wie folgt:
  
-MPEG-DASH (Multi-Qualität + Multi-Lang)+MPEG-DASH (VPx Multi-Qualität + Multi-Lang)
 * http://cdn.c3voc.de/dash/sX/manifest.mpd * http://cdn.c3voc.de/dash/sX/manifest.mpd
  
-HLS (Multi-Qualität + Multi-Lang) +HLS (h.264 Multi-Qualität + Multi-Lang) 
-* http://cdn.c3voc.de/sX_native_hd.m3u8 +* http://cdn.c3voc.de/hls/sX/native_hd.m3u8
-* http://cdn.c3voc.de/sX_native_sd.m3u8 (nur SD, aber Multi-Lang)+
  
-VPx-HD:+Moar HLS 
 +* http://cdn.c3voc.de/hls/sX/translated_hd.m3u8 (auch Multi-Lang, nur anderer Default) 
 +* http://cdn.c3voc.de/hls/sX/translated-2_hd.m3u8 
 +* http://cdn.c3voc.de/hls/sX/native_sd.m3u8 (nur SD, aber trotzdem Multi-Lang) 
 +* http://cdn.c3voc.de/hls/sX/translated_sd.m3u8 
 +* http://cdn.c3voc.de/hls/sX/translated-2_sd.m3u8 
 + 
 +Legacy VPx-HD:
 * http://cdn.c3voc.de/sX_native_hd.webm * http://cdn.c3voc.de/sX_native_hd.webm
 * http://cdn.c3voc.de/sX_translated_hd.webm * http://cdn.c3voc.de/sX_translated_hd.webm
 * http://cdn.c3voc.de/sX_translated-2_hd.webm * http://cdn.c3voc.de/sX_translated-2_hd.webm
  
-VPx-SD:+Legacy VPx-SD:
 * http://cdn.c3voc.de/sX_native_sd.webm * http://cdn.c3voc.de/sX_native_sd.webm
 * http://cdn.c3voc.de/sX_translated_sd.webm * http://cdn.c3voc.de/sX_translated_sd.webm
 * http://cdn.c3voc.de/sX_translated-2_sd.webm * http://cdn.c3voc.de/sX_translated-2_sd.webm
  
-VPx-Slides:+Legacy VPx-Slides:
 * http://cdn.c3voc.de/sX_native_slides.webm * http://cdn.c3voc.de/sX_native_slides.webm
 * http://cdn.c3voc.de/sX_translated_slides.webm * http://cdn.c3voc.de/sX_translated_slides.webm
 * http://cdn.c3voc.de/sX_translated-2_slides.webm * http://cdn.c3voc.de/sX_translated-2_slides.webm
- 
-h264-HD: 
-* http://cdn.c3voc.de/hls/sX_native_hd.m3u8 
-* http://cdn.c3voc.de/hls/sX_translated_hd.m3u8 
-* http://cdn.c3voc.de/hls/sX_translated-2_hd.m3u8 
- 
-h264-SD: 
-* http://cdn.c3voc.de/hls/sX_native_sd.m3u8 
-* http://cdn.c3voc.de/hls/sX_translated_sd.m3u8 
-* http://cdn.c3voc.de/hls/sX_translated-2_sd.m3u8 
- 
-h264-Slides: 
-* http://cdn.c3voc.de/hls/sX_native_slides.m3u8 
-* http://cdn.c3voc.de/hls/sX_translated_slides.m3u8 
-* http://cdn.c3voc.de/hls/sX_translated-2_slides.m3u8 
  
 Audio-MP3: Audio-MP3:
Line 182: Line 198:
 * http://cdn.c3voc.de/sX_translated.opus * http://cdn.c3voc.de/sX_translated.opus
 * http://cdn.c3voc.de/sX_translated-2.opus * http://cdn.c3voc.de/sX_translated-2.opus
- 
  
 == Loadbalancer == Loadbalancer
-Neben den Transport- und Edge-Relays gibt es noch zwei Loadbalancer:+Neben den Transport- und Edge-Relays gibt es noch drei Loadbalancer:
  
   * ''lb.dus.c3voc.de''   * ''lb.dus.c3voc.de''
   * ''lb.alb.c3voc.de''   * ''lb.alb.c3voc.de''
 +  * ''lb.dort.c3voc.de''
  
-Diese sind sowohl für die Domains ''streaming.media.ccc.de'' als auch für ''cdn.c3voc.de'' zuständig. Im DNS sind für beide Domains beide Server angegeben, so dass Clients per statistischem Round-Robin auf einen der beiden Server verteilt werden.+Diese sind sowohl für die Domains ''streaming.media.ccc.de'' als auch für ''cdn.c3voc.de'' zuständig. Im DNS sind für beide Domains alle Server angegeben, so dass Clients per statistischem Round-Robin auf die Loadbalancer verteilt werden.
  
 === streaming.media.ccc.de === streaming.media.ccc.de
Line 211: Line 227:
 Die RTMP-Url für den endpunkt ''stream/qtest23'' mit auth token lautet z.B.: ''%%rtmp://ingest.c3voc.de/stream/qtest23?auth=token%%'' Die RTMP-Url für den endpunkt ''stream/qtest23'' mit auth token lautet z.B.: ''%%rtmp://ingest.c3voc.de/stream/qtest23?auth=token%%''
  
- 
-== The Future of Streaming? 
-Um die Redundanz zu erhöhen und das Management zu vereinfachen ist geplant die Streams auf dem CDN zukünftig über ein verteiltes System zu managen welches auf etcd aufbaut. 
- 
-Damit wäre es möglich redundante CDN-Master sowie redundante Ingest-Server zu betreiben und trotzdem ein Web-Backend mit allen relevanten Streaming-Infos bereitzustellen. Weiterhin könnte die Streaming-Webseite intelligent auf das Vorhandensein/Fehlen von Streams im CDN reagieren und zusätzliche Metadaten von Encodern verarbeiten. 
- 
-Ein weiterer Vorteil des angedachten Setups sind deutlich geringere Latenz durch den fehlenden Fanout, sowie deutlich schnellere Stream-Restarts durch aktive Benachrichtigung der Transcoder. 
- 
-=== Übersicht 
-{{::stream-automation-v2.png?1200|}} 
- 
-=== Änderungen zum Jetzt-Stand 
-==== 1. Kein Fanout auf dem Master-Relay mehr 
-Transcoder pushen direkt die fertig gemuxten Client-Streams auf 1-N Master-Relays. Damit brauchen die Transcoder potentiell etwas mehr Bandbreite, dafür wird der Prozess vereinfacht weil der Master Format-unabhängig verteilen kann. 
- 
-Weiterhin kann damit die Latenz um mindestens ein Keyframe-Intervall (3s), vermutlich sogar mehr gesenkt werden. 
- 
-==== 2. Keine WebM-Icecast Streams mehr 
-Um die Zahl der gepushten Streams zu reduzieren (siehe 1) werden die alten Icecast-Streams abgeschaltet. Seit 2 Jahren sind diese nicht mehr default in der Streaming-Webseite. Als Vorbereitung hierzu wurde Frühling 2020 der Legacy-Tab entfernt. 
- 
-Audio-Only Streams über Icecast bleiben aber vermutlich erhalten genauso wie das interne Relaying über Icecast. 
  
  • cdn.txt
  • Last modified: 2024/01/29 10:45
  • by ischluff