Livestream in HTML Seite auf PI einbinden

  • Hallo,

    unser Projekt sieht vor, einen Livestream mithilfe einer Webcam auf einem PI aufzunehmen, um diesen auf einem weiteren PI innerhalb einer HTML Webseite zu öffnen. Das erstellen des Streams hat super funktioniert.

    Nun ist die Frage, wie die HTML Seite aufgebaut sein muss, damit sie den Stream anzeigt? Funktioniert dies mit Midori und welche Plugins werden gebraucht? Nach Internetrecherche bin ich leider nicht zu einem Ergebnis gekommen, welches auch auf dem PI funktioniert..

  • Ich habe mich selbstverständlich auch schon über Google schlau gemacht und bin zu keinem Ergebnis gekommen. Deshalb ja der post hier..

    Zu deinem Link: In dem Tutorial wird das Erstellen/Einbinden eines Streams einer Raspberry Pi Kamera(H264) erklärt..ich besitze jedoch jediglich eine ganz normale USB- Webcam.

  • unbekannt
    1. August 2013 um 00:12
    Zitat

    Um den Stream auf einer Webseite bereitzustellen (Deswegen auch Apache) benutzen wir diesen HTML Code:

    Code
    <iframe src="http://RPIIP:8081/?action=stream" height="640" width="480" frameborder="0"></iframe>
  • Da mich das zZt selber interessiert hab ich auch mal ein bisschen gegoogled aber dabei herausgefunden das Flash Player aussterben. Kaum jemand benutzt heutzutage noch Flash Player. Flash ist immerhin eine der Hauptquellen für Browser Exploits der letzten Jahre gewesen.
    Ein weiterer Grund ist weil Tablets und Smartphones kaum bis garkein Flash abspielen können. Desweiteren ist Adobe Flash closed-source und beinhaltet generelle Sicherheitslücke während alle alternativen open-source sind.

    Wenn man es auf dem PI mit ffmpeg in mp4 h264 encoded hat man ein Delay von über ner Minute...
    mjpeg_streamer ist auch mist wenn man mehr als 2 FPS haben möchte.

    Leider muss man mit einer Verzögerung leben sofern man die älteren Lösungen verwendet, denn da wird das Signal in kleinere Stücke zerteilt.. Mehr dazu steht zB > hier <

    Mit einer anderen Möglichkeit wie zB gstreamer1.0 soll ein Delay (Verzögerung) von <0,5 Sekunden möglich sein.


    Um auf der sicheren Seite zu sein sollte man auf HTML5 setzen und da würde sich zum Beispiel flowplayer anbieten.

    Eine Alternative wäre auch > dieses <
    (Quelle mit weiteren Diskussionen)

    Dann hab ich auch noch > das hier < gefunden. das ist ein Link von dem was ich oben bereits nannte (http://github.com/herry1234).
    Dazu steht auch > hier < etwas.


    Beachten muss man auch - falls benötigt - dass ffmpeg selber kompiliert werden muss und das dauert gut 4 Stunden.

    &quot;build ffmpeg from source&quot;
    Code
    sudo aptitude remove ffmpeg
    cd /usr/src
    sudo mkdir ffmpeg
    sudo chown `whoami`:users ffmpeg
    git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg
    cd ffmpeg
    ./configure && make && sudo make install

    Oder das Paket über deb-multimedia repository installieren

    &quot;/etc/apt/sources.list&quot;
    Code
    deb http://www.deb-multimedia.org wheezy main
    deb http://www.deb-multimedia.org wheezy-backports main
  • Hier eine kurze installations Anleitung für > diese Livestream Beschreibung <
    (bitte erst ein mal durchlesen)

    Bei yourpassword solltet ihr irgendwas eintragen, aber darauf achten dass das überall identisch ist.

    Anschließend surft ihr die IP eures RaspberryPI's an und solltet dann den Stream der Camera sehen :)


    Ich hab in der Anleitung absichtlich die Sources von nodejs und npm verwendet um jeweils die aktuellsten Versionen zu installieren, denn ich hatte Probleme mit npm aus dem Repository das ws Paket zu laden - Im Repository ist zudem nur nodejs v0.6.19 verfügbar aber aktuell ist v0.10.30. Mit der aktuellen Version funktioniert das aber.
    Am besten wärs auch wenn ihr vor dem kompilieren das Paket/Programm screen installiert, startet und dann innerhalb des screen's kompiliert, dann braucht ihr nicht die ganze Zeit ein Terminal auf haben (später kommt ihr mithilfe screen -r wieder in den screen rein)

    Durch das selber kompilieren dauert es dann aber eben auch länger.. Aber es lohnt sich ca. 4h zu warten :angel:

    Alternativ kann man das ws Module aber auch über github laden:

    Code
    git clone git://github.com/einaros/ws.git /usr/src/ws


    Achtet auch darauf das der Memory-Split auf mindestens 128 eingestellt ist also die GPU 128MB vom Ram kriegt, weil die RaspiCam an die GPU angeschlossen ist und die ganze Arbeit erledigt ;)

    Ich empfehle außerdem die Verwendung von nginx anstelle von apache2, der ist nicht nur schneller sondern verbraucht auch weniger CPU+RAM

    &quot;Install nginx with php support&quot;

    Ich installier hier einen ganzen Batzen an Modulen damit auch wirklich alles funktioniert. Es wird aber im Grunde nur nginx und php5-fpm benötigt, deshalb hab ich das in 3x "apt-get install" Zeilen aufgesplittet.. Ihr die 2.Zeile also auch weglassen.

    Code
    apt-get install nginx
    apt-get install php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
    apt-get install php5-fpm
    mkdir -p /var/www
    chown -R www-data:www-data /var/www
    chmod -R 775 /var/www

    /etc/nginx/sites-available/default anpassen sodass die Datei wie folgt aussieht:

    (auskommentierte Blöcke am Anfang und Ende habe ich mal weggelassen, die könnt ihr aber ruhig drin behalten)

    Anschließend die Dienste neu starten:

    Code
    /etc/init.d/nginx restart
    /etc/init.d/php5-fpm restart
  • Hey,

    erstmal viiiiiiieeelen Dank für die super Antworten, der Stream läuft jetzt :)

    Ein Problem hätte ich jedoch noch. Wie setze ich den Stream am besten online, sodass ich vom anderen Pi auch ohne lokales Netzwerk und stattdessen über das Internet darauf zugreifen kann?!

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!