Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Home of streaming.media.ccc.de

NotificationsYou must be signed in to change notification settings

voc/streaming-website

Repository files navigation

Dies ist der Code für die Streaming-Webseite unterstreaming.media.ccc.de, welche vomC3VOC benutzt wird, um Live-Video- und -Audio-Streams vondiversen Konferenzen im Internet zupräsentieren. Die Idee hinter diesem Projekt ist es, eine generische Codebasiszu haben, die mit wenigen Konfigurationsoptionen und ein paar CSS-Rules an dieGegebenheiten und die Gestaltung der Konferenz angepasst werden können.

Development

Während der Entwicklung kann der eingebaute PHP-Webserver verwendet werden:

$ ./serve.sh[Thu Jan  1 13:37:42 1970] PHP 8.2.7 Development Server (http://localhost:8000) startedPress Ctrl-C to quit.…

Unterstützt wird PHP ab 7.4.

Docker

Wer lieber Docker mag, kann auch folgende Zeile verwenden:

docker run -it -p 8000:8000 -v"$PWD":/app -w /app php:7-cli ./serve.sh 0.0.0.0 8000

Abhängigkeiten

apt install php8.2 php8.2-curl php8.2-xml# - or -apt install php php-curl php-xml

Dateidownload testen

./download.sh

Konfiguration der einzelnen Konferenzen

Die Seite kann für mehrere parallel laufende Konferenzen gleichzeitig verwendetwerden. Jede Konferenz wird über einen Ordner unterhalb vonconfigs/conferences konfiguriert. In diesen Ordnern könnenjeweils folgende Dateien abgelegt werden, welche das Verhalten bzw. die Gestaltungder jeweiligen Konferenzseite bestimmen, im Folgendem am:

  • config.json – steuert das Verhalten der gesamten Konferenzseite. Dein Editor sollte dir über das referenzierte JSON Schema die einzelnen Felder erklären – die meisten Feature-Flags pro Raum oder auch die OverviewPage Config sind nicht mehr notwendig, da inzwischen die Defaults entsprechend angepasst wurden.
  • config.php – steuert das Verhalten der gesamten Konferenzseite wenn keineconfig.json existiert. Inzwischen Deprecated – bitte am besten direkt config.json verwenden.
  • main.less – steuert die Gestaltung der Konferenzseite.
  • weitere Assets wie.png oder.svg-Dateien, die aus dermain.less heraus referenziert werden können.

Siehe auchhttps://c3voc.de/wiki/software:streamingwebsite#add_a_new_conference

Setup

Das Setup beim VOC besteht aus einem Hidden-Master-Server, welcher den PHP-Codein einem nginx ausführt. Dahinter kommenn Frontend-Caches, wobei für kleineEventsn eigentlich fast immer=1 ist. Für große Events (Camp, Congress)können wir aber sehr einfach weitere Frontend-Caches bei verschiedenen Hosternhinzu deployen.

Zur Vorbereitung einer Konferenz oder zur Weiterentwickelung der Seite ist eshilfreich, sich das Teil lokal aufzusetzen. Am einfachsten geht das mit 'nemApachen, denn die beiliegende.htaccess konfiguriert dasURL-Rewriting gleich richtig. Bei nginx muss das in der globalen nginx.confungefähr so eingestellt werden:

location / {    rewrite /(.*) /index.php?route=$1 last;}

Abweichend von der Default-Config muss in PHP das Flagshort_open_tag = Ongesetzt werden.

Deployment (auf der VOC Infrastruktur)

seedeploy.sh bzw.https://c3voc.de/wiki/software:streamingwebsite

JSON-API

Unter der URLhttp://streaming.media.ccc.de/streams/v2.json bietet dieStreaming-Webseite eine Übersicht über alle konfigurierten Räume und Streams ineinem maschinenlesbaren Format an. Dieses kann z.B. genutzt werden, um in dendiversen Anwendungen, die sich rund um das Konferenzgeschehen entwickelt haben,Player und Links zu Liveübertragungen anzubieten.

Wie die URL vermuten lässt, ist die API versioniert. Dies bedeutet, dass inderv2.json keine Felderentfernt werden oder ihreBedeutung ändern – eskönnen aber durchausneue Felder hinzukommen. Eine formalere Spezifikationdes JSON-Formats ist tbd. Ein Beispiel kannhierbetrachtet werden.

Bekannte Nutzer der API

Troubleshooting

Falsche PHP-Version

Wennserve.sh einen Fehler wirft wie z.B.PHP Fatal error: Uncaught ErrorException: Required parameter $rules follows optional parameter $value in /<path-to-repository>/lib/less.php/Less.php:5501 kann es sein, dass du eine falsche PHP-Version verwendest. Wennphp --version 8 oder neuer zurückgibt, dann ist deine Version zu neu. Versuche auf deinem Betriebssystem PHP 7.4 zu installieren und in den Skripts, die zu benötigst, die Version anzupassen. Zum Beispiel wird dann aus

# vorherphp -S localhost:$port -d short_open_tag=true index.php

dann

# nachherphp7.4 -S localhost:$port -d short_open_tag=true index.php

FehlermeldungCall to undefined function iconv()

Wenn du beim Aufrufen der Seite im Browser nur eine leere Seite siehst, schau in dein Terminal, ob es einen Fehler gab. Wenn du einen Fehler wiePHP Fatal error: Uncaught Error: Call to undefined function iconv() siehst, ist bei dir die iconv-Extention nicht aktiviert. Du kannst diese in deiner globalenphp.ini aktivieren. Wo diese Datei liegt kannst du mitphp --ini bzw.php7 --ini rausfinden. Suche in der Datei nach der richtigen Zeile und entferne das Semikolon am Anfang. Wenn es kein Semikolon gibt, sollte die Extension bereits aktiviert sein.

// vorher;extension=iconv
// nachherextension=iconv

Fehlermeldunglessc: command not found

Wenn du beim Ausführen von Skripten den Fehlerlessc: command not found bekommst, fehlt dir ein less-Compiler. Es gibt verschiedene Arten, sich einen less-Compiler zu installieren. Falls dunpm verwendest, kannst du beispielsweise less global installieren mitnpm install -g less. Anschließen solltelessc dann global auf deinem System verfügbar sein.


[8]ページ先頭

©2009-2025 Movatter.jp