Anzeige:
Ergebnis 1 bis 11 von 11

Thema: Bild von rtsp Stream (Webcam) per Script speichern

  1. #1
    Registrierter Benutzer
    Registriert seit
    Jun 2006
    Beiträge
    84

    Bild von rtsp Stream (Webcam) per Script speichern

    Hallo,
    ich habe eine Webcam, das Live-Bild kann ich z.B. in VLC mir anschauen über:
    rtsp://admin:PASSWORT@192.168.1.33:554/tenda

    (der stream ist h.265 codiert, einen anderen Stream bietet die Kamera nach meinem Wissen nicht an (Tenda CT6 3MP)))

    Gibt es eine Möglichkeit (Programm, Tool, ...), mit welchem ich jetzt per Script und Cron mir jede Minute einen Snaphot erstellen und lokal speichern kann?
    Das Script würde dann per SFTP das Bild auf einen Webserver hochladen.

    Thx,
    Martin
    Viele Grüße,
    Martin

  2. #2
    Registrierter Benutzer
    Registriert seit
    Apr 2009
    Ort
    Erde
    Beiträge
    2.819
    ffmpeg und avconv können das beide ganz gut
    Gruß nopes
    (,,,)---(^.^)---(,,,) /var/log/messages | grep cat

  3. #3
    Registrierter Benutzer
    Registriert seit
    Jun 2006
    Beiträge
    84
    Danke für den Hinweis,
    aber mit ffmpeg hatte ich es schon probiert, aber damit hat es nicht funktioniert.
    Und avconv ist ja wohl ein ableger von ffmpeg (und nur zum konvertieren wenn ich mir das anschaue: https://wiki.ubuntuusers.de/Archiv/avconv )

    Und ich will nicht eine lokal gespeicherten Videodatei "konvertieren" oder daraus Bild erstellen, sondern mich eher alle x Sekunden mit der Kamera verbinden und dort ein Einzelbild speichern.

    Scher, das dies ffmpeg kann?

    Hab z.B. das schon probiert:
    # ffmpeg -y -i rtsp://admin:PASSWORD@192.168.1.33:554/tenda -update 2 -r 0.5 aktuell.jpg
    # ffmpeg -1 rtsp://admin:PASSWORD@192.168.1.33:554/tenda -c 1 aktuell.jpg

    Oder welche Option wäre die richtige?
    Viele Grüße,
    Martin

  4. #4
    Registrierter Benutzer
    Registriert seit
    Apr 2009
    Ort
    Erde
    Beiträge
    2.819
    Gruß nopes
    (,,,)---(^.^)---(,,,) /var/log/messages | grep cat

  5. #5
    Registrierter Benutzer
    Registriert seit
    Jun 2006
    Beiträge
    84
    Danke,
    diese Seite bzw. ffmpeg Optionen hatte ich in der Kombi noch nicht versucht.
    Ich erhalte beim Start zwar Fehlermeldungen, aber am Ende werden Bilder erzeugt im hinterlegten Intervall.

    # ffmpeg -i rtsp://admin:PASSWORD@192.168.1.33:554/tenda -vf "select=bitor(gte(t-prev_selected_t\,10)\,isnan(prev_selected_t))" -vsync 0 img_%05d.jpg

    Last message repeated 1 times
    [hevc @ 0x562c6d6758c0] Error parsing NAL unit #0.
    [hevc @ 0x562c6d6758c0] PPS id out of range: 0
    Last message repeated 1 times
    [hevc @ 0x562c6d6758c0] Error parsing NAL unit #0.
    [hevc @ 0x562c6d6758c0] PPS id out of range: 0
    Last message repeated 1 times
    [hevc @ 0x562c6d6758c0] Error parsing NAL unit #0.
    [hevc @ 0x562c6d6758c0] PPS id out of range: 0
    Last message repeated 1 times
    [hevc @ 0x562c6d6758c0] Error parsing NAL unit #0.
    [hevc @ 0x562c6d6758c0] PPS id out of range: 0
    ...


    Aber aktuell werden die Bilder durch nummerriert, was ja auch Sinn macht, weil alle x Sekunden ein Bild gespeichert werden soll ...
    Aber zum weiterverarbeiten/hochladen auf Server wäre es "einfacher", wenn das aktuelle Bild immer "webcam.jpg" heißen würde (die Hochzähl-Option ...%05d einfach raus nehmen geht nicht, bringt Fehler ("file with same name ... exit")

    Was mir am liebsten und effektivsten wäre, wenn pro Aufruf "einfach" nur ein Bild gespeichert wird (und nicht alle x Sekunden), und ffmpeg sich dann beendet (bis zum nächsten Aufruf per Cron).
    Finde da aber keine Option/Parameter für....
    Viele Grüße,
    Martin

  6. #6
    Registrierter Benutzer
    Registriert seit
    Apr 2009
    Ort
    Erde
    Beiträge
    2.819
    Gruß nopes
    (,,,)---(^.^)---(,,,) /var/log/messages | grep cat

  7. #7
    Registrierter Benutzer
    Registriert seit
    Jun 2006
    Beiträge
    84
    Ja, danke!
    Damit funktioniert das spätere überschreiben, muss aber vor dem Aufruf der Befehlszeile das Bild vorher löschen, sonst kommt einmal die Überschreib-Anfrage.

    rm ffmpeg.jpg; ffmpeg -i rtsp://admin:PASSWORD@192.168.1.33:554/tenda -vf "select=bitor(gte(t-prev_selected_t\,60)\,isnan(prev_selected_t))" -vsync 0 -update 1 ffmpeg.jpg

    "Problem" ist aber, das ich ja nur jede Minute ein Bild erstellen will, ffmpeg aber ständig läuft und immer ca. 20% CPU Zeit verbraucht (was ja absolut unnötig ist für einen kurzen minütlichen "Screenshot").
    Die Option, das es sich nach 1s oder so autom. beendet gibts nicht, oder?
    Viele Grüße,
    Martin

  8. #8
    Registrierter Benutzer
    Registriert seit
    Apr 2009
    Ort
    Erde
    Beiträge
    2.819
    Gruß nopes
    (,,,)---(^.^)---(,,,) /var/log/messages | grep cat

  9. #9
    Registrierter Benutzer
    Registriert seit
    Jun 2006
    Beiträge
    84
    Ja, aber schon etwas unsauber, aber "besser" gehts wohl nicht ...
    Hatte die Hoffnung das man sich wirklic nur kurt auf die kamera verbinden kann und das "Tool" würde halt das aktuelle Bild wegschreiben und fertig ...
    Andere kameraa bieten wohl auch einen "Kanal" (Stream) an wie z.B.: /picture, wo man mit #wget ein Bild direkt runterladen kann ... ich hab halt bei der Cam nur den live-Stream (bzw. hab ich keine andere Infos gefunden)
    Viele Grüße,
    Martin

  10. #10
    Registrierter Benutzer
    Registriert seit
    Apr 2009
    Ort
    Erde
    Beiträge
    2.819
    Jetzt wo du weisst, dass es mit ffmpeg Grundsätzlich geht, also das Tool hast, kannst du ja experimentieren.

    https://www.domoticz.com/forum/viewtopic.php?t=6612 die machen doch etwa das damit, was du auch machen möchtest
    Gruß nopes
    (,,,)---(^.^)---(,,,) /var/log/messages | grep cat

  11. #11
    Registrierter Benutzer
    Registriert seit
    Jun 2006
    Beiträge
    84
    Hoffentlich letztes update,
    habe es jetzt doch mit "timeout" umgesetzt, nach 6s wird ffmpeg automatisch wieder beendet.

    Tricky war noch, das es interaktiv zwar auch mit timeout .... funktioniert hat, aber im Script nicht (ohne vorangesetztes timeout hat es aber funktioniert, Bilder wurden (aber endlos) gespeichert)).

    Lösung war:
    --foreground verwenden:

    ...
    timeout --foreground 6s ffmpeg -i rtsp://admin:PASSWORD@192.168.1.33:554/tenda -vf "select=bitor(gte(t-prev_selected_t\,4)\,isnan(prev_selected_t))" -vsync 0 "/tmp/ffmpeg_img_%03d.jpg"
    ...
    Genutzt wird dann das zweite Bild (das erste ist oft unvollständig, korrupt), also: ffmpeg_img_002.jpg

    Evtl. hilt das ja jemanden, der in das gleiche Problem läuft ...
    Viele Grüße,
    Martin

Ähnliche Themen

  1. mplayer Webcam (stream)
    Von Unicate im Forum Anwendungen Allgemein, Software
    Antworten: 0
    Letzter Beitrag: 04.07.07, 10:58
  2. webcam stream
    Von siegpes im Forum Linux als Server
    Antworten: 5
    Letzter Beitrag: 11.02.06, 16:09
  3. Webcam Stream ausgeben
    Von ---SonOfOdin--- im Forum Fernsehen
    Antworten: 1
    Letzter Beitrag: 19.12.05, 17:02
  4. rtsp Stream Quicktime .mov mit xine oder mplayer
    Von PuMi im Forum Anwendungen Allgemein, Software
    Antworten: 0
    Letzter Beitrag: 08.02.05, 08:21
  5. MP3-Stream speichern
    Von formtapez im Forum Musik
    Antworten: 8
    Letzter Beitrag: 05.02.04, 07:48

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •