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
cdn [2020/10/10 20:49] ischluffcdn [2024/01/29 10:45] (current) 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, FanoutTransport-/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 Fanoutsowie deutlich schnellere Stream-Restarts durch aktive Benachrichtigung der Transcoder
 + 
 +=== Übersicht 
 +{{drawio>diagram1.png}} 
 + 
 +==== Repo Links 
 +  * Stream-apiUpload-ProxyUpload-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 5 stages: Master-Encoder, Ingest, Transcoder, 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.1602355751.txt.gz
  • Last modified: 2020/10/10 20:49
  • by ischluff