ubuntuusers.de

Camera-Aufnahmen endlich leicht möglich unter Ubuntu

Status: Gelöst | Ubuntu-Version: Ubuntu
Antworten |

tobiasschulz

Anmeldungsdatum:
31. Mai 2006

Beiträge: 339

Wohnort: /root/

Hier gibt es ein Tutorial wie man Webcams und andere USB-Kameras unter Ubuntu sum Laufen bringt:

sudo gedit /etc/apt/sources.ist


Oben das Einfügen:

deb http://home.arcor.de/tobidonald/apt-tobi/ stable main

Dann in Synaptic das Paket "tsclasses" (eine Java-Library) installieren.

Dann den Firefox aufrufen und auf
http://java.sun.com/javase/downloads/index.jsp
gehen, dann bei
"Java Runtime Environment (JRE) 5.0 Update 7"
auf "Download" klicken.
Dann auf Accept License klicken und
"Linux self-extracting file"
downloaden und nach /tmp abspeichern.

Dann ein Terminal öffnen und folgende Kommandos ausführen:

sudo mkdir -p /opt/java
cd /opt/java
cp /tmp/*.bin .
chmod 0777 jre-1_5_0_07-linux-i586.bin
./jre-1_5_0_07-linux-i586.bin

Dann "q" druecken und "yes" eingeben.

mv jre1.5.0_07 jre

Die Konsole offen lassen und im FF auf
http://java.sun.com/products/java-media/jmf/2.1.1/download.html
gehen, "Download" und "Linux Performance Pack" downloaden, nach /tmp.

In der Konsole:

cd jre
cp /tmp/jmf-2_1_1e-linux-i586.bin .
./jmf-2_1_1e-linux-i586.bin
ln -s /opt/java/jre/JMF-2.1.1e/lib/* /opt/java/jre/jre/lib/ext
ln -s /opt/java/jre/bin/java /bin

Dann kann das Programm für die Kamera mit

runcamview.sh

gestartet werden.

Viel Glück.

PS: Bitte nicht vor Erfahrungsberichten scheuen.

seth2k1

Avatar von seth2k1

Anmeldungsdatum:
7. Juni 2006

Beiträge: 124

Wohnort: Hanau

Wäre es nicht sinnvoller das ins Wiki zu stellen anstatt hier in "Projekte"? Schliesslich ist es ja genaugenommen keins 😉

EDIT
Sorry, schneller geschrieben als richtig gelsen.. Würde aber deutlicher auf dein Script hinweisen 😉

Manni2000

Avatar von Manni2000

Anmeldungsdatum:
7. Februar 2006

Beiträge: 33

Ich würde es ja gerne einmal ausprobieren um meine USB Webcam somit evtl. unter Linux Dapper Drake zum laufen zu bekommen. Jedoch würde ich vorher gerne wissen was ich da überhaupt mache im System und welche Befehle Dein Script ausführt und überhaupt hätte ich ganz gerne ein paar Hintergrundinformationen dazu da ich ungern einfach etwas mit meinem System anstelle ohne genau zu wissen was ich da gerade eigentlich tue...

Vielleicht bist Du ja so nett und fütterst mich dahingehend mit ein wenig mehr Informationen zu diesem "Projekt" - mit freundlichem Gruß Manni

tobiasschulz

(Themenstarter)

Anmeldungsdatum:
31. Mai 2006

Beiträge: 339

Wohnort: /root/

Manni2000 hat geschrieben:

Ich würde es ja gerne einmal ausprobieren um meine USB Webcam somit evtl. unter Linux Dapper Drake zum laufen zu bekommen. Jedoch würde ich vorher gerne wissen was ich da überhaupt mache im System und welche Befehle Dein Script ausführt und überhaupt hätte ich ganz gerne ein paar Hintergrundinformationen dazu da ich ungern einfach etwas mit meinem System anstelle ohne genau zu wissen was ich da gerade eigentlich tue...

Vielleicht bist Du ja so nett und fütterst mich dahingehend mit ein wenig mehr Informationen zu diesem "Projekt" - mit freundlichem Gruß Manni

Also.

Erst wird das aktuellste Java-Runtime-Environment von SUN heruntergeladen. Mit dem Open-Source-Java (GCJ) von Ubuntu funktioniert es nicht, so weit sind die OpenSource-Entwickler noch nicht. (jre-1_5_0_07-linux-i586.bin)

Dann wird die Multimedia-Bibliothek JMF (Java Media Framework) heruntergeladen. Diese macht die "Verbindung" von meinem Programm zu Kamra. (jmf-2_1_1e-linux-i586.bin)

Beides wird nach /opt installiert.

Dann wird mein Programm heruntergeladen, welche die JMF-Lib benutzt. Das Programm ist in der Java-Bibliothek "tsclasses" (Tobias Schulz Java Klassen) enthalten. Diese lib wird in Synaptic installiert.

Soweit verdtanden Manni2000?

mfg Tobias

adun Team-Icon

Avatar von adun

Anmeldungsdatum:
29. März 2005

Beiträge: 8606

Im Wiki steht wie man Sun Java .bin (beliebige Version) sauber installiert.

tobiasschulz

(Themenstarter)

Anmeldungsdatum:
31. Mai 2006

Beiträge: 339

Wohnort: /root/

adun hat geschrieben:

Im Wiki steht wie man Sun Java .bin (beliebige Version) sauber installiert.

Meine Lösung ist nicht unsauber.
Außerdem habe ich mich dazu entschieden, es so zu machen, da das JMF in den Java-Ordner installiert wird und so das seperate Java + JMF in /opt/java nicht von anderen Progs / Paketmanager "gestört" wird.

mfg Tobias

Prinz_Igor

Avatar von Prinz_Igor

Anmeldungsdatum:
29. März 2006

Beiträge: 470

Wohnort: Uslar

Wozu eigentlich der ganze Aufwand?

sudo apt-get install mplayer mencoder


Anzeigen:

mplayer tv:// -tv driver=v4l:width=352:height=288:device=/dev/video0


Aufnehmen:

mencoder tv:// -tv driver=v4l:width=352:height=288:device=/dev/video0 -nosound -ovc lavc -o webcam.avi

MfG,

Prinz Igor

tobiasschulz

(Themenstarter)

Anmeldungsdatum:
31. Mai 2006

Beiträge: 339

Wohnort: /root/

Prinz Igor hat geschrieben:

Wozu eigentlich der ganze Aufwand?

sudo apt-get install mplayer mencoder


Anzeigen:

mplayer tv:// -tv driver=v4l:width=352:height=288:device=/dev/video0


Aufnehmen:

mencoder tv:// -tv driver=v4l:width=352:height=288:device=/dev/video0 -nosound -ovc lavc -o webcam.avi

MfG,

Prinz Igor

Zu kompliziert für Anfänger.

Bei meiner Lösung muss man nur bei der Installation umständliche Befehle eingeben.
Nicht jeder User weiß, was video4linux ist. Woher soll ich wissen, ob meine Kamera unter /dev/video0, /dev/video1 oder gar /dev/video ist?
Was "-ovc lavc" ist, wissen die wenigsten.
Welche Bildmaße hatte die Cam nochmal?!?
Alles viel zu umständlich.

Mein Interface könnte sogar ein Grundschul-Kind bedienen. Aber das?

Sagt nicht, "Bei dir müssen ja auch kommandos eingegeben werden". Das ist nur bei der Installation so. Danach kann das programm durch ein simples 1-Wort-Kommando gestartet werden: runcamview.sh

Aber in den nächsten Versionen wird es sowieso einen GNOME/KDE-Menüeintrag geben.

mfg Tobias

Prinz_Igor

Avatar von Prinz_Igor

Anmeldungsdatum:
29. März 2006

Beiträge: 470

Wohnort: Uslar

tobiasschulz hat geschrieben:

Zu kompliziert für Anfänger.

Zunächst einmal gebe ich Dir recht. Die Bedienung einer Videosource ist per Kommandozeile für Anfänger natürlich zu schwierig oder zumindest abschreckend. Es wäre allerdings kein großer Akt, eine nette, kleine Gui drumherum zu schreiben. Das hätte den Vorteil, daß der ganze Java-Kram nicht notwendig wäre - auch nicht die komplizierte Installation. Wenn ich nach meinem Urlaub wieder etwas Zeit habe, werde ich mich mal dran setzen.

Mal abgesehen davon, läuft Dein Prog bei mir nicht:

Ich habe JMF in meinem Homeverzeichnis abgelegt. Mit folgenden Befehlen kann man die Position der Library angeben:

export JMFHOME=<irgendwo>/JMF-2.1.1e
export CLASSPATH=$JMFHOME/lib/jmf.jar:$JMFHOME/lib/mediaplayer.jar:$JMFHOME/lib/multiplayer.jar:$CLASSPATH


Ich habe mir tsclasses_2.2-2.tar.gz von Deinen Seiten runtergeladen und entpackt.

Wenn ich einfach so runcamview.sh ausführe, bekomme ich eine Fehlermeldung, daß nicht genügend Speicher zur Verfügung stände. Daraufhin habe ich in runcamview.sh den Wert von RAM_JAVA auf 300 gesetzt. Damit startet daß Programm und die verschiedenen Modi meiner Cam werden erkannt. Wenn ich dann einen Modi auswähle bekomme ich folgende Fehlermeldung:

java.io.IOException: java.lang.Error: Couldn't initialize capture device
FrameGrabber: Unable to create dataSource
javax.media.NoDataSourceException: Error instantiating class: com.sun.media.protocol.v4l.DataSource : java.io.IOException: java.lang.Error: Couldn't initialize capture device
        at javax.media.Manager.createDataSource(Manager.java:1012)
        at org.homedns.tobiasschulz.video.camera.PicGrabber.<init>(PicGrabber.java:100)
        at org.homedns.tobiasschulz.video.camera.CameraManager.connectToCamera(CameraManager.java:156)
        at org.homedns.tobiasschulz.video.camera.CameraManager.connectToCamera(CameraManager.java:142)
        at org.homedns.tobiasschulz.video.camera.CameraManager$3.actionPerformed(CameraManager.java:291)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
        at javax.swing.AbstractButton.doClick(AbstractButton.java:302)
        at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1000)
        at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1041)
        at java.awt.Component.processMouseEvent(Component.java:5488)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
        at java.awt.Component.processEvent(Component.java:5253)
        at java.awt.Container.processEvent(Container.java:1966)
        at java.awt.Component.dispatchEventImpl(Component.java:3955)
        at java.awt.Container.dispatchEventImpl(Container.java:2024)
        at java.awt.Component.dispatchEvent(Component.java:3803)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
        at java.awt.Container.dispatchEventImpl(Container.java:2010)
        at java.awt.Window.dispatchEventImpl(Window.java:1774)
        at java.awt.Component.dispatchEvent(Component.java:3803)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

Kannst du damit was anfangen?

tobiasschulz

(Themenstarter)

Anmeldungsdatum:
31. Mai 2006

Beiträge: 339

Wohnort: /root/

Prinz Igor hat geschrieben:

Kannst du damit was anfangen?

Entweder ist die Cam nicht angeschlossen oder der Treiber funktioniert nicht. Überprüfe das mal.

mfg Tobias

tobiasschulz

(Themenstarter)

Anmeldungsdatum:
31. Mai 2006

Beiträge: 339

Wohnort: /root/

Prinz Igor hat geschrieben:

Ich habe mir tsclasses_2.2-2.tar.gz von Deinen Seiten runtergeladen und entpackt.

Wieso eigentlich 2.2 ? Wenn du es über "deb http://home.arcor.de/tobidonald/apt-tobi/ stable main" (in sources.list) installierst, hast du seit Anfang Juli die Version 2.3. Ein kleiner Unterschied.

mfg Tobias

PS: Einiges zu tsclasses gibt's unter http://tobiasschulz.homedns.org/index.php?article_id=24 !

Prinz_Igor

Avatar von Prinz_Igor

Anmeldungsdatum:
29. März 2006

Beiträge: 470

Wohnort: Uslar

tobiasschulz hat geschrieben:

Wieso eigentlich 2.2 ?

Uups - my fault. Mit 2.3-1 läuft es allerdings auch nicht. Starten kann ich es auch nur, wenn ich wie gesagt in runcamview.sh den Speicher runterschraube (hat ja nicht jeder 1.5 GB Arbeitsspeicher).

tobiasschulz

(Themenstarter)

Anmeldungsdatum:
31. Mai 2006

Beiträge: 339

Wohnort: /root/

Prinz Igor hat geschrieben:

tobiasschulz hat geschrieben:

Wieso eigentlich 2.2 ?

Uups - my fault. Mit 2.3-1 läuft es allerdings auch nicht. Starten kann ich es auch nur, wenn ich wie gesagt in runcamview.sh den Speicher runterschraube (hat ja nicht jeder 1.5 GB Arbeitsspeicher).

Ohh. Das stimmt wohl. Ich habe 1GB RAM und 10 GB swap (auch wenn ich die nicht unbedingt brauche, das gönne ich mir).
Den Speicher kann man aberbrauchen, wenn man unter "Status" / "Schlafmodus" auswählt. Dann nimmt das Prog in höchster möglicher Geschwindigkeit Bilder auf, zeigt sie aber nicht an. Daher der Speicher. Du brauchst aber auch nur soviel, wenn du das so 6 Stunden laufen lässt.

mfg Tobias

PS: Werde morgen eine neue Version uploaden.

moser

Anmeldungsdatum:
20. Dezember 2004

Beiträge: 65

Wohnort: Bad Kreuznach

Also ich versuch jetzt nicht gerade diese Software zum Laufen zu bringen, aber ich hab ebenfalls Probleme mit JMF.
Ich benutze Ubunu 6.06, habe die Sun1.5 Pakete aus den Repository und mit update-alternatives alles richtig eingestellt.
In /etc/bash.bashrc exportiere ich den Classpath (jmf.jar ist enthalten), habe JMF-Home gesetzt und den LD_LIBRARY_PATH. auf der Shell wird via echo $CLASSPATH etc auch alles ordentlich ausgespuckt. Habs nun mit dem Linux und dem Crossplatform JMF versucht, aber egal was ich mache, es funzt einfach nicht.
Will ich ein Demo-Skript in eclipse ausführen (habe in Eclipse dem Projekt-Classpath sogar die jmf.jar explizit hinzufügt) bekomme ich ein "Can't initialize Capture-Device", meine Cam findet er aber unter v4l://0.
Will ich auf der Sun-JMF-Seite das Demo-Applet ausführen sagt er JMF-Classes not found.
JMStudio bricht mit Fehlermeldungen ab:

Exception in thread "main" java.lang.NullPointerException
at sun.awt.X11.XMenuPeer.repaintMenuItem(XMenuPeer.java:363)
at sun.awt.X11.XMenuItemPeer.setEnabled(XMenuItemPeer.java:71)
at sun.awt.X11.XMenuItemPeer.disable(XMenuItemPeer.java:93)
at java.awt.MenuItem.disable(MenuItem.java:280)
at java.awt.MenuItem.enable(MenuItem.java:267)
at java.awt.MenuItem.setEnabled(MenuItem.java:242)
at JMStudio.updateMenu(JMStudio.java:1274)
at JMStudio.<init>(JMStudio.java:119)
at JMStudio.createNewFrame(JMStudio.java:1412)
at JMStudio.main(JMStudio.java:1401)

Customizer, jmfregistry und jmfinit sind ausführbar
In der Registry werden auch alle Devices (Sound und Cam) ordentlich erkannt.
Es ist zum Mäusemelken...

tobiasschulz

(Themenstarter)

Anmeldungsdatum:
31. Mai 2006

Beiträge: 339

Wohnort: /root/

moser hat geschrieben:

Also ich versuch jetzt nicht gerade diese Software zum Laufen zu bringen, aber ich hab ebenfalls Probleme mit JMF.
Ich benutze Ubunu 6.06, habe die Sun1.5 Pakete aus den Repository und mit update-alternatives alles richtig eingestellt.
In /etc/bash.bashrc exportiere ich den Classpath (jmf.jar ist enthalten), habe JMF-Home gesetzt und den LD_LIBRARY_PATH. auf der Shell wird via echo $CLASSPATH etc auch alles ordentlich ausgespuckt. Habs nun mit dem Linux und dem Crossplatform JMF versucht, aber egal was ich mache, es funzt einfach nicht.
Will ich ein Demo-Skript in eclipse ausführen (habe in Eclipse dem Projekt-Classpath sogar die jmf.jar explizit hinzufügt) bekomme ich ein "Can't initialize Capture-Device", meine Cam findet er aber unter v4l://0.
Will ich auf der Sun-JMF-Seite das Demo-Applet ausführen sagt er JMF-Classes not found.
JMStudio bricht mit Fehlermeldungen ab:

Exception in thread "main" java.lang.NullPointerException
at sun.awt.X11.XMenuPeer.repaintMenuItem(XMenuPeer.java:363)
at sun.awt.X11.XMenuItemPeer.setEnabled(XMenuItemPeer.java:71)
at sun.awt.X11.XMenuItemPeer.disable(XMenuItemPeer.java:93)
at java.awt.MenuItem.disable(MenuItem.java:280)
at java.awt.MenuItem.enable(MenuItem.java:267)
at java.awt.MenuItem.setEnabled(MenuItem.java:242)
at JMStudio.updateMenu(JMStudio.java:1274)
at JMStudio.<init>(JMStudio.java:119)
at JMStudio.createNewFrame(JMStudio.java:1412)
at JMStudio.main(JMStudio.java:1401)

Customizer, jmfregistry und jmfinit sind ausführbar
In der Registry werden auch alle Devices (Sound und Cam) ordentlich erkannt.
Es ist zum Mäusemelken...

Hast du es schon mal so probiert :

ln -s /xxx/JMF-2.1.1e/lib/* /usr/lib/jvm/java-1.5.0-sun/jre/lib/ext/

Versuch mal alles aus JMF-2.1.1e/lib/ nach $JAVA_HOME/jre/lib/ext zu kopieren / linken .
Den Classpath kannst du dir dann schenken

Und probier mal jmf-pfad/bin/jmfinit (als der User, mit dem du das JMF installiert hast) auszufuehren.

Alles geht aber (bei mir, auf meinem Test-VMWare PC und normal), wenn ich die Antleitung von oben ausführe (also nicht das Java aus den Ubuntu-Repos)
Hmm

Gruß Tobias

Antworten |