Forum: Mikrocontroller und Digitale Elektronik Bifferboard USB WebCam Streamen


von Philipp S. (moses)


Lesenswert?

Hi,

ich hab an meinem Bifferboard eine USB WebCam hängen und würde das 
Signal gerne Streamen. Auf meinem Desktop habe ich das ganze mit VLC mal 
probiert. Das Ganze ist aber um 3 Sekunden verzögert und verbrauch ganz 
schön viel Resourcen. Denke das würde das Bifferboard nicht schaffen.

Habt ihr ein paar anregungen/ideen wie man das am besten machen kann?

Es geht mir hierbei nicht darum das die qualität gut sein muss, kann 
auch schwarz weiß sein, soll nur geringe latenzen haben, da ich ein bild 
in echtzeit haben möchte.

Grüße

von M. Z. (mafia-gamer)


Lesenswert?

Hallo,

für die Anwendung kann man den mjpg-streamer verwenden. Der braucht 
nicht ganz so viele Ressourcen und läuft bei mir ganz gut. Ich mache 
allerdings nur einzelne Bilder und speicher die ab.
Eventuell bringt es auch noch was den mjpg-streamer nochmal selbst zu 
kompilieren in der neusten Revision.

Grüße

von Philipp S (Gast)


Lesenswert?

Hi,

hast du deine WebCam über ein USB Hub an deinem Bifferboard? Bekomm 
mjpeg-streamer nicht zum laufen, hab im internet gelesen das es probleme 
gibt mit einem USB Hub. Würde mich intressieren was du so benutzt.

Grüße ;)

von M. Z. (mafia-gamer)


Lesenswert?

Ich hab es ohne Hub am laufen mit einer Webcam von Trust.

Wichtig ist das du die Kernelmodule kmod-video-uvc und 
kmod-video-gspca-core installiert hast. Musst du eventuell selber 
kompilieren je nachdem welche Kernel Version du verwendest.

Grüße

von Philipp S (Gast)


Lesenswert?

Hi,

danke erstmal für deine Antwort :).

Wieso sind diese module wichtig? Wenn ich die Cam in meinem Desktop 
stecke funktioniert sie einwandfrei. Aber unter lsmod finde ich die von 
dir aufgeführten module garnicht?

Kernel ist:
Linux debian 2.6.32-bifferboard #1 Mon Apr 11 23:40:36 CEST 2011 i486 
GNU/Linux

Danke

von M. Z. (mafia-gamer)


Lesenswert?

Hallo,

die Kernelmodule musst du installieren weil die nicht mit in den Kernel 
reinkompiliert sind. Bei deinem Desktop sind die Module entweder schon 
im Kernel reinkompiliert oder als Modul verfügbar.

Die genaue Kernelversion bekommst du mit uname -r heraus, bei mir ist es 
die 2.6.32.20. Die Module kannst du nicht einfach von dem OpenWrt Mirror 
nehmen da dort die Module für die Version 2.6.32.33 vorliegen.

Deswegen selber kompilieren:
http://sites.google.com/site/bifferboard/Home/openwrt-git
https://github.com/bifferos/openwrt/blob/master/README

Grüße

von Philipp S (Gast)


Lesenswert?

Hi,

bist du dir sicher das die Kernel module auch bei mir so heißen? Wie 
kann ich mir ausgeben lassen welche Kernel Module in meinem Kernel 
Kompiliert sind, dann würde ich auf meinem Desktop mal vergleichen.

Wenn ich nach deinen Modulen in zusammenhang mit Debian suche, finde ich 
keine wirklichen treffer... Hab das gefühl das die bei mir anders 
heißen.

Kann dir mal ein lsmod auf meinem Bifferboard zeigen:
1
oot@debian:~/webcam pic# lsmod
2
Module                  Size  Used by
3
gspca_sn9c20x          17584  0 
4
stp                      852  0 
5
llc                     1896  1 stp
6
snd_usb_audio          44276  0 
7
snd_pcm                35276  1 snd_usb_audio
8
snd_timer               9748  1 snd_pcm
9
snd_page_alloc          4028  1 snd_pcm
10
snd_usb_lib             8624  1 snd_usb_audio
11
snd_rawmidi             9472  1 snd_usb_lib
12
snd_seq_device          2852  1 snd_rawmidi
13
snd_hwdep               3108  1 snd_usb_audio
14
snd                    25124  6 snd_usb_audio,snd_pcm,snd_timer,snd_rawmidi,snd_seq_device,snd_hwdep
15
soundcore               2472  1 snd
16
gspca_ov519            15956  0 
17
gspca_main             13336  2 gspca_sn9c20x,gspca_ov519
18
uvcvideo               41324  0 
19
videodev               24416  2 gspca_main,uvcvideo
20
v4l1_compat             8896  2 uvcvideo,videodev
21
i2c_core                9468  1 videodev
22
rtc_cmos                3228  0 
23
rtc_core                6676  1 rtc_cmos
24
rtc_lib                 1048  1 rtc_core
25
r6040                   6652  0 
26
mii                     2300  1 r6040

dmesg sagt beim einstecken bei dieser cam
1
usb 1-1.4: new high speed USB device using ehci_hcd and address 6
2
usb 1-1.4: configuration #1 chosen from 1 choice
3
gspca: probing 0c45:627c
4
sn9c20x: HV7131R sensor detected
5
gspca: probe ok

Grüße

von M. Z. (mafia-gamer)


Lesenswert?

Hallo,

die Module scheinen bei dir schon vorhanden zu sein (uvcvideo und 
gspca_main).

Dann sollte auch der Device Node /dev/video0 vorhanden sein, wenn nicht 
mit

mknod /dev/video0 c 81 0

anlegen

Dann noch die Quellcode Dateien von Sourceforge laden:
http://sourceforge.net/projects/mjpg-streamer/files/mjpg-streamer/Sourcecode/mjpg-streamer-r63.tar.gz/download

Das ganze entpacken und den Inhalt des www Ordners in den www Ordner vom 
Bifferboard kopieren.

Dann sollte man den mjpg_streamer mit folgender Zeile starten können:

mjpg_streamer -i "input_uvc.so -d /dev/video0 -f 5 -r 352x288" -o 
"output_http.so -w /www -p 8080"

Und über http://ip_vom_biffer:8080 darauf zugreifen können.

Grüße

von Philipp S (Gast)


Lesenswert?

Hi,

das Device ist da, mjpeg streamer hab ich selber compiled und auch mal 
die debs probiert, aber er sendet einfach kein Bild. Hab mit anderen 
Konsolen Tools versucht ein einfaches Bild auszulesen aber das ging auch 
nicht.

Hab es mit 4 unterschiedlichen Cams probiert, alle werden erkannt, alle 
erzeugen  mir ein /dev/video0 aber keine lässt irgendwas von sich 
auslesen.

Habe mit einem Entwickler von mjpg-streamer schon gesprochen, er meint 
ich hätte ein Treiber Problem. Er hat mir ein kleines C Programm von 
sich geschickt was nur ein Bild speichert, aber dies ging auch nicht.
(Das bild ist entweder komplett schwarz oder er sagt "select timeout")

Daher meinte er ich hätte ein Problem mit dem Streaming oder dem 
Treiber. Was genau er damit meint weiß ich nicht...

Wie kann ich prüfen ob der Treiber richtig arbeitet? Wenn das Device 
erstellt wurde sollte es ja Prinzipiell alles stimmen oder nicht?

Hilfe! :)

von Philipp S (Gast)


Lesenswert?

EDIT zum Post eins drüber noch:

Hab mjpg streamer mal mit der Debug Option Kompiliert, da sagt er mir 
jetzt:
1
root@debian:~/streamer/mjpg-streamer/mjpg-streamer# ./mjpg_streamer -i "input_uvc.so -d /dev/video0 -f 5" -o "output_http.so -w /www -p 8080"MJPG Streamer Version: svn rev: 
2
 i: Using V4L2 device.: /dev/video0
3
 i: Desired Resolution: 640 x 480
4
 i: Frames Per Second.: 5
5
 i: Format............: MJPEG
6
Adding control for Pan (relative)
7
UVCIOC_CTRL_ADD - Error: Invalid argument
8
Adding control for Tilt (relative)
9
UVCIOC_CTRL_ADD - Error: Invalid argument
10
Adding control for Pan Reset
11
UVCIOC_CTRL_ADD - Error: Invalid argument
12
Adding control for Tilt Reset
13
UVCIOC_CTRL_ADD - Error: Invalid argument
14
Adding control for Pan/tilt Reset
15
UVCIOC_CTRL_ADD - Error: Invalid argument
16
Adding control for Focus (absolute)
17
UVCIOC_CTRL_ADD - Error: Invalid argument
18
mapping control for Pan (relative)
19
UVCIOC_CTRL_MAP - Error: Invalid argument
20
mapping control for Tilt (relative)
21
UVCIOC_CTRL_MAP - Error: Invalid argument
22
mapping control for Pan Reset
23
UVCIOC_CTRL_MAP - Error: Invalid argument
24
mapping control for Tilt Reset
25
UVCIOC_CTRL_MAP - Error: Invalid argument
26
mapping control for Pan/tilt Reset
27
UVCIOC_CTRL_MAP - Error: Invalid argument
28
mapping control for Focus (absolute)
29
UVCIOC_CTRL_MAP - Error: Invalid argument
30
mapping control for LED1 Mode
31
UVCIOC_CTRL_MAP - Error: Invalid argument
32
mapping control for LED1 Frequency
33
UVCIOC_CTRL_MAP - Error: Invalid argument
34
mapping control for Disable video processing
35
UVCIOC_CTRL_MAP - Error: Invalid argument
36
mapping control for Raw bits per pixel
37
UVCIOC_CTRL_MAP - Error: Invalid argument
38
 o: www-folder-path...: /www/
39
 o: HTTP TCP port.....: 8080
40
 o: username:password.: disabled
41
 o: commands..........: enabled
42
 DBG(mjpg_streamer.c, main(), 407): starting 1 input plugin
43
 DBG(mjpg_streamer.c, main(), 417): starting 1 output plugin(s)
44
Unable to dequeue buffer: Input/output error
45
 i: Error grabbing frames

Ein gedanke von mir war das ich vielleicht zu wenig Arbeitsspeicher 
habe, aber ich denke das es nicht das Problem
free -m:
1
free -m
2
             total       used       free     shared    buffers     cached
3
Mem:            29         15         13          0          0          6
4
-/+ buffers/cache:          8         21
5
Swap:          511          2        509

Grüße

von bifferos (Gast)


Lesenswert?

Philipp,

(Anmerkung: Ich spreche kein Deutsch, ich versuche Google Translate:))

Zum Testen Webcam können Sie dieses Programm kompilieren:
[[http://lxr.linux.no/#linux+v2.6.32.20/Documentation/video4linux/v4lgrab.c]]

Achten Sie genau auf den Kommentar am Anfang:

Export LD_PRELOAD = / usr/lib/libv4l/v4l1compat.so
./v4lgrab> image.ppm

Ich weiß nicht, ob es für Ihre Webcam benötigt wird, aber man kann das 
ausprobieren.

von Philipp S. (moses)


Lesenswert?

So ich hab jetzt openWrt auf dem Bifferboard installiert, und es läuft 
nur auf dem flash.

Jetzt hab ich den USB port frei. Verbinde ich die Cam direkt an den usb 
port, läuft alles perfekt und ich bekomm ein bild mit dem mjpg-streamer.
ABER, mit dem hub gehts einfach nicht..

Woran könnte das liegen?

Grüße

von Sebastian Heyn (Gast)


Lesenswert?

dmesg? Wird der Hub erkannt?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.