Welche Programmierkenntnisse/ -sprachen sind nötig, um eine live-streaming Webseite zu kreieren?

Bene Löffler

Ensign
Registriert
März 2008
Beiträge
172
Hallo zusammen.

Es lässt sich leider sehr wenig über das Thema hier im Forum oder generell im Internet finden.

Was für Sprachen und skills wären nötig, um eine video live-streaming Webseite (ähnlich wie twitch.tv) zu kreieren?

Sind Dienste wie wowza auch nötig?

Vielen Dank!
 
Die einzige "vorgeschriebene" Sprache ist JavaScript (oder TypeScript), weil sich keiner Webseiten mit Flash, Silverlight oder ActiveX antun möchte.
Der Rest ist dir überlassen: Java, C#, Python, C, such dir was aus.

Entscheidend sind am Ende deine Server, die die Streams verteilen - bzw. vor allem deren Netzwerk Bandbreite.

Der Rest besteht mehr oder weniger (stark vereinfacht) nur aus:
1. Frame vom Streamer an den Server schicken
2. Frame an die an Clients weitergeben

Dazwischen muss man die Daten dann möglicherweise noch buffern und wenige Sekunden zeitverzögert an die Clients schicken. Und je nach Anzahl der Clients müssen die Daten dann natürlich auch an die anderen Server verteilt werden, um die Last zu verteilen und Bottlenecks zu vermeiden. Da darfst du dir dann aussuchen, ob die Server in einer Stern Struktur kommunizieren, oder als Mesh - oder eine Mischung daraus.

Um es grundsätzlich an's Laufen zu bringen, braucht man nicht viele Kenntnisse. Der schwierigste Part ist die Serverinfrastruktur und das Verwalten und Verteilen der Datenströme - vor allem wenn du dann hunderte Streamer und viele tausend Clients hast.
 
  • Gefällt mir
Reaktionen: FeelsGoodManJPG, kassi und Nilson
Vielen Dank für die rasche Antwort.

Ich selber hab leider keine Programmierkenntnisse... Aber es hört sich so an, als müsste man nicht nach spezialisierten Programmierern gucken, um so eine Seite zu realisieren?

Da Programmierer meistens ja genaue Angaben über Anforderungen (von skills) verlangen; wie würdest du diese formulieren?

Ah ja und die Server würde man über AWS und wowza laufen lassen?
 
Eigentlich sollte jeder "Web-Entwickler" mit der Anforderung klar kommen.. HTML 5 biete alle benötigenden Schnittstellen....
Die höhere Komplexität ist die allgemeine Server Konfig und das drum herum (auch über den Amazondienst)
 
Ich habe keine Ahnung was Wowza bietet. Mit AWS lässt sich sowas natürlich realisieren.

Die Programmierer sind so ziemlich das Unwichtigste bei so einem Projekt. Die setzen nur das um, was ihnen vorgelegt wird. Was die können müssen, hängt stark von den Anforderungen ab: Auf welchen Plattformen soll die Streaming Software laufen? Windows, Android, iOS, macOS? Dafür braucht's jeweils solide Kenntnisse.

Dann brauchst du jemanden, der sich mit Video und Audio Codecs auskennt. Nicht alle Codecs lassen sich einfach so zum Streamen benutzen. Da geht's dann um variable Bitraten und/oder variable Auflösungen. Und natürlich Kompatibilität und Performance auf Streamer- und Client-Seite.

Dazu dann noch Projektmanager, die sich um die Organisation kümmern.

Softwarearchitekten, Netzwerk Experten, Tester, Support, etc. pp.

Also insgesamt schätzungsweise mindestens(!) 10-20 Leute, die alle ihr Fachgebiet haben.

Als erstes brauchst du ein Konzept. (siehe Pflichtenheft und Lastenheft). Das muss haargenau ausgearbeitet werden. Darin steht dann ganz genau wer was wo und wie zu tun hat. Und erst danach braucht man Programmierer.
 
Mindestens 15-20 Leute?? Oh was... Ist ja schon schwierig genug eine Person zu bekommen. Kosten würd das dann ja auch Unmengen.
 
  • Gefällt mir
Reaktionen: JaneKnopf
Habe es auf 10 korrigiert :D Das macht jetzt aber auch keinen wirklichen Unterschied. Ist ja eh nur eine grobe Angabe.

Es kommt halt auch drauf an wie professionell das Ganze werden soll. Als Spaß-Projekt kann man das auch alleine umsetzen in seiner Freizeit. Wird dann halt niemals wirklich rund laufen und am Ende auch nur eine Hand voll Zuschauer ermöglichen - aber immerhin. Und natürlich werden dann auch keine Schwankungen bei der Bandbreite des Streamers und der Clients ausgeglichen, etc.

Also ich rechne jetzt einfach mal ganz grob:
2x Web-Entwickler. Einer für die Logik (JavaScript, TypeScript) einer für's Design (HTML, CSS).
2x Backend-Entwickler. Einer für die Logik (APIs), einer für's Netzwerk (Hierarchie, Kubernetes, Docker, AWS).
2x Streaming-Software-Entwickler. Einer für die GUI, einer der sich mit Audio / Video auskennt. Hier können es natürlich noch deutlich mehr Leute werden, wenn man von verschiedenen Plattformen aus Streamen möchte (Windows, macOS, iOS, Android, Linux, etc.).
1x Tester. Jemand muss das Produkt und neue Features aus Herz und Nieren testen. Je nach Größe des Projekts, können es auch noch mehr Tester werden.
1x Projektmanager. Kümmert sich um Organisation. Hier kann natürlich auch noch ein zweiter dazu, wenn die Mitarbeiterzahl es erfordert.
1x Support. Irgendwer muss sich ja um die Kunden kümmern. Wenn du planst weltweit online zu gehen, dann brauchst du natürlich auch noch mehr Supporter, die auch noch verschiedene Sprachen beherrschen.
1x Designer. Am Besten über eine externe Firma, die ein Konzept für das Produkt entwirft. Die kümmern sich normalerweise auch direkt um die Usability.

Und wahrscheinlich habe ich noch ein paar Positionen vergessen.

EDIT: Du glaubst doch nicht wirklich, dass twitch ein Unternehmen ist, das aus 2 Hackern besteht, die in 4 Wochen das alles auf die Beine gestellt haben? :D
 
Zuletzt bearbeitet:
Hast du etwa geglaubt das Twitch im eigenen Keller Programmiert wurde? ^^

Bei der heutigen Komplexität halte ich das für nicht mehr realistisch.

1) Gut durchdachtes Konzept erstellen. (Siehe Vorposter)
2) Geldgeber suchen (Crowdfunding; Venture-Kapitalgeber; Lottogewinn)
3) Fähiges Personal sourcen (Alternativ Partnerfirmen engagieren)
4) Projektumsetzung
5) Sich mit dem Gedanken anfreunden nicht nur ninetofive zu arbeiten und lange Zeit rote Zahlen zu schreiben.

Wer bei einem Projekt in dieser Dimension immer darauf Bedacht ist von Anfang an schwarze Zahlen zu schreiben wird nicht erfolgreich sein können.
 
Hier mal eine Liste der Stellen, für die Twitch gerade Personal sucht: https://jobs.lever.co/twitch
Die sind natürlich schon weit fortgeschritten. Aber selbst die Hälfte der Jobs kann man nicht mit 5 Leuten erledigen. Und dazu kommen natürlich noch all die Mitarbeiter, die dort bereits arbeiten.
 
Twitch ist ja aus Justin.tv heraus entstanden, das waren immerhin nur eine handvoll Leute. Das ist natürlich auch schon zehn Jahre her und das ganze war noch ein simpleres Konzept.

Um halt die Sache realistischerweise angehen zu können, bräuchte ich einen working prototype, der von wenigen Leuten entwickelt wird. Also idealerweise ein full stack developer und ein streaming-software-entwickler. Von Anfang an 10 Leute finden ist ja kaum möglich.
 
Wenn das kommerziell sein soll, dann lass es. Da brauchst du schon ein sehr gutes konzept und viel Geld, damit du was aufbauen könntest, was mit den etablierten Playern überhaupt in Konkurrenz treten könnte.

Wenn es privat nur für dich und Freunde oder so sein soll, dann kannst du das aber auch in 2 Tagen selbst aufbauen. Brauchst dann nur einen Server, ne Fertiglösung fürs backend, z.B. nginx mit dem rtmp modul, und eine einfache Website mit irgendeinem videoplayer, welcher die konvertierten streams unterstützt. Da kommst du dann für 20-50€/Monat für den Server hin.
 
  • Gefällt mir
Reaktionen: wertzuiop123
Es soll nicht in Konkurrenz mit etablierten Playern treten, da das Konzept anders wäre.

Für nen Prototypen kann ich davon ausgehen, dass ein full stack developer und ein streaming-software-entwickler reichen würden?
 
Vielleicht reicht auch ein einziger Full Stack Dev für einen ganz simplen Prototypen. Der muss dann natürlich ziemlich viele Fähigkeiten mitbringen:

Web Frontend (JavaScript, HTML, CSS)
Web Backend (Java, JavaScript / node.js oder C# / .NET - hier ist prinzipiell alles möglich)
Datenbanken (SQL sollte für einen Prototypen reichen. Andere Datenbanken kann man natürlich auch nutzen. Kommt immer auf die Art der Daten und Abfragen an)
Video- / Audio-Codecs
Security (Authentifizierung, Autorisierung, SQL Injection, XSRF, XSS, etc. pp.)
Windows (?) Streaming Software (Windows API, C++, C# / .NET)

So ein System würde dann auf einem einzigen Server laufen und vielleicht 1-3 Streamer mit jeweils 5-10 Zuschauern unterstützen - vorausgesetzt, dass da keine zickigen Netzwerkverbindungen dabei sind. Zur Präsentation der Idee sollte das aber natürlich vollkommen ausreichen.

Von dem Audio-Video-Kram muss man an dieser Stelle auch noch nicht all zu viel Ahnung haben. Zur Not setzt der Prototyp einfach auf VP9 bei FullHD - nicht mehr, nicht weniger. Das spart viele Stunden Entwicklungszeit.

Danach muss man sich dann halt um die ganzen Feinheiten kümmern:
Skalierung, Live-Transcoding, Buffering, User-Support, etc. pp.

Ob man zu Beginn mit 1, 2, 3 oder 4 Entwicklern loslegt hängt von verschiedenen Faktoren ab:
1. Geld (rechne grob mit 4000-5000€ pro Entwickler pro Monat)
2. Geschwindigkeit (4 Entwickler sind natürlich deutlich schneller als 1, gleichzeitig gibt's mehr Ideen und sehr wahrscheinlich auch bessere Lösungsansätze)
3. Fähigkeiten / Spezialisierung der Entwickler

Aber bevor du irgendwen suchst: Konzept! Mal Bilder, schreib Text, viele Seiten. Hauptsache am Ende steht da ganz detailliert was der Prototyp können soll. Welche Knöpfe und Ansichten soll es geben, was passiert wenn hier oder dort geklickt wird. Etc. pp. Wirklich so genau wie möglich. Jede Zweideutigkeit und/oder Lücke im Konzept kostet danach sehr viel Zeit! (und mit Zeit meine ich: Geld)
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: FeelsGoodManJPG
Ein großer Anteil eines solchen Streams wird ja auf dem Client erzeugt.

Dazu wird sehr häufig Open Broadcaster Software (OBS) verwendet.
Dort gibt es auch eine aktive Entwickler-Community mit vielen Plugins für OBS, Anleitungen usw.

Das wäre eine gute erste Anlaufstelle.
 
Ok vielen Dank; dann hab ich jetzt schon gute Ansätze zum anfangen!
 
Nach fast 1,5 Jahren ist die Plattform endlich online (MVP): https://chipstv.co/
Rückblickend hätte ich sagen sollen, was genau ich vorhabe.

Es handelt sich um eine Web-Gaming-Plattform (1. Spiel Werwolf/Mafia) auf der 10 Leute miteinander spielen und reden können und sich dabei sehen.

Ich habe vor einem halben Jahr einen Mitgründer (Entwickler) gefunden, wir haben ein Startup-Programm abgeschlossen und ein wenig Geld bekommen. Jetzt heuern wir wohl bald schon den ersten Praktikanten an.
 
  • Gefällt mir
Reaktionen: bog und new Account()
Zurück
Oben