Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Off Topic
    4. Internet/Webcamstream als Video speichern

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Internet/Webcamstream als Video speichern

    This topic has been deleted. Only users with topic management privileges can see it.
    • DJMarc75
      DJMarc75 last edited by DJMarc75

      Tag,
      heutiges Projekt soll sein ein Video aus einem Livestream aus dem Internet lokal als mpg o.Ä. zu speichern.

      Als Quelle dient mir (z.B.)

      https://v.angelcam.com/iframe?v=91yxkbo9ro&amp

      Einen Screenshot aufzunehmen habe ich per ioBroker und dem Adapter Puppeteer erfolgreich lösen können.

      Nun bin ich aber neugierig ob man eben auch ein Video speichern kann - hab mit Webcams usw noch keine bis wenig Erfahrung.

      Merci für Tipps

      Marc Berg 1 Reply Last reply Reply Quote 0
      • Marc Berg
        Marc Berg Most Active @DJMarc75 last edited by Marc Berg

        @djmarc75

        Hier ein Minimalansatz:

        1. ffmpeg installieren (apt install ffmpeg)
        2. mit diesen Parametern starten:
        ffmpeg -i https://e1-eu8.angelcam.com/cameras/102191/streams/hls/playlist.m3u8?token=eyJjYW1lcmFfaWQiOiIxMDIxOTEiLCJkZXZpY2VfaWQiOiIxMDIxOTEiLCJ0aW1lIjoxNzE0MDM4NDAyMjg3Mzg4LCJ0aW1lb3V0IjozNjAwfQ%3D%3D%2E08cb4fc3f6213e3ebe290cfb741c943bf9ed8a3ce6a1cbc929d6f1b8c4952e56 -t 5 -vcodec copy -acodec copy -y /tmp/OUT0.mp4
        

        Über den Parameter "-t ..." kannst du die Länge in Sekunden festlegen.

        Allerdings siehst du, dass der Stream mit einem Token geschützt ist. Diesen muss man sich aus den Browser-Quelltextdaten rausfischen. k.A, wie lange der funktioniert.

        4f0e6a04-8816-4dd9-8aca-24e277ab11f7-grafik.png

        Bei mir lief es:

        8b031986-1153-405b-8aa9-3a70d97ae077-grafik.png

        EDIT: über vcodec und acodec könntest du den Stream auch noch in andere Formate transformieren, aber ich denke das ist klar. In der o.a. Form wird der Stream 1:1 in die Datei geschrieben.

        DJMarc75 1 Reply Last reply Reply Quote 2
        • DJMarc75
          DJMarc75 @Marc Berg last edited by DJMarc75

          @marc-berg super erstmal und 1000 Dank !

          Meine Commandline gibt mir allerdings folgendes aus 😞

          marc@ioBrokerBookworm:~$ ffmpeg -i https://e1-eu8.angelcam.com/cameras/102191/streams/hls/playlist.m3u8?token=eyJjYW1lcmFfaWQiOiIxMDIxOTEiLCJkZXZpY2VfaWQiOiIxMDIxOTEiLCJ0aW1lIjoxNzE0MDM3MTk1NjY4NzUyLCJ0aW1lb3V0IjozNjAwfQ%3D%3D.3adf959cca12f509b6c812988344987b50a76b4c2f50a2b6373c465c5d6ee892 -t 5 -vcodec copy -acodec copy -y /tmp/test.mp4
          ffmpeg version 5.1.4-0+deb12u1 Copyright (c) 2000-2023 the FFmpeg developers
            built with gcc 12 (Debian 12.2.0-14)
            configuration: --prefix=/usr --extra-version=0+deb12u1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --disable-sndio --enable-libjxl --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --enable-shared
            libavutil      57. 28.100 / 57. 28.100
            libavcodec     59. 37.100 / 59. 37.100
            libavformat    59. 27.100 / 59. 27.100
            libavdevice    59.  7.100 / 59.  7.100
            libavfilter     8. 44.100 /  8. 44.100
            libswscale      6.  7.100 /  6.  7.100
            libswresample   4.  7.100 /  4.  7.100
            libpostproc    56.  6.100 / 56.  6.100
          [hls @ 0x55d2c2041dc0] Skip ('#EXT-X-VERSION:3')
          [hls @ 0x55d2c2041dc0] Skip ('#EXT-X-DISCONTINUITY-SEQUENCE:4844')
          [hls @ 0x55d2c2041dc0] Opening 'https://e1-eu8.angelcam.com/cameras/102191/streams/hls/streaming-master-m2-eu8/segment-260975.ts' for reading
          [hls @ 0x55d2c2041dc0] Opening 'https://e1-eu8.angelcam.com/cameras/102191/streams/hls/streaming-master-m2-eu8/segment-260976.ts' for reading
          [NULL @ 0x55d2c26b80c0] non-existing PPS 0 referenced
          [h264 @ 0x55d2c26e47c0] non-existing PPS 0 referenced
          [h264 @ 0x55d2c26e47c0] decode_slice_header error
          [h264 @ 0x55d2c26e47c0] no frame!
          [NULL @ 0x55d2c26b80c0] non-existing PPS 0 referenced
          [h264 @ 0x55d2c26e47c0] non-existing PPS 0 referenced
          [h264 @ 0x55d2c26e47c0] decode_slice_header error
          [h264 @ 0x55d2c26e47c0] no frame!
          [NULL @ 0x55d2c26b80c0] non-existing PPS 0 referenced
          [h264 @ 0x55d2c26e47c0] non-existing PPS 0 referenced
          [h264 @ 0x55d2c26e47c0] decode_slice_header error
          [h264 @ 0x55d2c26e47c0] no frame!
          [NULL @ 0x55d2c26b80c0] non-existing PPS 0 referenced
          [h264 @ 0x55d2c26e47c0] non-existing PPS 0 referenced
          [h264 @ 0x55d2c26e47c0] decode_slice_header error
          [h264 @ 0x55d2c26e47c0] no frame!
          [NULL @ 0x55d2c26b80c0] non-existing PPS 0 referenced
          [h264 @ 0x55d2c26e47c0] non-existing PPS 0 referenced
          [h264 @ 0x55d2c26e47c0] decode_slice_header error
          [h264 @ 0x55d2c26e47c0] no frame!
          [NULL @ 0x55d2c26b80c0] non-existing PPS 0 referenced
          [h264 @ 0x55d2c26e47c0] non-existing PPS 0 referenced
          [h264 @ 0x55d2c26e47c0] decode_slice_header error
          [h264 @ 0x55d2c26e47c0] no frame!
          [NULL @ 0x55d2c26b80c0] non-existing PPS 0 referenced
          [h264 @ 0x55d2c26e47c0] non-existing PPS 0 referenced
          [h264 @ 0x55d2c26e47c0] decode_slice_header error
          [h264 @ 0x55d2c26e47c0] no frame!
          [NULL @ 0x55d2c26b80c0] non-existing PPS 0 referenced
          [h264 @ 0x55d2c26e47c0] non-existing PPS 0 referenced
          [h264 @ 0x55d2c26e47c0] decode_slice_header error
          [h264 @ 0x55d2c26e47c0] no frame!
          [NULL @ 0x55d2c26b80c0] non-existing PPS 0 referenced
          [h264 @ 0x55d2c26e47c0] non-existing PPS 0 referenced
          [h264 @ 0x55d2c26e47c0] decode_slice_header error
          [h264 @ 0x55d2c26e47c0] no frame!
          [NULL @ 0x55d2c26b80c0] non-existing PPS 0 referenced
          [h264 @ 0x55d2c26e47c0] non-existing PPS 0 referenced
          [h264 @ 0x55d2c26e47c0] decode_slice_header error
          [h264 @ 0x55d2c26e47c0] no frame!
          Input #0, hls, from 'https://e1-eu8.angelcam.com/cameras/102191/streams/hls/playlist.m3u8?token=eyJjYW1lcmFfaWQiOiIxMDIxOTEiLCJkZXZpY2VfaWQiOiIxMDIxOTEiLCJ0aW1lIjoxNzE0MDM3MTk1NjY4NzUyLCJ0aW1lb3V0IjozNjAwfQ%3D%3D.3adf959cca12f509b6c812988344987b50a76b4c2f50a2b6373c465c5d6ee892':
            Duration: N/A, start: 21649.723867, bitrate: N/A
            Program 0
              Metadata:
                variant_bitrate : 0
            Stream #0:0: Audio: aac (LC) ([15][0][0][0] / 0x000F), 32000 Hz, mono, fltp
              Metadata:
                variant_bitrate : 0
            Stream #0:1: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuvj420p(pc, bt709), 1280x720, 10 fps, 25 tbr, 90k tbn
              Metadata:
                variant_bitrate : 0
          Output #0, mp4, to '/tmp/test.mp4':
            Metadata:
              encoder         : Lavf59.27.100
            Stream #0:0: Video: h264 (Main) (avc1 / 0x31637661), yuvj420p(pc, bt709), 1280x720, q=2-31, 10 fps, 25 tbr, 90k tbn
              Metadata:
                variant_bitrate : 0
            Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 32000 Hz, mono, fltp
              Metadata:
                variant_bitrate : 0
          Stream mapping:
            Stream #0:1 -> #0:0 (copy)
            Stream #0:0 -> #0:1 (copy)
          Press [q] to stop, [?] for help
          frame=   40 fps=0.0 q=-1.0 Lsize=     220kB time=00:00:05.02 bitrate= 358.7kbits/s speed=3.89e+03x
          video:179kB audio:39kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.960948%
          
          

          Da scheint bei mir noch ein kleiner Wurm zu sein 😉

          Marc Berg 1 Reply Last reply Reply Quote 0
          • Marc Berg
            Marc Berg Most Active @DJMarc75 last edited by

            @djmarc75 sagte in Internet/Webcamstream als Video speichern:

            Meine Commandline gibt mir allerdings folgendes aus

            Ich denke, du musst dir deinen eigenen Token rausfummeln.

            b9153459-e583-4a3c-b798-58bf9391a0bf-grafik.png

            DJMarc75 1 Reply Last reply Reply Quote 1
            • DJMarc75
              DJMarc75 @Marc Berg last edited by

              @marc-berg sagte in Internet/Webcamstream als Video speichern:

              Ich denke, du musst dir deinen eigenen Token rausfummeln

              Hab ich aber keinen Erfolg erzielt.

              Screenshot 2024-04-25 130033.png

              Muss heute Abend nochmal in mich gehen 😉

              Marc Berg 1 Reply Last reply Reply Quote 0
              • Marc Berg
                Marc Berg Most Active @DJMarc75 last edited by Marc Berg

                @djmarc75 sagte in Internet/Webcamstream als Video speichern:

                Hab ich aber keinen Erfolg erzielt.

                Die gleichen Fehlermeldungen kommen bei mir auch, trotzdem wird das File geschrieben. Ich denke das liegt daran, dass man in einen laufenden Stream einsteigt und das Keyframe fehlt. Sobald nach 1-2 sek das erste Keyframe empfangen wurde, werden die Videodaten sauber ins mp4-File übernommen.

                DJMarc75 1 Reply Last reply Reply Quote 0
                • DJMarc75
                  DJMarc75 @Marc Berg last edited by DJMarc75

                  @marc-berg sagte in Internet/Webcamstream als Video speichern:

                  werden die Videodaten sauber ins mp4-File übernommen

                  vll liegts auch an iwelchen Berechtigungen bei mir ?

                  Läuft nämlich auch sauber durch aber ich sehe kein mp4 bei mir. (Ordner zum Schreiben geändert)

                  marc@ioBrokerBookworm:~$ ffmpeg -i https://e1-eu8.angelcam.com/cameras/102191/streams/hls/playlist.m3u8?token=eyJjYW1lcmFfaWQiOiIxMDIxOTEiLCJkZXZpY2VfaWQiOiIxMDIxOTEiLCJ0aW1lIjoxNzE0MDQyNTEwMTAzMDU3LCJ0aW1lb3V0IjozNjAwfQ%3D%3D%2Eeb99571d3ce90394e12faa6dc215acd6aa67fab82aae3b4ba2c58ab41cf6eec9 -t 5 -vcodec copy -acodec copy -y /opt/iobroker/mp4/test.mp4
                  ffmpeg version 5.1.4-0+deb12u1 Copyright (c) 2000-2023 the FFmpeg developers
                    built with gcc 12 (Debian 12.2.0-14)
                    configuration: --prefix=/usr --extra-version=0+deb12u1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --disable-sndio --enable-libjxl --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --enable-shared
                    libavutil      57. 28.100 / 57. 28.100
                    libavcodec     59. 37.100 / 59. 37.100
                    libavformat    59. 27.100 / 59. 27.100
                    libavdevice    59.  7.100 / 59.  7.100
                    libavfilter     8. 44.100 /  8. 44.100
                    libswscale      6.  7.100 /  6.  7.100
                    libswresample   4.  7.100 /  4.  7.100
                    libpostproc    56.  6.100 / 56.  6.100
                  [hls @ 0x55942930bdc0] Skip ('#EXT-X-VERSION:3')
                  [hls @ 0x55942930bdc0] Skip ('#EXT-X-DISCONTINUITY-SEQUENCE:4844')
                  [hls @ 0x55942930bdc0] Opening 'https://e1-eu8.angelcam.com/cameras/102191/streams/hls/streaming-master-m2-eu8/segment-262356.ts' for reading
                  [hls @ 0x55942930bdc0] Opening 'https://e1-eu8.angelcam.com/cameras/102191/streams/hls/streaming-master-m2-eu8/segment-262357.ts' for reading
                  Input #0, hls, from 'https://e1-eu8.angelcam.com/cameras/102191/streams/hls/playlist.m3u8?token=eyJjYW1lcmFfaWQiOiIxMDIxOTEiLCJkZXZpY2VfaWQiOiIxMDIxOTEiLCJ0aW1lIjoxNzE0MDQyNTEwMTAzMDU3LCJ0aW1lb3V0IjozNjAwfQ%3D%3D%2Eeb99571d3ce90394e12faa6dc215acd6aa67fab82aae3b4ba2c58ab41cf6eec9':
                    Duration: N/A, start: 29935.706867, bitrate: N/A
                    Program 0
                      Metadata:
                        variant_bitrate : 0
                    Stream #0:0: Audio: aac (LC) ([15][0][0][0] / 0x000F), 32000 Hz, mono, fltp
                      Metadata:
                        variant_bitrate : 0
                    Stream #0:1: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuvj420p(pc, bt709), 1280x720, 10 fps, 25 tbr, 90k tbn
                      Metadata:
                        variant_bitrate : 0
                  Output #0, mp4, to '/opt/iobroker/mp3/test.mp4':
                    Metadata:
                      encoder         : Lavf59.27.100
                    Stream #0:0: Video: h264 (Main) (avc1 / 0x31637661), yuvj420p(pc, bt709), 1280x720, q=2-31, 10 fps, 25 tbr, 90k tbn
                      Metadata:
                        variant_bitrate : 0
                    Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 32000 Hz, mono, fltp
                      Metadata:
                        variant_bitrate : 0
                  Stream mapping:
                    Stream #0:1 -> #0:0 (copy)
                    Stream #0:0 -> #0:1 (copy)
                  Press [q] to stop, [?] for help
                  frame=   50 fps=0.0 q=-1.0 Lsize=     377kB time=00:00:05.02 bitrate= 615.4kbits/s speed=1.32e+03x
                  video:336kB audio:39kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.637988%
                  
                  
                  Marc Berg 1 Reply Last reply Reply Quote 0
                  • Marc Berg
                    Marc Berg Most Active @DJMarc75 last edited by

                    @djmarc75 sagte in Internet/Webcamstream als Video speichern:

                    vll liegts auch an iwelchen Berechtigungen bei mir ?

                    Wenn ich einen Ordner nutze, bei dem die Rechte fehlen, bekomme ich auch eine saubere Fehlermeldung:

                    Input #0, hls, from 'https://e1-eu8.angelcam.com/cameras/102191/streams/hls/playlist.m3u8?token=eyJjYW1lcmFfaWQiOiIxMDIxOTEiLCJkZXZpY2VfaWQiOiIxMDIxOTEiLCJ0aW1lIjoxNzE0MDQ4MDc4OTE2MDAxLCJ0aW1lb3V0IjozNjAwfQ%3D%3D%2Ef059aaf225fc54f6b2ad6267a0c893da763a9aa050952a46c97781f800184e18':
                      Duration: N/A, start: 31879.706867, bitrate: N/A
                      Program 0
                        Metadata:
                          variant_bitrate : 0
                      Stream #0:0: Audio: aac (LC) ([15][0][0][0] / 0x000F), 32000 Hz, mono, fltp
                        Metadata:
                          variant_bitrate : 0
                      Stream #0:1: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuvj420p(pc, bt709), 1280x720, 25 tbr, 90k tbn, 20 tbc
                        Metadata:
                          variant_bitrate : 0
                    /tmp/OUT1.mp4: Permission denied
                    
                    1 Reply Last reply Reply Quote 0
                    • First post
                      Last post

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    990
                    Online

                    31.6k
                    Users

                    79.4k
                    Topics

                    1.3m
                    Posts

                    2
                    8
                    233
                    Loading More Posts
                    • Oldest to Newest
                    • Newest to Oldest
                    • Most Votes
                    Reply
                    • Reply as topic
                    Log in to reply
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                    The ioBroker Community 2014-2023
                    logo