Video Stream von IP-Webcam in file speichern

  • Hallo zusammen,

    ich bin am verzweifeln. Ich würde gerne von einer WebCam das Video in ein file streamen. Das Video ist via http://camIP/videostream.cgi&usr=meinuser im Browser erreichbar. Ausserdem habe ich mit VLC über die GUI auf meinem MAC das streming mit speichern in ein file geschafft, aber das erzeugte Kommando funktioniert nicht einfach in die shell zu pasten. Ich habe nun vlc auf dem Raspi installiert und versuche ein shell Kommando zu bauen mittels cvlc in der Art:

    cvlc -vvv -I dummy 'http://192.168.50.124:80/videostream.cgi?user=camuser' :sout='#transcode{vcodec=MJPG,vb=1024}:standard{mux=ts,access=file,dst=test.mjpeg}'

    es gibt auch noch die Möglichkeit bei der WebCam statt videostream.cgi die URL videostream.asf zu verwenden, aber das brachte bis dato auch keinen Erfolg.

    Ergebnis das file test.mjpeg wird erzeugt aber es bleibt bei 0 Bytes. Hat jemand eine Idee wie man das cvlc Kommando baien muss damit hier etwas weiter geht. Wenn jemend den Debug aoutout des vlc braucht kann ich hier auch pasten, wollte ich aber im ersten Post noch nicht - ist ein Haufen Zeug.

    Danke für jede Hilfe.

    und Grüße

  • Hallo kostfastnix,

    mit vlc sollte es eigentlich einfacher gehen als Dein Kommando oben, zunächst genügt es ja, den Stream erstmal 1:1 zu speichern. Zu vlc kann ich Dir auf die Schnelle aber nichts weiter sagen, mit "mplayer" ging es schätzungsweise so:

    Code
    mplayer 'http://192.168.50.124:80/videostream.cgi?user=camuser' -dumpstream -dumpfile test.mpg

    Evtl. käme auch eine effizientere Lösung mit z.B. "netcat" in Frage, aber da müsste man mehr Details wissen.

    Gruß, mmi

  • Hallo,

    vielen dank für die Tipps - jetzt bin ich schon etwas weiter - mit:

    ffmpeg -i "http://192.168.50.124:80/videostream.asf?user=admin&pwd=meinpasswort&resolution=32" -vcodec copy -an -t 60 -bufsize 1024k -y "test.mpg"

    kommt:

    ffmpeg version 0.8.10-6:0.8.10-1+rpi1, Copyright (c) 2000-2013 the Libav developers
    built on Mar 22 2014 02:13:15 with gcc 4.6.3
    *** THIS PROGRAM IS DEPRECATED ***
    This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.
    [asf @ 0xda9660] max_analyze_duration reached
    [asf @ 0xda9660] Estimating duration from bitrate, this may be inaccurate

    Seems stream 0 codec frame rate differs from container frame rate: 1000.00 (1000/1) -> 25.00 (25/1)
    Input #0, asf, from 'http://192.168.50.124:80/videostream.asf?user=admin&pwd=meinpasswort&resolution=32':
    Duration: N/A, start: 0.000000, bitrate: 32 kb/s
    Stream #0.0: Video: mjpeg, yuvj422p, 640x480, 25 tbr, 1k tbn, 1k tbc
    Stream #0.1: Audio: adpcm_ima_wav, 8000 Hz, 1 channels, s16, 32 kb/s
    [mpeg @ 0xdbb960] VBV buffer size not set, muxing may fail
    Output #0, mpeg, to 'test.mpg':
    Metadata:
    encoder : Lavf53.21.1
    Stream #0.0: Video: mjpeg, yuvj422p, 640x480, q=2-31, 90k tbn, 1k tbc
    Stream mapping:
    Stream #0.0 -> #0.0
    Press ctrl-c to stop encoding

    ERGEBNIS:
    Es wird eine Datei geschrieben, wenn ich aber versuche z.B. im VLC player anzusehen - kein Bild. So weit ich weis liefert die Kamera bei dieser URL die ich angesteuert habe - MJPEG. I stutze noch über die Meldung von oben: VBV buffer size not set, muxing may fail.

    Hat jemand noch einen Tipp?

    Grüße aus Nürnberg

  • Versuche mal Zoneminder, da hast du eine Komplette Videoüberwachung.
    Bin mir nur nicht sicher ob die auf dem PI läuft. Ich habe das auf einen Atom Board am laufen.

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?

    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

  • Ehrlich gesagt wollte ich erst mal nicht eine Applikation dafür hernehmen sondern etwas mehr zu Fuss machen - Warum? Ich hätte da noch ein paar Ideen in Richtung GPIO, etc. etc. Deshalb erstmal den Videostream einfach in die Händebekommen usw.

    Vielleicht hat sich noch jemand einen Tipp wie man das mit ffmpeg o.ä. hinbekommt ohne "grössere Keulen" auspacken / installieren zu müssen.

    Grüße aus Nürnberg ;)

  • Hallo Kostfastnix,

    ich denke auch, dass FFmpeg als eierlegende Wollmilchsau für Konvertierungen von Audio und Video Streams das auf jeden Fall beherrschen sollte.

    Leider sind Audio/Video und die ganzen Codecs nicht gerade mein Beritt, weswegen ich selbst wenig Hilfe dazu geben kann.

    Weil ich so perplex über die Ausgabe

    Zitat von "excerpt from posted ffmpeg output"


    *** THIS PROGRAM IS DEPRECATED ***
    This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.

    in Deinem Beitrag war und diese Unverfrorenheit zunächst nicht glauben wollte
    (nämlich, die Bahauptung, dass FFmpeg tot sei, nachdem ich Leute des Projekts erst vor einer Woche an deren Stand auf dem Berliner LinuxTag gesehen und kurz gesprochen habe),
    musste ich mich erstmal selbst schlau machen, was dahinter steckt und habe eine Antwort darauf in diesem Post auf stackoverflow gelesen.

    Anscheinend hast Du so eine, nicht ganz taufrische, Übergangsversion von ffmpeg eines Builds aus der Zeit des oben beschriebenen Fork War.

    Vermutlich klappt das nur mit dieser ffmpeg Version nicht.
    Hier in diesem Blog wird so etwas auch angedeutet:

    Zitat von "How to stream a webcam from the RPi"


    The version that comes with the current version of Raspbian and Debian have issues streaming.

    Vielleicht baust Du Dir zuerst ein funktionieredes ffmpeg, wie in dem Blog beschrieben?

    Habe es selber noch nicht ausprobiert,
    wäre aber daran interessiert, Deine Erfahrungen damit zu lesen.

  • Hallo,

    jetzt bin ich schon weiter
    mit:

    [code=php]ffmpeg -f mjpeg -r 8 -i "http://192.168.50.124/videostream.cgi?user=camuser&pwd=" -vcodec mpeg4 -b 1000000 -r 8 -pix_fmt yuv420p video_file.avi[/php]
    :thumbs1:
    bekomme ich ein file das man auch abspielen kann: 30sec ==> ca. 5MB. Laut vlc hat der stream 8fps - da bin ich mir noch nicht sicher ob das brauchbar ist, so sein muss, oder, oder? Die cam könnte auch noch Ton, da habe ich noch keinen Plan ... mal sehen.

    Ich versuche dennoch mal ein ffmpeg zu bauen.

    Grüße aus Nürnberg


  • ... musste ich mich erstmal selbst schlau machen, was dahinter steckt und habe eine Antwort darauf in diesem Post auf stackoverflow gelesen.

    Das ist ein schon recht betagter Beitrag von 2012, vermutlich längst überholt, bei mir läuft:

    Code
    ffmpeg version 2.2.2 Copyright (c) 2000-2014 the FFmpeg developers
    built on May  7 2014 13:08:45 with gcc 4.8.2 (GCC) 20140206 (prerelease)

    Ich arbeite ständig damit, um meine ts streams zu konvertieren, alles bestens!
    "avconf" kenne ich gar nicht und gibt es bei meiner Distri (archlinux) auch nicht.

    Gruß, mmi


  • Laut vlc hat der stream 8fps -

    :http://192.168.50.124/videostream.cgi?user=camuser&pwd=<password>&rate=<parameter>

    Dann gibt es da noch den Parameter

    Code
    resolution=
    
    
    8 = 320*240px
    32 = 640*480px
    64 = 1280x720 ( bei meiner 720p Tenvis Camera)

    Ton bekommst du über den Stream ( videostream.asf ), nicht über die Bilder (http://videostream.cgi/snapshot.cgi).
    Im Anhang mal die CGI Beschreibung meiner CAM, passt so auch auf eine kleine Wansview die ich noch habe.

  • Hallo,


    jetzt hab ich versucht den ffmpeg zu compilieren nach diesem:
    HowTo
    das auch irgendwie durchgelaufen ist - auf dem Raspi mehrere Stunden über Nacht!

    Das ganze Zeug liegt letzt bei mir unter /usr/src/ffmpeg und und der Aufruf von ./ffmpeg gibt aus: (ob funktionert habe ich noch nicht probiert)

    ffmpeg version N-63200-g93cade4 Copyright (c) 2000-2014 the FFmpeg developers
    built on May 17 2014 04:08:52 with gcc 4.6 (Debian 4.6.3-14+rpi1)
    configuration:
    libavutil 52. 83.100 / 52. 83.100
    libavcodec 55. 62.100 / 55. 62.100
    libavformat 55. 38.100 / 55. 38.100
    libavdevice 55. 13.101 / 55. 13.101
    libavfilter 4. 5.100 / 4. 5.100
    libswscale 2. 6.100 / 2. 6.100
    libswresample 0. 19.100 / 0. 19.100
    Hyper fast Audio and Video encoder
    usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

    Use -h to get full help or, even better, run 'man ffmpeg'

    Wie bekomme ich das z.B. nun auf einen anderen Raspi, oder muss ich jeweils auf den Raspis compilieren? Was kann ich wieder löschen von dem ganzen SourceCode, etc. Und was muss ich tun das sich verhält als ob ich es mit apt installiert hätte, sprich Aufrug von überall. Ich weiss das sind jetzt mehr Grundlagen :blush: aber wäre schön wenn mir da jemend auf die Sprünge helfen könnte.

    Grüsse aus Nürnberg

  • So es ist geschafft!

    Das ffmpeg habe ich nun ordentlich compiliert und installiert und mit
    [code=php]ffmpeg -f asf -t 60 -r 50 -i "http://192.168.50.124/videostream.as…=&resolution=32" -vcodec copy -b 1000000 -r 50 video_file.avi[/php]
    erhalte ich nun einen Videostream von exakt 60sec (-t 60). Jetzt kann ich mich an das script für den raspi machen um meine kleine überwachungslösung mit Universalmitteln zu basteln.

    Danke der weil für alle die mich in diesem Thread unterstützt haben.

    Grüße aus Nürnberg

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!