Streaming obrazu przez kamere internetowa na stronie WWW pod systemem Ubuntu oraz integracja z Joomla CMS

Witam serdecznie. Chciałbym przedstawić sposób konfiguracji kamery internetowej pod systemem Ubuntu tak, by obraz był streamowany na stronie WWW.
Następnie zaprezentuje sposób, jak zintegrować skrypt Java Applet by działał pod CMS Joomla.
System Ubuntu zainstalowany jest na komputerze netbook Samsung N130 w którym zamontowana jest kamera SCB-0340N

Dokładna wersja systemu to:

Ubuntu 11.10 (Linux 3.0.0-12-generic #20-Ubuntu SMP Fri Oct 7 14:50:42 UTC 2011 i686 i686 i386 GNU/Linux)
1. Instalacja Serwera WWW

Do instalacji serwera WWW użyjemy komendy tasksel. Jeśli nie mamy zainstalowanej tej aplikacji, otrzymamy komunikat:

“The program ‘tasksel’ is currently not installed. You can install it by typing:
sudo apt-get install tasksel”

Aby dokonać instalacji postąpimy zgodnie z instrukcją, którą otrzymaliśmy w powyższym komunikacie. Wpisujemy komende :

sudo apt-get install tasksel

Gdy pojawi sie komunikat: “After this operation, 385 kB of additional disk space will be used. Do you want to continue [Y/n]?” – Naciskamy klawisz Y (Yes).
Oznacza to, ze aplikacja tasksel będzie zajmować 385kB na naszym twardym dysku. (dane aktualne na dzień 2012.03.29). Po paru sekundach instalacja powinna dobiec końca.
Następnym krokiem będzie uruchomienie aplikacji tasksel i zainstalowanie LAMP (skrót od Linux , Apache HTTP Server, MySQL oraz PHP). Wpisujemy komendę:

tasksel

Zaznaczamy [*] LAMP server, wciskamy klawisz TAB i klikamy na opcje <Ok> (zatwierdzając klawiszem Enter).
Ustawiamy hasło dla serwera MySQL i zatwierdzamy przyciskiem <Ok>.
W ten oto sposób zainstalowaliśmy serwer WWW ( z obsługą PHP oraz MySQL). Dla pewności czy nasz serwer WWW działa prawidłowo, wpisujemy “lynx localhost“,
lub w przeglądarce na systemie gdzie zainstalowaliśmy LAMP wpisujemy “http://localhost”.

2. Instalacja Webcam-Server

Zacznijmy od zapisania aplikacji webcam-server ze strony “http://packages.ubuntu.com/hardy/i386/webcam-server/download”;
Wybieramy jeden z adresow zamieszczonych (copy link) na powyższej stronie i wpisujemy wget “adres”, czyli przykładowo:

“wget http://mirror.pnl.gov/ubuntu//pool/universe/w/webcam-server/webcam-server_0.50-2_i386.deb”;

Następnie instalujemy plik z rozszerzeniem .DEB, za pomoca komendy:

dpkg -i webcam-server_0.50-2_i386.deb
(jeśli plik ma długą nazwę, wystarczy ze wpiszemy parę pierwszych liter i wciśniemy klawisz TAB, a system automatycznie dokończy nazwę pliku)

Po zainstalowaniu aplikacji, zgrywamy skrypt webcam-server z “http://wacior.pl/download/webcam-server”; do katalogu /etc/init.d/, wpisując komendy:

wget http://wacior.pl/download/webcam-server
mv webcam-server /etc/init.d
chmod +x webcam-server
update-rc.d webcam-server defaults

Dzięki temu skrypt będzie automatycznie uruchamiany przy każdym starcie systemu. Sprawdzamy czy skrypt nie wyrzuca żadnych błędów.

webcam-server start

Jeśli pojawi się komunikat:
“Starting webcam-server: Started!”
Oznacza to, ze wszystko prawidlowo zostalo skonfigurowane.

W przypadku pojawienia sie bledu: “ERROR: ld.so: object ‘/usr/lib/i386-linux-gnu/libv4l/v4l1compat.so’ from LD_PRELOAD cannot be preloaded: ignored,” – musimy upewnić się czy ścieżka do pliku v4l1compat.so jest prawidłowa. Musimy odszukać plikv4l1compat.so na naszym dysku twardym. Do tego celu użyjemy komendy:

find / | grep v411compat.so

Po chwili powinna ukazać się ścieżka z plikiem. Poprawiamy ja w skrypcie webcam-server, który umieściliśmy w katalogu /etc/init.d, używając do tego celu edytora nano:

cd /etc/init.d
nano webcam-server

Szukamy linijki z adresem do ścieżki z plikiem v411compat.so:

export LD_PRELOAD=/usr/lib/i386-linux-gnu/libv4l/v4l1compat.so

Poprawiamy ścieżkę, wpisując tą, która wyświetliła nam się po wpisaniu komendy find / | grep v411compat.so.

Tutaj tez możemy ustawić parametry naszego webcam-servera, czyli:

-g 640×480 – rozdzielczość z jaką będzie wyświetlany obraz (upewnijmy się jakie rozdzielczości są obsługiwane przez nasza kamerę internetowa)
-p = port – port na którym działa serwer Webcam
-c = adres IP naszego serwera/komputera

Zapisujemy plik naciskając:
CTRL+X
Y
ENTER
3. Konfiguracja strony HTML do wyswietlania zrodla z kamerki

Kopiujemy domyślną stronę HTML dla naszego Webcam-Servera, za pomocą komend:

cd /usr/share/doc/webcam-server/applet
cp * /var/www/

Przechodzimy do katalogu /var/www/ (komenda “cd /var/www/“) i edytujemy plik webcam.html, wpisując komendę:

nano webcam.html

Oto parametry, które możemy zmienić w naszej domyślnej stronie webcam.html:

<APPLET CODE = “WebCamApplet.class” archive=”applet.jar” WIDTH = “640” HEIGHT = “480”> – zmieniając wartości Width i Height określamy rozdzielczość wyświetlającego obrazu
<param name=URL value=”http://192.168.2.105:8888″> – adres naszego Webcam-Servera (taki jak w pliku webcam-server)
<param name=FPS value=”20″> – ilość wyświetlanych klatek na sekundę
<param name=width value=”640″> – rozdzielczość wyświetlającego obrazu (szerokość)
<param name=height value=”480″> – rozdzielczość wyświetlającego obrazu (wysokość)
</APPLET>
4. Intergracja z CMS Joomla:

-Aby dodać kamerę z naszego Webcam-Servera do Joomla, należy najpierw rozpocząć od dodania modułu, który będzie za to odpowiedzialny.

->Extensions -> Module Manager
->New
->Title -> Webcam Camera
->Wrapper (dzięki temu, możemy wskazać plik HTML z zewnętrznego źródła do okna z naszym modułem)
->z prawej strony w Module Parameters -> URL wpisujemy adres ze stroną webcam.html, którą umieściliśmy na naszym serwerze
(należy liczyć się z tym, że musimy w tym celu posiadać zewnętrzny adres IP, jeśli chcemy, żeby ludzie spoza sieci lokalnej mogli zobaczyć naszą witrynę z kamerą). W naszym przypadku będzie to adres http://213.146.53.164/webcam2.html
->Position -> wpisujemy webcam (wykorzystamy pozycje webcam do tego by umieścić moduł w artykule)

Jeśli chcemy, by nasza kamera była umieszczona w artykule na głównej stronie, należy utworzyć artykuł (Add New Article), a następnie wpisać:

{#loadposition webcam#}  – wpisujac ta linijke do naszego artykulu, pamietajmy by usunac # , oraz zeby nie bylo spacji miedzy “{” i “l” , oraz “m” i “}”

Komenda ta załaduje nam moduł, który został umieszczony w pozycji (position) webcam do naszego artykułu. Zaznaczamy FrontPage -> Yes.

Uruchamiamy nasza stronę. Kamera powinna być umieszczona na samym środku naszej strony. Jeśli rozmiar jest za duży, to możemy dostosować rozmiar w pliku webcam.html oraz w parametrach naszego świeżo dodanego modułu (Width & Height).

Posted by jackvonthor