This page has been robot translated, sorry for typos if any. Original content here.

Organisation der Live-Übertragung von der IP-Kamera vor Ort

Auf Seite


Organisation der Live-Übertragung von der IP-Kamera vor Ort

Aufgabe

Betrachten Sie die Aufgabe, eine Live-Videoübertragung von einer IP-Kamera zu organisieren.

Unser Stand besteht aus drei Komponenten:

  • IP-Kamera
  • Medienserver
  • Flash Player im clientseitigen Browser

Wählen Sie die IP-Kamera

Um bequem von der Kamera streamen zu können, muss diese die Live-Videoübertragung unterstützen (normalerweise über das RTSP- Protokoll). Es gibt eine andere Option, wenn Sie jederzeit ein JPEG mit dem aktuellen Bild über HTTP von der Kamera abrufen können, dies ist jedoch nicht so praktisch. Daher wurde die D'Link DCS-2121-Kamera mit RTSP-Unterstützung ausgewählt.

Medienserver

Der schwierigste Teil der Konfiguration besteht darin, dass die Funktionen zum Abrufen von Videos von der Kamera, zum Konvertieren in das erforderliche Format, zum Zwischenspeichern und zum Verteilen an Clients darauf beschränkt sind. Mit Blick auf die Zukunft werde ich sagen, dass es in diesem Fall zweckmäßig ist, entweder über das von Flash-Playern nativ unterstützte Adobe RTMP-Protokoll oder über HTTP zu verbreiten.

Für RTMP gibt es kostenpflichtige Lösungen: FMS , Wowza (letzteres ist kostenlos mit einer Anzahl von weniger als zehn gleichzeitigen Verbindungen) und Free ( red5 und rtmpd ).

Wenn Sie über HTTP verteilen, gibt es noch mehr Optionen, da die Aufgabe in zwei Unteraufgaben unterteilt ist:

  1. Videokonvertierung
  2. Videoverteilung

Natürlich wächst die Anzahl der Kombinationen. Für die Verteilung können Sie beispielsweise Apache oder Lighthttpd verwenden. Zu konvertieren - ffmpeg.

In meinem Fall musste alles getan werden.

  1. unter Linux
  2. kostenlos
  3. einfach

Daher habe ich bei der einfachen, meiner Meinung nach einfachen Version aufgehört, bei der wir auf dem Server nur ein Programm benötigen - den VLC- Videoplayer, den wir übrigens für unsere Bedürfnisse konfigurieren und kompilieren werden. Dieser Videoplayer unterstützt RTMP noch nicht normal, daher geben wir die FLV-Datei über HTTP weiter.

Flash Player im clientseitigen Browser

Grundsätzlich sollte sich jeder melden, aber aus irgendeinem Grund konnte ich JW Player nicht einrichten. Die FLV-Datei wurde unendlich auf den Client heruntergeladen und die Pufferung wurde nicht beendet. Die Deadline wurde gedrückt und der Player in den Flow-Player geändert, wodurch dieses Problem verschwand.

Anpassung

Variablen

Um keine weiteren Reservierungen vorzunehmen, gehen wir davon aus, dass ich die Server-IP-Adresse - 10.0.0.2, Kameras - 10.0.0.3, Maske 255.0.0.0 und Gateway 10.0.0.1 habe. Unter Linux arbeite ich unter user user und führe alle erforderlichen Befehle über sudo aus .

Kameraeinstellung

Wir werden die Kamera über das Webinterface konfigurieren, die notwendigen Netzwerkparameter einstellen: IP-Adresse, Maske, Gateway, Uhrzeit einstellen. Wir müssen auch den Port angeben, an dem die Kamera den RTSP-Stream überträgt (der Standard-Port 554 wird verwendet, und ich habe ihn verlassen).

Im Abschnitt "Audio und Video" werden die Eigenschaften des Videos festgelegt, die wir benötigen. In jedem Fall können wir die Bitrate und Größe des Images später auf dem Server während der Konvertierung ändern. Um jedoch alles in Ordnung zu halten, werden wir hier und jetzt darauf hinweisen. Wir werden MPEG4 640x480, 15 fps, 512 kb Bitrate verwenden.

Auch hier muss die RTSP-URL angegeben werden.Diese Adresse wird beim Abrufen des Streams von der Kamera verwendet, wir müssen nur den Dateinamen angeben. Ich habe camera1.sdp eingegeben. Folglich ist der Stream über den Link rtsp: //10.0.0.3: 554 / camera1.sdp verfügbar

Server-Setup

Jedes Linux wird ausreichen, ich habe Debian Lenny verwendet. Erstellen Sie einen Ordner in der Heimat, in dem wir arbeiten werden:

  1. mkdir ~user / install cd ~user / install
  2. mkdir ~user / install cd ~user / install

Wir müssen Codecs herunterladen, damit wir das Debian-Multimedia-Repository verbinden können:

  1. wget http: // www.debian-multimedia.org / pool / main / d / debian-multimedia-keyring / debian-multimedia-keyring_2008.10.16_all.deb dpkg -i . / debian-multimedia-keyring_2008.10.16_all.deb
  2. wget http: // www.debian-multimedia.org / pool / main / d / debian-multimedia-keyring / debian-multimedia-keyring_2008.10.16_all.deb dpkg -i . / debian-multimedia-keyring_2008.10.16_all.deb

Fügen Sie eine Zeile zu /etc/apt/sources.list hinzu

  1. deb http: // www.debian-multimedia.org stable main non-freel.deb

Wir müssen viele Pakete installieren, bevor wir direkt zu VLC gehen. Ich habe versucht, hier alles aufzulisten, aber vielleicht reicht etwas nicht aus, in diesem Fall müssen die fehlenden geliefert werden.

  1. apt-get update apt-get install yasm make subversion xcb libxcb1-dev libxcb-shm0-dev libxcb-keysyms0-dev \ libavformatcvs51 libavcodeccvs51 libavcodeccvs51-dev libavformatcvs51-dev libavutilcvs49-dev \ autoconf g++ gcc liba52-0.7.4-dev libdvbpsi3-dev libdvbpsi3 libfaad-dev libfaac-dev libfribidi-dev \ libavutilcvs49 libavahi-client3 libavahi-common-dev libpostproccvs51-dev libswscalecvs0-dev \ libswscalecvs0 libxvidcore4-dev libxvidcore4 libx264-dev libx264- 54 automake1.9 libgcrypt11-dev \ liblame-dev liblua5.1- 0 -dev libmad0-dev libmpeg2- 4 -dev libogg-dev libvorbis-dev zlib1g-dev \ libvcdinfo-dev libiso9660-dev libcddb2-dev libflac-dev libx264-dev x264
  2. apt-get update apt-get install yasm make subversion xcb libxcb1-dev libxcb-shm0-dev libxcb-keysyms0-dev \ libavformatcvs51 libavcodeccvs51 libavcodeccvs51-dev libavformatcvs51-dev libavutilcvs49-dev \ autoconf g++ gcc liba52-0.7.4-dev libdvbpsi3-dev libdvbpsi3 libfaad-dev libfaac-dev libfribidi-dev \ libavutilcvs49 libavahi-client3 libavahi-common-dev libpostproccvs51-dev libswscalecvs0-dev \ libswscalecvs0 libxvidcore4-dev libxvidcore4 libx264-dev libx264- 54 automake1.9 libgcrypt11-dev \ liblame-dev liblua5.1- 0 -dev libmad0-dev libmpeg2- 4 -dev libogg-dev libvorbis-dev zlib1g-dev \ libvcdinfo-dev libiso9660-dev libcddb2-dev libflac-dev libx264-dev x264
  3. apt-get update apt-get install yasm make subversion xcb libxcb1-dev libxcb-shm0-dev libxcb-keysyms0-dev \ libavformatcvs51 libavcodeccvs51 libavcodeccvs51-dev libavformatcvs51-dev libavutilcvs49-dev \ autoconf g++ gcc liba52-0.7.4-dev libdvbpsi3-dev libdvbpsi3 libfaad-dev libfaac-dev libfribidi-dev \ libavutilcvs49 libavahi-client3 libavahi-common-dev libpostproccvs51-dev libswscalecvs0-dev \ libswscalecvs0 libxvidcore4-dev libxvidcore4 libx264-dev libx264- 54 automake1.9 libgcrypt11-dev \ liblame-dev liblua5.1- 0 -dev libmad0-dev libmpeg2- 4 -dev libogg-dev libvorbis-dev zlib1g-dev \ libvcdinfo-dev libiso9660-dev libcddb2-dev libflac-dev libx264-dev x264
  4. apt-get update apt-get install yasm make subversion xcb libxcb1-dev libxcb-shm0-dev libxcb-keysyms0-dev \ libavformatcvs51 libavcodeccvs51 libavcodeccvs51-dev libavformatcvs51-dev libavutilcvs49-dev \ autoconf g++ gcc liba52-0.7.4-dev libdvbpsi3-dev libdvbpsi3 libfaad-dev libfaac-dev libfribidi-dev \ libavutilcvs49 libavahi-client3 libavahi-common-dev libpostproccvs51-dev libswscalecvs0-dev \ libswscalecvs0 libxvidcore4-dev libxvidcore4 libx264-dev libx264- 54 automake1.9 libgcrypt11-dev \ liblame-dev liblua5.1- 0 -dev libmad0-dev libmpeg2- 4 -dev libogg-dev libvorbis-dev zlib1g-dev \ libvcdinfo-dev libiso9660-dev libcddb2-dev libflac-dev libx264-dev x264
  5. apt-get update apt-get install yasm make subversion xcb libxcb1-dev libxcb-shm0-dev libxcb-keysyms0-dev \ libavformatcvs51 libavcodeccvs51 libavcodeccvs51-dev libavformatcvs51-dev libavutilcvs49-dev \ autoconf g++ gcc liba52-0.7.4-dev libdvbpsi3-dev libdvbpsi3 libfaad-dev libfaac-dev libfribidi-dev \ libavutilcvs49 libavahi-client3 libavahi-common-dev libpostproccvs51-dev libswscalecvs0-dev \ libswscalecvs0 libxvidcore4-dev libxvidcore4 libx264-dev libx264- 54 automake1.9 libgcrypt11-dev \ liblame-dev liblua5.1- 0 -dev libmad0-dev libmpeg2- 4 -dev libogg-dev libvorbis-dev zlib1g-dev \ libvcdinfo-dev libiso9660-dev libcddb2-dev libflac-dev libx264-dev x264
  6. apt-get update apt-get install yasm make subversion xcb libxcb1-dev libxcb-shm0-dev libxcb-keysyms0-dev \ libavformatcvs51 libavcodeccvs51 libavcodeccvs51-dev libavformatcvs51-dev libavutilcvs49-dev \ autoconf g++ gcc liba52-0.7.4-dev libdvbpsi3-dev libdvbpsi3 libfaad-dev libfaac-dev libfribidi-dev \ libavutilcvs49 libavahi-client3 libavahi-common-dev libpostproccvs51-dev libswscalecvs0-dev \ libswscalecvs0 libxvidcore4-dev libxvidcore4 libx264-dev libx264- 54 automake1.9 libgcrypt11-dev \ liblame-dev liblua5.1- 0 -dev libmad0-dev libmpeg2- 4 -dev libogg-dev libvorbis-dev zlib1g-dev \ libvcdinfo-dev libiso9660-dev libcddb2-dev libflac-dev libx264-dev x264
  7. apt-get update apt-get install yasm make subversion xcb libxcb1-dev libxcb-shm0-dev libxcb-keysyms0-dev \ libavformatcvs51 libavcodeccvs51 libavcodeccvs51-dev libavformatcvs51-dev libavutilcvs49-dev \ autoconf g++ gcc liba52-0.7.4-dev libdvbpsi3-dev libdvbpsi3 libfaad-dev libfaac-dev libfribidi-dev \ libavutilcvs49 libavahi-client3 libavahi-common-dev libpostproccvs51-dev libswscalecvs0-dev \ libswscalecvs0 libxvidcore4-dev libxvidcore4 libx264-dev libx264- 54 automake1.9 libgcrypt11-dev \ liblame-dev liblua5.1- 0 -dev libmad0-dev libmpeg2- 4 -dev libogg-dev libvorbis-dev zlib1g-dev \ libvcdinfo-dev libiso9660-dev libcddb2-dev libflac-dev libx264-dev x264
  8. apt-get update apt-get install yasm make subversion xcb libxcb1-dev libxcb-shm0-dev libxcb-keysyms0-dev \ libavformatcvs51 libavcodeccvs51 libavcodeccvs51-dev libavformatcvs51-dev libavutilcvs49-dev \ autoconf g++ gcc liba52-0.7.4-dev libdvbpsi3-dev libdvbpsi3 libfaad-dev libfaac-dev libfribidi-dev \ libavutilcvs49 libavahi-client3 libavahi-common-dev libpostproccvs51-dev libswscalecvs0-dev \ libswscalecvs0 libxvidcore4-dev libxvidcore4 libx264-dev libx264- 54 automake1.9 libgcrypt11-dev \ liblame-dev liblua5.1- 0 -dev libmad0-dev libmpeg2- 4 -dev libogg-dev libvorbis-dev zlib1g-dev \ libvcdinfo-dev libiso9660-dev libcddb2-dev libflac-dev libx264-dev x264

Der Rest wird von der Quelle aus eingestellt, um bestimmte Optionen aktivieren oder deaktivieren zu können. Beginnen wir mit der neuesten Version von ffmpeg:

  1. svn checkout svn : // svn.ffmpeg.org / ffmpeg / trunk ffmpeg cd ffmpeg . / configure make make install cd ..
  2. svn checkout svn : // svn.ffmpeg.org / ffmpeg / trunk ffmpeg cd ffmpeg . / configure make make install cd ..
  3. svn checkout svn : // svn.ffmpeg.org / ffmpeg / trunk ffmpeg cd ffmpeg . / configure make make install cd ..
  4. svn checkout svn : // svn.ffmpeg.org / ffmpeg / trunk ffmpeg cd ffmpeg . / configure make make install cd ..
  5. svn checkout svn : // svn.ffmpeg.org / ffmpeg / trunk ffmpeg cd ffmpeg . / configure make make install cd ..
  6. svn checkout svn : // svn.ffmpeg.org / ffmpeg / trunk ffmpeg cd ffmpeg . / configure make make install cd ..

Wenn Sie mit dem h264-Codec arbeiten möchten, können Sie ffmpeg mit Optionen konfigurieren

./configure --enable-libx264 --enable-gpl

Als nächstes benötigen wir eine Live555-Streaming-Medienbibliothek, mit deren Hilfe unser VLC-Player mit RTSP zusammenarbeitet.

  1. wget http: // www.live555.com / liveMedia / public / live555-latest.tar.gz tar zxvf . / live555-latest.tar.gz cd live . / genMakefiles linux make cd ..
  2. wget http: // www.live555.com / liveMedia / public / live555-latest.tar.gz tar zxvf . / live555-latest.tar.gz cd live . / genMakefiles linux make cd ..
  3. wget http: // www.live555.com / liveMedia / public / live555-latest.tar.gz tar zxvf . / live555-latest.tar.gz cd live . / genMakefiles linux make cd ..
  4. wget http: // www.live555.com / liveMedia / public / live555-latest.tar.gz tar zxvf . / live555-latest.tar.gz cd live . / genMakefiles linux make cd ..
  5. wget http: // www.live555.com / liveMedia / public / live555-latest.tar.gz tar zxvf . / live555-latest.tar.gz cd live . / genMakefiles linux make cd ..
  6. wget http: // www.live555.com / liveMedia / public / live555-latest.tar.gz tar zxvf . / live555-latest.tar.gz cd live . / genMakefiles linux make cd ..

Gehen Sie nun zum VLC-Player. Gehen Sie zu http://download.videolan.org/pub/videolan/vlc/latest/ und suchen Sie nach der neuesten Version. Laden Sie dann den Quellcode herunter und entpacken Sie ihn. In meinem Fall sah es so aus:

  1. wget http: // download.videolan.org / pub / videolan / vlc / latest / vlc-1.1.0.tar.bz2 bzip2 -d vlc-1.1.0.tar.bz2 tar xvf . / vlc-1.1.0.tar cd vlc-1.1.0
  2. wget http: // download.videolan.org / pub / videolan / vlc / latest / vlc-1.1.0.tar.bz2 bzip2 -d vlc-1.1.0.tar.bz2 tar xvf . / vlc-1.1.0.tar cd vlc-1.1.0
  3. wget http: // download.videolan.org / pub / videolan / vlc / latest / vlc-1.1.0.tar.bz2 bzip2 -d vlc-1.1.0.tar.bz2 tar xvf . / vlc-1.1.0.tar cd vlc-1.1.0
  4. wget http: // download.videolan.org / pub / videolan / vlc / latest / vlc-1.1.0.tar.bz2 bzip2 -d vlc-1.1.0.tar.bz2 tar xvf . / vlc-1.1.0.tar cd vlc-1.1.0
Die VLC-Konfiguration ist der kreativste Teil. Wir werden versuchen, sie so zu gestalten, dass wir das haben, was wir brauchen, und nichts extra.
  1. . / configure --enable-release --enable-faad --disable-dbus --disable-hal \ --disable-remoteosd --disable-qt4 --disable-skins2 --disable-activex \ --disable-v4l2 --disable-libv4l2 --disable-x11 --disable-xvideo --disable-glx \ --disable-opengl --disable-visual --disable-nls --disable-mozilla \ --enable-realrtsp --enable-flac --disable-lua --prefix = / usr\ --with-live555-tree = / home / user / install / live --with-ffmpeg-tree = / home / user / install / ffmpeg
  2. . / configure --enable-release --enable-faad --disable-dbus --disable-hal \ --disable-remoteosd --disable-qt4 --disable-skins2 --disable-activex \ --disable-v4l2 --disable-libv4l2 --disable-x11 --disable-xvideo --disable-glx \ --disable-opengl --disable-visual --disable-nls --disable-mozilla \ --enable-realrtsp --enable-flac --disable-lua --prefix = / usr\ --with-live555-tree = / home / user / install / live --with-ffmpeg-tree = / home / user / install / ffmpeg
  3. . / configure --enable-release --enable-faad --disable-dbus --disable-hal \ --disable-remoteosd --disable-qt4 --disable-skins2 --disable-activex \ --disable-v4l2 --disable-libv4l2 --disable-x11 --disable-xvideo --disable-glx \ --disable-opengl --disable-visual --disable-nls --disable-mozilla \ --enable-realrtsp --enable-flac --disable-lua --prefix = / usr\ --with-live555-tree = / home / user / install / live --with-ffmpeg-tree = / home / user / install / ffmpeg
  4. . / configure --enable-release --enable-faad --disable-dbus --disable-hal \ --disable-remoteosd --disable-qt4 --disable-skins2 --disable-activex \ --disable-v4l2 --disable-libv4l2 --disable-x11 --disable-xvideo --disable-glx \ --disable-opengl --disable-visual --disable-nls --disable-mozilla \ --enable-realrtsp --enable-flac --disable-lua --prefix = / usr\ --with-live555-tree = / home / user / install / live --with-ffmpeg-tree = / home / user / install / ffmpeg
  5. . / configure --enable-release --enable-faad --disable-dbus --disable-hal \ --disable-remoteosd --disable-qt4 --disable-skins2 --disable-activex \ --disable-v4l2 --disable-libv4l2 --disable-x11 --disable-xvideo --disable-glx \ --disable-opengl --disable-visual --disable-nls --disable-mozilla \ --enable-realrtsp --enable-flac --disable-lua --prefix = / usr\ --with-live555-tree = / home / user / install / live --with-ffmpeg-tree = / home / user / install / ffmpeg
  6. . / configure --enable-release --enable-faad --disable-dbus --disable-hal \ --disable-remoteosd --disable-qt4 --disable-skins2 --disable-activex \ --disable-v4l2 --disable-libv4l2 --disable-x11 --disable-xvideo --disable-glx \ --disable-opengl --disable-visual --disable-nls --disable-mozilla \ --enable-realrtsp --enable-flac --disable-lua --prefix = / usr\ --with-live555-tree = / home / user / install / live --with-ffmpeg-tree = / home / user / install / ffmpeg

In der letzten Zeile geben wir die Pfade zu den Quellen ffmpeg und live555 an, mit denen wir in den vorherigen Schritten gearbeitet haben. Wenn Sie den Player als Root ausführen möchten , müssen Sie den Schlüssel --enable-run-as-root hinzufügen, wenn der h264-Codec -able -x264 lautet

Als nächstes kompilieren und installieren Sie den Player. Dieser Vorgang dauert lange. In meinem Fall fehlte immer etwas zum Kompilieren. Ich habe versucht, alle erforderlichen Bibliotheken aufzulisten, aber auf jeden Fall kann sich alles von Version zu Version ändern. Achten Sie also auf Fehler und geben Sie das aus, was es verlangt.

  1. make make install
  2. make make install

Die Installation der Software ist abgeschlossen. Sie müssen lediglich den Player mit den erforderlichen Parametern starten. Im Allgemeinen ist der VLC-Player in seiner Flexibilität einzigartig.

Der Player arbeitet für uns in zwei simultanen Streams: Der erste empfängt das Video von der Kamera per RTSP-Multiplex in MPEG TS und sendet es an localhost: 8001, der zweite nimmt das Ergebnis von localhost: 8001, komprimiert, codiert, verpackt in einen FLV-Container und gibt es an HTTP auf Port 8080. Wir erstellen zwei Dateien, um diese Streams auszuführen:

  1. mkdir ~user / scripts touch ~user / scripts / stream1.sh touch ~user / scripts / stream2.sh
  2. mkdir ~user / scripts touch ~user / scripts / stream1.sh touch ~user / scripts / stream2.sh
  3. mkdir ~user / scripts touch ~user / scripts / stream1.sh touch ~user / scripts / stream2.sh

Fügen Sie die Zeilen in stream1.sh ein:

  1. #!/bin/sh vlc -vv rtsp: // 10.0.0.3: 554 / camera1.sdp --rtsp-caching = 100000 --no-sout-audio --sout \ '#std{access=http,dst=127.0.0.1:8001,mux=ts}'
  2. #!/bin/sh vlc -vv rtsp: // 10.0.0.3: 554 / camera1.sdp --rtsp-caching = 100000 --no-sout-audio --sout \ '#std{access=http,dst=127.0.0.1:8001,mux=ts}'
  3. #!/bin/sh vlc -vv rtsp: // 10.0.0.3: 554 / camera1.sdp --rtsp-caching = 100000 --no-sout-audio --sout \ '#std{access=http,dst=127.0.0.1:8001,mux=ts}'

Hier haben wir dem Spieler angezeigt, was er verlieren soll. Der Stream von der Kamera rtsp: //10.0.03: 554 / camera1.sdp wurde als Quelle ausgewählt, gab die Größe des Puffers an und machte sofort die erste Stufe unseres Films stumm ( --no-sout-audio ). Das Ergebnis wird für diesen Stream unter http://127.0.0.1:8001V stream2.sh ausgegeben. Fügen Sie die folgenden Zeilen ein:

  1. #!/bin/sh vlc -vv http: // 127.0.0.1: 8001 --loop --http-caching = 10000 --sout \ '#transcode{vcodec=FLV1,vb=512,fps=15}:std{access=http{mime=video/x-flv},dst=:8080/view01.flv,mux=ffmpeg{mux=flv}}'
  2. #!/bin/sh vlc -vv http: // 127.0.0.1: 8001 --loop --http-caching = 10000 --sout \ '#transcode{vcodec=FLV1,vb=512,fps=15}:std{access=http{mime=video/x-flv},dst=:8080/view01.flv,mux=ffmpeg{mux=flv}}'
  3. #!/bin/sh vlc -vv http: // 127.0.0.1: 8001 --loop --http-caching = 10000 --sout \ '#transcode{vcodec=FLV1,vb=512,fps=15}:std{access=http{mime=video/x-flv},dst=:8080/view01.flv,mux=ffmpeg{mux=flv}}'

Der zweite Stream benötigt http://127.0.0.1:8001, hat einen eigenen Cache, überschreibt ihn (vb-Bitrate, fps-FPS) und verteilt ihn über HTTP auf Port 8080 als view01.flv-Datei. Wenn sich auf dem Server mehrere Schnittstellen befinden, können Sie auch die spezifische IP-Adresse der Schnittstelle angeben, auf der Sie dst verteilen möchten

Im industriellen Betrieb sollten Streams als Hintergrund ausgeführt werden und ohne Bezug zur Konsole. In unserem Beispiel werden sie einfach in zwei Konsolen gestartet. VLC sollte den Puffer einige Zeit füllen und dann im regulären Modus übergeben. Die Dauer des Füllens hängt von der Größe des Caches ab ( --rtsp-caching bzw. --http-caching ). Wir müssen mit dem Player eine Seite erstellen. Der Einfachheit halber werden wir dies auf demselben Server tun.

  1. apt-get install apache2
Player-Einstellungen
  1. cd / var / www /

Laden Sie als Nächstes den Flow Player herunter. Die Entwickler-Website verfügt über einen Einstellungsassistenten. Um sie zu verwenden, müssen Sie sich registrieren. Der Assistent ist unter http://flowplayer.org/setup/index.html verfügbar.

Da wir einen Live-Stream haben und die Kamera die aktuelle Uhrzeit direkt im Bild anzeigt, sollte der Player minimalistisch sein. Deaktivieren Sie alles außer der Schaltfläche "Vollbild", laden Sie den Player herunter und entpacken Sie den Inhalt des Archivs in den Ordner / var / www auf unserem Server.

Um alles perfekt zu machen, habe ich die Dateien swf und js in player.swf bzw. player.js umbenannt. Ich würde nicht über diese Tatsache schreiben, wenn ich nicht vergessen hätte, wie sie vorher genannt wurden. Deshalb werde ich im Text auch meine neuen Namen verwenden. Also erstellen wir eine HTML-Seite

  1. touch / var / www / index.html
Wir speichern darin den folgenden Text:
  1. < html >< head > < meta http-equiv = "content-type" content = "text/html; charset=UTF-8" >< script type = "text/javascript" src = "/player.js" >< / script > < title > Просмотр камеры 1 < / title > < / head > < body > < h1 > Камера № 1 < / h1 > < a href = "http://stream.kubsu.ru:8080/view01.flv" style = "display:block;width:520px;height:330px;margin:10px auto;" id = "player" > < / a > < script > flowplayer("player", "/player.swf"); < / script > < / body >< / html >
  2. < html >< head > < meta http-equiv = "content-type" content = "text/html; charset=UTF-8" >< script type = "text/javascript" src = "/player.js" >< / script > < title > Просмотр камеры 1 < / title > < / head > < body > < h1 > Камера № 1 < / h1 > < a href = "http://stream.kubsu.ru:8080/view01.flv" style = "display:block;width:520px;height:330px;margin:10px auto;" id = "player" > < / a > < script > flowplayer("player", "/player.swf"); < / script > < / body >< / html >
  3. < html >< head > < meta http-equiv = "content-type" content = "text/html; charset=UTF-8" >< script type = "text/javascript" src = "/player.js" >< / script > < title > Просмотр камеры 1 < / title > < / head > < body > < h1 > Камера № 1 < / h1 > < a href = "http://stream.kubsu.ru:8080/view01.flv" style = "display:block;width:520px;height:330px;margin:10px auto;" id = "player" > < / a > < script > flowplayer("player", "/player.swf"); < / script > < / body >< / html >
  4. < html >< head > < meta http-equiv = "content-type" content = "text/html; charset=UTF-8" >< script type = "text/javascript" src = "/player.js" >< / script > < title > Просмотр камеры 1 < / title > < / head > < body > < h1 > Камера № 1 < / h1 > < a href = "http://stream.kubsu.ru:8080/view01.flv" style = "display:block;width:520px;height:330px;margin:10px auto;" id = "player" > < / a > < script > flowplayer("player", "/player.swf"); < / script > < / body >< / html >
  5. < html >< head > < meta http-equiv = "content-type" content = "text/html; charset=UTF-8" >< script type = "text/javascript" src = "/player.js" >< / script > < title > Просмотр камеры 1 < / title > < / head > < body > < h1 > Камера № 1 < / h1 > < a href = "http://stream.kubsu.ru:8080/view01.flv" style = "display:block;width:520px;height:330px;margin:10px auto;" id = "player" > < / a > < script > flowplayer("player", "/player.swf"); < / script > < / body >< / html >
  6. < html >< head > < meta http-equiv = "content-type" content = "text/html; charset=UTF-8" >< script type = "text/javascript" src = "/player.js" >< / script > < title > Просмотр камеры 1 < / title > < / head > < body > < h1 > Камера № 1 < / h1 > < a href = "http://stream.kubsu.ru:8080/view01.flv" style = "display:block;width:520px;height:330px;margin:10px auto;" id = "player" > < / a > < script > flowplayer("player", "/player.swf"); < / script > < / body >< / html >
  7. < html >< head > < meta http-equiv = "content-type" content = "text/html; charset=UTF-8" >< script type = "text/javascript" src = "/player.js" >< / script > < title > Просмотр камеры 1 < / title > < / head > < body > < h1 > Камера № 1 < / h1 > < a href = "http://stream.kubsu.ru:8080/view01.flv" style = "display:block;width:520px;height:330px;margin:10px auto;" id = "player" > < / a > < script > flowplayer("player", "/player.swf"); < / script > < / body >< / html >
  8. < html >< head > < meta http-equiv = "content-type" content = "text/html; charset=UTF-8" >< script type = "text/javascript" src = "/player.js" >< / script > < title > Просмотр камеры 1 < / title > < / head > < body > < h1 > Камера № 1 < / h1 > < a href = "http://stream.kubsu.ru:8080/view01.flv" style = "display:block;width:520px;height:330px;margin:10px auto;" id = "player" > < / a > < script > flowplayer("player", "/player.swf"); < / script > < / body >< / html >
  9. < html >< head > < meta http-equiv = "content-type" content = "text/html; charset=UTF-8" >< script type = "text/javascript" src = "/player.js" >< / script > < title > Просмотр камеры 1 < / title > < / head > < body > < h1 > Камера № 1 < / h1 > < a href = "http://stream.kubsu.ru:8080/view01.flv" style = "display:block;width:520px;height:330px;margin:10px auto;" id = "player" > < / a > < script > flowplayer("player", "/player.swf"); < / script > < / body >< / html >
  10. < html >< head > < meta http-equiv = "content-type" content = "text/html; charset=UTF-8" >< script type = "text/javascript" src = "/player.js" >< / script > < title > Просмотр камеры 1 < / title > < / head > < body > < h1 > Камера № 1 < / h1 > < a href = "http://stream.kubsu.ru:8080/view01.flv" style = "display:block;width:520px;height:330px;margin:10px auto;" id = "player" > < / a > < script > flowplayer("player", "/player.swf"); < / script > < / body >< / html >
  11. < html >< head > < meta http-equiv = "content-type" content = "text/html; charset=UTF-8" >< script type = "text/javascript" src = "/player.js" >< / script > < title > Просмотр камеры 1 < / title > < / head > < body > < h1 > Камера № 1 < / h1 > < a href = "http://stream.kubsu.ru:8080/view01.flv" style = "display:block;width:520px;height:330px;margin:10px auto;" id = "player" > < / a > < script > flowplayer("player", "/player.swf"); < / script > < / body >< / html >
  12. < html >< head > < meta http-equiv = "content-type" content = "text/html; charset=UTF-8" >< script type = "text/javascript" src = "/player.js" >< / script > < title > Просмотр камеры 1 < / title > < / head > < body > < h1 > Камера № 1 < / h1 > < a href = "http://stream.kubsu.ru:8080/view01.flv" style = "display:block;width:520px;height:330px;margin:10px auto;" id = "player" > < / a > < script > flowplayer("player", "/player.swf"); < / script > < / body >< / html >
  13. < html >< head > < meta http-equiv = "content-type" content = "text/html; charset=UTF-8" >< script type = "text/javascript" src = "/player.js" >< / script > < title > Просмотр камеры 1 < / title > < / head > < body > < h1 > Камера № 1 < / h1 > < a href = "http://stream.kubsu.ru:8080/view01.flv" style = "display:block;width:520px;height:330px;margin:10px auto;" id = "player" > < / a > < script > flowplayer("player", "/player.swf"); < / script > < / body >< / html >
  14. < html >< head > < meta http-equiv = "content-type" content = "text/html; charset=UTF-8" >< script type = "text/javascript" src = "/player.js" >< / script > < title > Просмотр камеры 1 < / title > < / head > < body > < h1 > Камера № 1 < / h1 > < a href = "http://stream.kubsu.ru:8080/view01.flv" style = "display:block;width:520px;height:330px;margin:10px auto;" id = "player" > < / a > < script > flowplayer("player", "/player.swf"); < / script > < / body >< / html >
  15. < html >< head > < meta http-equiv = "content-type" content = "text/html; charset=UTF-8" >< script type = "text/javascript" src = "/player.js" >< / script > < title > Просмотр камеры 1 < / title > < / head > < body > < h1 > Камера № 1 < / h1 > < a href = "http://stream.kubsu.ru:8080/view01.flv" style = "display:block;width:520px;height:330px;margin:10px auto;" id = "player" > < / a > < script > flowplayer("player", "/player.swf"); < / script > < / body >< / html >

Alles ist fertig, gehen Sie zum Browser unter http://10.0.0.2/ und sehen Sie sich die Sendung an.