Moin zusammen,
ich betreibe einen kleinen RasPi (700MHz/512MB) als WebCam und eine seperate Ubuntu Maschine als Zoneminder Server. Mit den Möglichkeiten aus dem Netz habe ich das Grundsetup ("RPi_Cam_Web_Interface") hinbekommen, aber der Stream lagged ganz gewaltig. Ich hatte vorher ein Samsung Galaxy Ace als modifizierte IP Cam als Client und das lief richtig geschmeidig.
Um nun den Stream zu beschleunigen habe ich die Idee, den Video Output des RPi per Netcat direkt ins Netz zu blasen:
raspivid -t 0 -o - -fps 10 -w 640 -h 480 | nc -lk 5001
Diese Sequenz funktioniert zunächst (Tests mit mplayer als netcat pipe zeigen das gewünschte Bild).
Da Zoneminder den Netcat natürlich nicht direkt lesen kann -soweit ich weiß; wäre nun mein nächster Schritt, den Stream an ein virtuelles /dev/video0 zu leiten -ungefähr so:
nc 192.168.105.2 5001|avconv -f video4linux2 -vcodec copy -y /dev/video0
v4l2loopback habe ich geladen:
$ lsmod Module Size Used by v4l2loopback 19190 0 videodev 86588 1 v4l2loopback ppdev 12849 0 dcdbas 14098 0 [...]
AVCONV antwortet leider so:
Requested output format 'video4linux2' is not a suitable output format
Klar, laut avconv -formats ist dieser Codec auch nur zum "decoding". Aber für das "encoding" fehlt in der Liste der "v4l2" Eintrag.
Und hier meine Frage:
A) Wie bekomme ich grundsätzlich diese Aufgabe erledigt, daß ich den Netcat Stream in das /dev/video0 gepumpt bekomme, um es dort dann von Zoneminder "abholen zu lassen?
B) Was muss ich machen, um den "v4l2" Encoder verfügbar zu bekommen -oder kann ich über einen anderen Encoder gehen?
Ich hoffe einigermaßen verständlich geschrieben zu haben, ansonsten einfach nachhaken 😉
gruss Carsten