DokuWiki

It's better when it's simple

User Tools

Site Tools


editing

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
editing [2017-04-14 11:32] – old revision restored (2017-04-08 13:20) 2003:84:ad53:bf00:80ae:4f59:c560:db6eediting [2020-03-17 21:43] franckjunior
Line 1: Line 1:
-====== Page editing ======+======                                Livestreaming-Service (WunderTv) ======  
  
-To edit a page in the wiki, simply click the button labeled "Edit this page" shown on the top and bottom of the pageThis will switch to editing mode for this page, and you can change the wiki source of this page in an embedded editor+====== Vorwort ====== 
 +Mein Name ist FRANCK JUNIOR DJOUMESSI und ich bin unterwegs in Fachbereich Angewandte InformatikIch habe in Rahmen der Lehrveranstaltung „Einführung von Internetdiensten“ eine live Streaming eingerichtet. wo ich ein Video von der Hochschule zur Verfügung stellen. Leider hat es nicht geklappt wegen Zugriffsrechte. Außerdem würde ich von Professor Sebastian Rieger und Herrn Christoph Hardegen unterstützt.
  
-Wiki pages are written in a simpleplain-text [[wiki:syntax]], that allows structuring the page and pleasant formatting while retaining high readability of the page sourceWhen you edit a page and save your changes, the previous content will not be lostInstead it will be saved as an old revision of the page in the [[attic]] and can still be viewed or even restored.+====== Kurzbeschreibung ====== 
 +Unter LiveStreaming versteht man Echtübertragung von Video und/oder Media,dass echtzeit bereitgestellt wird. 
 +Mein Internetdienst ist eine über eine Webseite verfügbarer live StreamingIch würde sowohl von einem letzten Projekt von 2016 inspiriert als auch von ein paar Webseite in Internet wie zum Beispiel: http://www.footstream.tv/ 
  
-Before you edit your first "real" page in the wiki, you should try out the possibilities in the [[playground:playground]]. The playground is provided so that users can test things and play around to their heart's content.  (A playground is created when installing DokuWiki, in the "playground" namespace.  To periodically clear the playground, see [[tips:maintenance]].) 
  
-===== Troubleshooting ===== 
  
-In some cases, the editing of a page is impossible. This can be mainly for these reasons : 
-  * Some pages may be [[locking|locked]].  
-  * You may have not enough rights to edit the page. In that case, you will have no edit button, but will instead show a button labeled "Show pagesource". To be able to edit the page, you might need to [[login]] first. See [[acl|access control]] for more information. 
-  * "Show pagesource" button can be disabled in the configuration. Logged user with edit permissions can still of course edit the page. 
  
-===== See also =====+====== Präsentation ====== 
 +{{:dienst05ws2017:livestreaming.pptx|}} 
 +=====                                 
 +   
 +====== Beteiligte====== 
 + 
 +**FRANCK JUNIOR DJOUMESSI**\\ 
 +**E-Mail:** <franck.junior@rocketmail.com>\\ 
 +**Administrator** 
 + 
 + 
 + ====== Architektur====== 
 +{{:dienst05ws2017:architecture.png?direct&800|}} 
 + 
 + 
 + 
 +  - « Die Anwendung stellt die Benutzerschnittstelle zur Verfügung und startet den NGINX-Webserver mit der mitgelieferten Konfiguration (in /usr/local/nginx-streaming/conf/nginx.conf ) » 
 +   - FFmpeg holt den Video stream und leitet ihn an den lokal laufenden NGINX RTMP-Server weiter 
 +   - NGINX-RTMP liefert den videostream an die Adresse: '' rtmp://localhost/live360p/reiseFulda1.flv  //''  
 +   - jw Video Player ruft den videostream auf\\ 
 +   - Zusätzlich nimmt FFmpeg den lokalen NGINX-RTMP-Videostream und schiebt die Quelle an der Webseite 
 + 
 + 
 + ====== Abhängigkeit======                                         
 +  - **Server1:** wunderserver\\                   {{ :dienst05ws2017:topologie.png?link&400|}} 
 +     * Interne IP-addresse:192.168.0.9          
 +     * Floating IP-addresse:192.168.73.145         
 +  - **Server2:** wunderserver2\\ 
 +     * Interne IP-addresse:192.168.0.16   
 +     * Floating IP-addresse:192.168.73.145    
 +  - **HA Proxy und LoadBalancer**\\ 
 +     * Interne IP-addresse:192.168.0.15     
 +     * Floating IP-addresse:192.168.73.153           
 + 
 +WunderTV ist von mehreren Elementen abhängig. Das wichtigste Element ist wunderserver, weil Streaming komplett von diese läuft. Darüber hinaus würde wunderserver2 nicht total eingerichtet, da die Übertragung der Dateien von wunderserver (wunderserver war mehr als 20giga) zu viel Zeit nimmt. Übrigens prüft der Loadbalancer welche Server verfügbar ist. Der wird eingerichtet sodass, wenn ein Sever nicht erreichbar ist, würde die zweite Server einfach übernommen.  
 +**Es kann sein, dass ein von dem Server durch Malware oder anderen Schadversuch nicht mehr erreichbar ist.** Aber wenn Loadbalancer befallen wird, funktioniert das Ganze nicht mehr. Ein zweiter Server in dieser Fall wunderserver2 könnte für mehrere Redundanzen sorgen. 
 + 
 + 
 +======Nginx mit RTMP module: Installation und Konfiguration====== 
 + 
 +[[https://www.vultr.com/docs/setup-nginx-rtmp-on-ubuntu-14-04]] 
 + 
 +Nginx ist eine der schneller Webserver. Es ist nicht nur moderne sondern auch flexibel.es muss manuell komplett als **root** installiert und Eingerichten werden.\\ 
 +lokale verzeichnis von nginx:__** /usr/local/nginx-streaming/**__ 
 + 
 + 
 +In Datei nginx wird wichtige Software für die Installation heruntergeladen.\\ 
 +die [[https://www.leaseweb.com/labs/2013/11/streaming-video-demand-nginx-rtmp-module/|konfiguration von nginx]] 
 + 
 +Für Compiler und git  '' apt-get install git gcc make   '' 
 + 
 +Für the library: ''**apt-get install libpcre3-dev**'' \\ 
 + 
 +Für SSL modules:'' **apt-get install libssl-dev**''\\ 
 + 
 +Nginx 1.4.3 source code: https://github.com/arut/nginx-rtmp-module mit der Kommando wget wird die Datei heruntergeladen und mit „unzip“ entpackt.\\ 
 + 
 +Falls **Unzip_Package** noch nicht installiert mit ''**sudo apt-get install unzip**'' installieren.\\ 
 +Dann nginx mit RTMP Module kompilieren:\\ ''**./configure --add-module=/root/nginx/nginx-rtmp-module/ --with-http_ssl_module --prefix=/usr/local/nginx-streaming/**''\\ 
 + 
 +Am ende folgende Kommando ausführen: \\ 
 +   - '' Make        ''\\ 
 +  -  '' Make install''\\ 
 + 
 +Um Statistic von Streaming zu sehen, brauchen  wir  **stats.xml** .das wurde von der nginx Datei zu **/var/www/** copiert. 
 +Jetzt ist die Konfiguration fertig und müssen wir nginx restarten mit:  ''**/usr/local/nginx-streaming/sbin/nginx**'' 
 + 
 +Zu stoppen und/oder starten nginx kann auch folgende Kommando benutzt:\\ 
 + 
 +''**Sudo service nginx stop**''\\ 
 +''**Sudo service nginx start**''  
 + 
 + 
 + 
 +======Video Transkodierung: FFMPEG====== 
 + 
 +„[[https://mmnet.informatik.hs-fulda.de/dokuwiki/doku.php?id=dienst01ws2016:installation_ffmpeg|FFMPEG ]] wird verwendet, um eingehende Streams zu transkodieren und ein Vorschaubild zu erstellen. Dabei werden verschiedene Qualitätsstufen bereitgestellt. FFMPEG aus den offiziellen Paketquellen besitzt leider nicht alle benötigten Features, weshalb es manuell kompiliert werden muss. “  
 + 
 + 
 +===== Installation und Konfiguration ===== 
 +[[https://ffmpeg.org/ffmpeg.html |installation]] und [[https://www.leaseweb.com/labs/2013/11/streaming-video-demand-nginx-rtmp-module/|konfiguration]] gehen wie folgt 
 + 
 + 
 +Installation: \\                                                               {{ :dienst05ws2017:ffmpeg.png?200|}} 
 +  -''**sudo apt-get install ffmpeg**''      
 +  - ''**sudo apt-get install software-properties-common**'' 
 + 
 +Konfiguration Datei in **/usr/local/nginx-streaming/conf** 
 + 
 +  - ''**cd /usr/local/nginx-streaming/conf**'' 
 +  - ''**nano nginx.conf**'' 
 + 
 +In Konfiguration Datei es gibt zwei block: RTMP und http 
 +   * RTMP  
 +**Listen 1935:** rtmp funktioniert in Port 1935\\ 
 +**Application live:** hier wird der Format von Video umgesetzt\\ 
 +**Input Format:** .mp4\\ 
 +**Output Format:** .flv\\ 
 +**Input Video Source:** /var/videos/MP4/\\ 
 +**Output Video Source:** rtmp://localhost/live360P/reiseFulda.flv\\ 
 + 
 +//Mit diesem Kommando wird das Video umgewandelt:// \\ 
 + 
 +exec ffmpeg -i /var/videos/MP4/reiseFulda1.mp4 -threads 1 -c:v libx264 -profile:v baseline -b:v 350K -s 640x360 -f flv -c:a aac -ac 1 -strict -2 -b:a 56k rtmp://localhost/live360p/reiseFulda1.flv lol 
 + 
 +<hidden> 
 +{{:dienst05ws2017:conf1.png?direct&5000|}}   \\            
 +{{:dienst05ws2017:conf2.png?direct&400|}}</hidden> \\ 
 + 
 + 
 + 
 + 
 +======Trouble Shooting====== 
 + 
 +Oft gibt es Problem bei Einbindung der Web Player zu der Webseite \\ 
 +{{:dienst05ws2017:streamingfehler.png?direct&450|}} 
 + 
 +Server Startet nginx Server nicht selbst. 
 +Transkodierung von zu Streaming Video geht nicht automatisch\\ 
 +Beim Ausführung der nginx_server bekommen wir Fehler, dass Port sind schon belegt (sieht Bilder) \\ 
 +{{:dienst05ws2017:nginxfehler.png?direct&400|}} 
 + 
 +__**Prozessablauf für die Fehlerbehebung**__ 
 + 
 +Ein Skript wurde hergestellt um diese Problem zu beheben 
 + 
 +  - Alle nginx stoppen                        {{ :dienst05ws2017:restart_nginx.png?direct&450|}} 
 +  - Gucke welche port/ipaddress benutzt nginx                                  
 +  - Starte der Richtige nginx in ''/usr/local/nginx-streaming/sbin/nginx'' 
 +  - Schaue nochmals welche Port ist besetzt 
 +  - Alle ffmpeg stoppen 
 +  - Ausführe ich die Transcodierung \\ 
 + 
 + 
 + 
 + 
 + 
 +====== Dns-Server: Installation und Konfiguration ====== 
 + 
 +In /etc/bind/named.conf.options   ipaddresse von Google(8.8.8.8) in Forwards block hinzufügen. 
 + 
 +keine externe zugrifft würde konfiguriert.  
 +<hidden> 
 +{{:dienst05ws2017:dns_server.png?direct&800|}}</hidden> 
 + 
 +======Skalierung, Backup und Restore====== 
 + 
 +Unter Skalierung versteht man die Möglichkeit der Anpassung von der Server an eine kommende Situation ohne große Veränderung von Architekturen. Das kann kein Problem bei mir sein, da wir erstmals eine Dynamische Festplatte bekommen haben(laut Prof Rieger). Mit der Loadbalancer könnte abhängig von der Abfrage entweder ein Server zur Verfügung stellen. Komponenten die einzeln keine Funktionalität(Abhängigkeiten) haben werden zusammengefasst und einzeln lauffähige Komponenten gekapselt. Loadbalancer prüft welche Server ist verfügbar. Und diese wird für die Streaming benutzt. 
 +Der Ausfall einer Komponente die anderen Bestandteile des Servers unbrauchbar macht, sind sie zusammengefasst. 
 + 
 + Da meine Instance zu groß(20giga) war könnte ich keine Schattenkopie erstellen. Damit andere Server gleiche Konfiguration bekommen, gibt es viel Möglichkeiten: 
 +  * Wichtige Datei von der erste Server zu den anderen Servern kopieren 
 +  * Oder nur die Konfiguration Datei exportieren (Vorteil: zeit sparen) 
 +Hinzu wurde eine eigene Script für Backup zu hergestellt. 
 + 
 + 
 + 
 +{{:dienst05ws2017:bild1.png?600|}} 
 + 
 +**Hinweis:** Hinweis: Skript soll alle Konfiguration Datei von nginx lokale speichern. Bei Ausfall einer Server könnte diese einfach wiederherstellen  
 + Es ist zwar nicht die beste Methode aber es gibt keine Methode, die 100% sicher ist. 
 + 
 +Falls Script nicht funktionniert,gibt es auch die Möglichkeit eine Ftp_Session (mit Winscp oder FileZilla) zu der Server zu erstellen. Dann Dateien lokale kopiert. 
 +Einfache aber dauert ewig bei große Festplatte. 
 +Und bei Ausfall nur wiederherstellen. 
 + 
 +Was mein Projekt betrifft habe ich Winscp benutzt und usr_Datei lokale gespeichert.( es gibt noch wichtige Datei wie zum Beispiel Root).\\ 
 +**Vorteil von Winscp: funktioniert gut mit Putty** 
 + 
 + 
 +======Monitoring====== 
 +Bei mir gibt es zwei teile von monitoring: 
 +  -Monitoring von der Streaming selbst  
 +  -Monitoring von der Server 
 + 
 +Monitoring von WunderTV erfolgt durch absetzen eines Ping-Requests und Empfang einer Ping-Response.\\ 
 +Und auch mit aufruft von dieser Url: http://192.168.73.145/stats 
 +Dadurch könnte ersehen Welche Video läuft und auch Streaming aktive oder nicht. 
 + 
 + 
 +  * **Streaming: inaktive** 
 +<hidden>{{:dienst05ws2017:streaminginactive.png?direct&600|}} 
 +</hidden> 
 +  * **Streaming: aktive** 
 +<hidden>{{:dienst05ws2017:streamingactive.png?direct&600|}}</hidden> 
 +======HAProxy für Load-Balancing: Installation und konfiguration====== 
 +[[https://gridscale.io/community/tutorials/haproxy-tutorial-installation-debian-linux/]] 
 +<hidden>                                                           
 +{{:dienst05ws2017:loadbalancer1.png?direct&300|}}</hidden>  
 +Ich habe die Konfiguration von haproxy nicht fertig gemacht aber ich gebe wie die Konfiguration gemacht könnten. 
 + 
 +Installation: ''**sudo apt-get install haproxy**'' 
 + 
 +Die Konfiguration erfolgt indem ich diese Datei **/etc/default/haproxy** editiere und 0 auf 1 setzen\\ 
 +<hidden>{{:dienst05ws2017:haproxy1.png?direct&600|}}</hidden> 
 + 
 + 
 +Dann nano **/etc/haproxy/haproxy.cfg** 
 + 
 +Hier werden ein paar Veränderung gemacht:\\ 
 +{{:dienst05ws2017:haproxystat.png?direct&600|}} 
 + 
 +Wenn ich möchte, dass HAProxy bei jedem Systemart ausgeführt wird, verwende ich die Befehl **update-rc.d.**:\\ 
 +''Sudo update-rc.d haproxy defaults'' 
 + 
 +Dann bei Aufruf diese url auf eine Webseite 
 +http://192.168.73.153/haproxy?stats 
 + 
 + 
 +{{:dienst05ws2017:haproxystats.png?direct&800|}} 
 + 
 + 
 +====== Webseite ====== 
 + 
 +In meiner Webseite kann der Benutzer                 {{ :dienst05ws2017:jwplayer.png?direct&300|}} 
 +  - Sich anmelden 
 +  - Ein paar video anschauen                                   
 +  - Video suchen 
 +  - Chat(noch nicht implementiert)                           
 + 
 + 
 + 
 +====== Screenshot fertige webseite ====== 
 +<hidden>{{:dienst05ws2017:fertige_webseite.png?direct&800|}}</hidden> 
 + 
 + 
 + 
 + 
 +====== Quelle zusammengefasst ====== 
 + 
 +https://www.leaseweb.com/labs/2013/11/streaming-video-demand-nginx-rtmp-module/ 
 + 
 +https://www.vultr.com/docs/setup-nginx-rtmp-on-ubuntu-14-04 
 + 
 +https://gridscale.io/community/tutorials/haproxy-tutorial-installation-debian-linux/ 
 + 
 +https://www.foxplex.com/sites/haproxy-load-balancer-mit-ubuntu-debian/ 
 + 
 +https://forum.ubuntu-fr.org/viewtopic.php?id=208 
 + 
 +https://wiki.ubuntuusers.de/nginx/ 
 + 
 +  * FolieVolesung von Intranet  
 +  * Livestreaming von wi2016 
 + 
 + 
  
-Read the following pages for further information: 
  
-  * [[section_editing|Section Editing]] 
-  * [[edit window|The edit window]] 
-  * [[wiki:syntax| Formatting syntax]] 
-  * [[tips:good style|Good style]] 
-  * [[summary|The edit summary]] 
-  * [[attic|Old page revisions]] 
-  * [[page#create a page|Creating a new page]] 
  
  
editing.txt · Last modified: 2024-02-29 14:04 by 190.153.116.145

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki