diff --git a/ghostream/default_settings.py b/ghostream/default_settings.py index ec7d854..22cc735 100644 --- a/ghostream/default_settings.py +++ b/ghostream/default_settings.py @@ -1,9 +1,11 @@ +import os + # Default configuration # LDAP -LDAP_URI = "ldap://127.0.0.1:389" -LDAP_USER_DN = "cn=users,dc=example,dc=com" +LDAP_URI = os.environ.get('LDAP_URI') or "ldap://127.0.0.1:389" +LDAP_USER_DN = os.environ.get('LDAP_USER_DN') or "cn=users,dc=example,dc=com" # Web page -SITE_NAME = "Ghostream" -FAVICON = "/favicon.ico" +SITE_NAME = os.environ.get('SITE_NAME') or "Ghostream" +FAVICON = os.environ.get('FAVICON') or "/favicon.ico" diff --git a/ghostream/static/obs_sortie.png b/ghostream/static/obs_sortie.png new file mode 100644 index 0000000..ddd905f Binary files /dev/null and b/ghostream/static/obs_sortie.png differ diff --git a/ghostream/static/obs_stream.png b/ghostream/static/obs_stream.png new file mode 100644 index 0000000..ac1be7e Binary files /dev/null and b/ghostream/static/obs_stream.png differ diff --git a/ghostream/static/style.css b/ghostream/static/style.css index de33c57..a168d31 100644 --- a/ghostream/static/style.css +++ b/ghostream/static/style.css @@ -1,17 +1,97 @@ body, html { height: 100%; + margin: 0; } body { background-color: #3b4b5b; + font-family: "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #bbb; + text-align: justify; user-select: none; } -.text-select { +p { + margin-top: 0; + margin-bottom: 1rem; +} + +code { + font-size: 87.5%; + word-break: break-word; user-select: text; } -.my-row { +svg { + overflow: hidden; + vertical-align: middle; +} + +a { + text-decoration: underline; + text-decoration-style: dotted; + color: inherit; +} + +img { + max-width: 100%; +} + +h1, h2, h3, h4 { + color: #ddd; +} + +.container { + height: 100%; + width: 100%; display: flex; + flex-wrap: wrap; height: 100%; } + +.col-video { + padding: 1rem; + flex-basis: 0; + flex-grow: 1; + position: relative; + width: 100%; + text-align: right; +} + +.col-chat { + position: relative; + width: 100%; + height: 100%; + box-shadow: 0 1rem 3rem rgba(0,0,0,0.175); +} + +.col-chat iframe { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + border: 0; +} + +/* Hide chat toggler on small screen */ +#chatToggle { + margin-left: 0.5rem; + display: none; +} + +/* On large screen, put chat on left */ +@media(min-width:1000px){ + .col-chat { + width: 33.33333%; + flex: 0 0 33.33333%; + } + + #chatToggle { + display: inline; + } +} diff --git a/ghostream/templates/base.html b/ghostream/templates/base.html index 49a7f70..efa1858 100644 --- a/ghostream/templates/base.html +++ b/ghostream/templates/base.html @@ -3,7 +3,6 @@ {% block title %}{{ config.SITE_NAME }}{% endblock %} - diff --git a/ghostream/templates/index.html b/ghostream/templates/index.html new file mode 100644 index 0000000..694466f --- /dev/null +++ b/ghostream/templates/index.html @@ -0,0 +1,80 @@ +{% extends "base.html" %} + +{% block content %} +
+

{{ config.SITE_NAME }}

+

+ {{ config.SITE_NAME }} est un service maintenu par le + Crans permettant de diffuser + un contenu vidéo. Il a pour but d'être utilisé pour diffuser + des séminaires ou évènements. +

+ +

Comment je diffuse ?

+

Pour diffuser un contenu vous devez être adhérent Crans.

+ +

Avec Open Broadcaster Software

+

+ Open Broadcaster Software + est une solution libre et open source de diffusion vidéo. + Pour diffuser sur cette plateforme, allez dans les paramètres + « Stream (flux) » : +

+ + + +

+ Pour éviter les saccades, changez vos paramètres d'encodage dans + « Sortie » avec un profil baseline et un + règlage fin zerolatency. +

+ + +

+ Votre stream sera alors disponible sur + https://{{ request.remote_addr }}/IDENTIFIANT. +

+ +

Avec FFmpeg

+

+ + ffmpeg -re -i mavideo.webm -vcodec libx264 -vprofile baseline + -acodec aac -strict -2 -f flv + rtmps://{{ request.remote_addr }}:1935/app/IDENTIFIANT?pass=MOT_DE_PASSE + +

+ +

Mentions légales

+

+ Le service de diffusion vidéo du Crans est un service d'hébergement + au sens de l'article 6, I, 2e de la loi 2004-575 du 21 juin 2004. + Conformément aux dispositions de l'article 6, II du même, + l'association Crans conserve les données de nature à permettre + l'identification des auteurs du contenu diffusé. + Ce service est hébergé par l'association Crans, au + 61 Avenue du Président Wilson, 94235 Cachan Cedex, France. +

+

+ En cas de réclamation sur le contenu diffusé de type + https://{{ request.remote_addr }}/identifiant, + l'auteur peut être contacté par courrier à l'adresse + identifiant@crans.org. + La loi vous autorise à contacter directement l'hébergeur à + l'adresse suivante : +

Association Crans - ENS Paris-Saclay
Notification de Contenus Illicites
61, Avenue du Président Wilson
94235 Cachan Cedex
France
+ Vous pouvez également envoyer directement vos réclamations par + courrier électronique à l'adresse bureau[at]crans.org. +

+
+{% endblock %} diff --git a/ghostream/templates/viewer.html b/ghostream/templates/viewer.html new file mode 100644 index 0000000..68ccc1c --- /dev/null +++ b/ghostream/templates/viewer.html @@ -0,0 +1,71 @@ +{% extends "base.html" %} + +{% block title %}{{ path }} - {{ config.SITE_NAME }}{% endblock %} + +{% block content %} +
+
+ + + + +

+ + + + + rtmps://{{ request.remote_addr }}:1935/app/{{ path }} + » +

+
+ + +
+ +
+
+ + + +{% endblock %}