Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. [HowTo] rtsp mit ffmpeg für vis konvertieren

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    [HowTo] rtsp mit ffmpeg für vis konvertieren

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

      @Gonmyr:

      Hallo,

      prima Anleitung. Danke fürs Teilen.

      Läut super mit der ersten Cam.

      Verstehe ich das richtig, dass ich dann für mehrere IPCams auch mehrere Scripte brauche oder kann ich die alle in ein Script schmeißen?

      Grüße `

      ich schätze mal das du die Variable hier ändern kannst in z.B auch cam1 und den Pfad anpassen bzw. die ausgabeurl ändern

      var ffmpegStartCmd   = "ffmpeg -i \"rtsp://user:user@192.168.1.yyy:554/cam/realmonitor?channel=1&subtype=2\" http://localhost:8090/ipcam1.ffm";
      

      Kamera 2

      var ffmpegStartCmdCam2   = "ffmpeg -i \"rtsp://user:user@192.168.1.yyy:554/cam/realmonitor?channel=1&subtype=2\" http://localhost:8090/ipcam2.ffm";
      

      Danach dann noch im dem Startabschnitt die Variable mitstarten

       exec(ffserverStartCmd, function(err, stdout, stderr) {
              if (err) {
                  console.log("ffserver error: " + stderr);
              }
      

      darin noch einfügen (2. Kamera)

       exec(ffmpegStartCmdCam2, function(err, stdout, stderr) {
              if (err) {
                  console.log("ffserver error: " + stderr);
              }
      
      1 Reply Last reply Reply Quote 0
      • G
        Gonmyr last edited by

        Du meinst in Deinem 2. Abschnitt ffmpegStartCmd anstatt ffserverStart oder?

        Sonst wäre ja der Eintrag doppelt… oder übersehe ich etwas?

        1 Reply Last reply Reply Quote 0
        • M
          mikiline last edited by

          ffserver läuft ja bereits….

          einfach die variable ersetzen die du oben genommen hast (url zur 2. cam)

          Und in der Config Datei (etc/ffserver.conf) noch die 2. cam als stream einfügen

          ! ````
          ########################################

          IP camera feed...

          <feed ipcam1.ffm="">File /tmp/ipcam1.ffm
          FileMaxSize 1M
          ACL allow 127.0.0.1</feed>

          ! ########################################

          Streams...

          <stream ipcam1.mjpg="">Feed ipcam1.ffm
          Format mpjpeg
          VideoQMin 1
          VideoQMax 4
          VideoFrameRate 10
          VideoSize 480x390
          VideoBufferSize 1024
          VideoBitRate 1024
          NoAudio
          Strict -1</stream>
          <stream ipcam1.jpg="">Feed ipcam1.ffm
          Format jpeg
          Qscale 2
          VideoFrameRate 2
          VideoSize 704x576
          VideoIntraOnly
          NoAudio
          NoDefaults
          Strict -1</stream>

          
          Alles ohne Gewähr…..ich habe das nicht getestet ;)
          1 Reply Last reply Reply Quote 0
          • G
            Gonmyr last edited by

            Es läuft! :lol:

            Aber ich musste die ffserver.conf auch noch anpassen.

            Wenn dort auch alle Streams drin stehen, klappt es prima.

            Dankeschön für die Unterstützung!

            Gruß

            1 Reply Last reply Reply Quote 0
            • lobomau
              lobomau last edited by

              Bin grad am Testen. ffserver läuft schon mal.

              Geht das ganze nur mit rtsp-streams oder auch mit http-streams?

              1 Reply Last reply Reply Quote 0
              • D
                dtp last edited by

                Also ich nutze seit Jahren auf meinem Raspi das https://elinux.org/RPi-Cam-Web-Interface. Läuft sehr stabil und bietet extrem viele Einstellmöglichkeiten; so z.B. auch eine integrierte Bewegungserkennung.

                Streams lassen sich per

                http://<ip-adresse>/cam_pic_new.php?</ip-adresse>
                

                einbinden oder per

                http://<ip-adresse>:</ip-adresse>
                

                direkt im Browser ansehen (Der Port ist nur nötig, wenn man vom Standardwert 80 abweicht). Zudem ist eine sehr einfache Konfiguration über den Web-Server möglich.

                Gruß,

                Thorsten

                1 Reply Last reply Reply Quote 0
                • M
                  mikiline last edited by

                  @lobomau:

                  Bin grad am Testen. ffserver läuft schon mal.

                  Geht das ganze nur mit rtsp-streams oder auch mit http-streams? `

                  Das ist dann ein MJPEG Stream….also ein HTTP Stream.

                  Ja du kannst auch RTSP Stream von ffSERVER "konvertieren" lassen

                  Einfach zu probieren wenn du im Skript einfach mal einen anderen Stream zu ffServer schickst 😉

                  1 Reply Last reply Reply Quote 0
                  • E
                    eastcoast last edited by

                    @lobomau:

                    Bin grad am Testen. ffserver läuft schon mal.

                    Geht das ganze nur mit rtsp-streams oder auch mit http-streams? `
                    Keine Ahnung was du mit "http-stream" meinst, aber prinzipiell kann ffmpeg so ziemlich alles konvertieren,

                    auf deren Homepage gibt es detailierte Infos.

                    1 Reply Last reply Reply Quote 0
                    • lobomau
                      lobomau last edited by

                      Ich habe es nun mit einer camera probiert, die ein rtsp-stream macht.

                      Läuft wohl so halb, wenn man die Werte liest. Nur Bild habe ich nicht und keine zusätzliche CPU-Beanspruchung.

                      Ich verstehe nicht was die synology (192.168.178.24) damit zu tun hat? Achso… dort läuft synology suvaillance mit der camera. Vielleicht sollte ich dort erstmal ausschalten... probiere ich mal aus... Edit: hat keinen Unterschied gemacht.

                      Laufen tut ffmpeg auf dem server wo auch ioBroker läuft (192.168.178.18).
                      1146_ffserver.png
                      1146_ffserver2.png

                      1 Reply Last reply Reply Quote 0
                      • _
                        _techniker_ last edited by

                        So sieht das bei mir auch aus.

                        Gibt es dafür eine Lösung?

                        1 Reply Last reply Reply Quote 0
                        • C
                          crossx last edited by

                          @_techniker_:

                          So sieht das bei mir auch aus.

                          Gibt es dafür eine Lösung? `

                          Im ursprünglichen Skript fehlt am Ende in der start-Funktion der Befehl ffmpegStart() um den Stream zu starten. Allerdings auf meinem RPi2 kaum umsetzbar, da zuviel Leistung benötigt wird.

                          function start() {
                              ffserverStart();
                              ffmpegStart();
                          }
                          
                          1 Reply Last reply Reply Quote 0
                          • Chaot
                            Chaot last edited by

                            Bei mir startet das Script nicht.

                            Ich habe bei der Adresse der Kamera einen Fehler.

                            Komme aber nicht drauf was:

                            javascript.0	2018-12-26 23:08:40.399	error	at TCP.onread (net.js:601:20)
                            javascript.0	2018-12-26 23:08:40.399	error	at Socket.Readable.push (_stream_readable.js:208:10)
                            javascript.0	2018-12-26 23:08:40.399	error	at readableAddChunk (_stream_readable.js:250:11)
                            javascript.0	2018-12-26 23:08:40.399	error	at addChunk (_stream_readable.js:263:12)
                            javascript.0	2018-12-26 23:08:40.399	error	at Socket.emit (events.js:211:7)
                            javascript.0	2018-12-26 23:08:40.399	error	at emitOne (events.js:116:13)
                            javascript.0	2018-12-26 23:08:40.399	error	at Socket. <anonymous>(/opt/iobroker/node_modules/redis/index.js:274:27)
                            javascript.0	2018-12-26 23:08:40.399	error	at JavascriptRedisParser.execute (/opt/iobroker/node_modules/redis-parser/lib/parser.js:574:12)
                            javascript.0	2018-12-26 23:08:40.398	error	at JavascriptRedisParser.returnReply (/opt/iobroker/node_modules/redis/index.js:192:18)
                            javascript.0	2018-12-26 23:08:40.398	error	at RedisClient.return_reply (/opt/iobroker/node_modules/redis/index.js:824:9)
                            javascript.0	2018-12-26 23:08:40.398	error	at normal_reply (/opt/iobroker/node_modules/redis/index.js:726:21)
                            javascript.0	2018-12-26 23:08:40.398	error	at Command.callback (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:236:17)
                            javascript.0	2018-12-26 23:08:40.398	error	at adapter.getForeignState (/opt/iobroker/node_modules/iobroker.javascript/main.js:823:17)
                            javascript.0	2018-12-26 23:08:40.398	error	at createActiveObject (/opt/iobroker/node_modules/iobroker.javascript/main.js:1200:20)
                            javascript.0	2018-12-26 23:08:40.398	error	at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1146:37)
                            javascript.0	2018-12-26 23:08:40.398	error	at compile (/opt/iobroker/node_modules/iobroker.javascript/main.js:957:28)
                            javascript.0	2018-12-26 23:08:40.398	error	at Object.createScript (vm.js:80:10)
                            javascript.0	2018-12-26 23:08:40.397	error	SyntaxError: Unexpected identifier
                            javascript.0	2018-12-26 23:08:40.397	error	^^^^
                            javascript.0	2018-12-26 23:08:40.397	error	var ffmpegStartCmd = "ffmpeg -i \"rtsp://192.168.8.90:554/user=XXXXXX_password=XXXXXXXX_channel=1_stream=0.sdp?real_stream" http://localhost:8090/ipcam1.ffm";
                            javascript.0	2018-12-26 23:08:40.397	error	at script.js.Klingel.Kamera:6
                            javascript.0	2018-12-26 23:08:40.397	error	script.js.Klingel.Kamera compile failed:</anonymous> 
                            

                            Scriptkopf:

                            // **********************************************************************
                            // Settings
                            
                            var ffserverStartCmd = "/usr/bin/ffserver &";
                            var ffserverStopCmd  = "killall ffserver";
                            var ffmpegStartCmd   = "ffmpeg -i \"rtsp://192.168.8.90:554/user=XXXX_password=XXXXXX_channel=1_stream=0.sdp?real_stream" http://localhost:8090/ipcam1.ffm";
                            var ffmpegStopCmd    = "killall ffmpeg";
                            
                            
                            1 Reply Last reply Reply Quote 0
                            • J
                              johann.greindl last edited by

                              Da fehlt ein Backslash \ nach real_stream

                              Gesendet von iPad mit Tapatalk

                              1 Reply Last reply Reply Quote 0
                              • Chaot
                                Chaot last edited by

                                😄 😄 😄 … und läuft!

                                Ganz herzlichen Dank :!:

                                1 Reply Last reply Reply Quote 0
                                • H
                                  HoffmannOs last edited by

                                  ` > * javascript.0 2018-12-28 01:22:59.897 info script.js.Alarmanlage.ffmpeg: ffmpeg has exited unexpected! Restart in 30s!

                                  javascript.0 2018-12-28 01:22:59.897 info script.js.Alarmanlage.ffmpeg: getState(id=ffmpegCam.run, timerId=0) => [object Object]
                                  
                                  javascript.0 2018-12-28 01:22:59.897 info script.js.Alarmanlage.ffmpeg: ffmpeg error: ffmpeg version 3.2.12-1~deb9u1 Copyright © 2000-2018 the FFmpeg developers built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516 configuration: --pre
                                  
                                  javascript.0 2018-12-28 01:22:54.447 info script.js.Alarmanlage.ffmpeg: ffmpeg stop failed: ffmpeg: Kein Prozess gefunden
                                  
                                  javascript.0 2018-12-28 01:22:54.447 info script.js.Alarmanlage.ffmpeg: exec: ffmpeg -i "rtsp://xxx:xxxx12@192.168.181.53:554/onvif/profile1/media.smp" [http://localhost:8090/ipcam1.ffm](http://localhost:8090/ipcam1.ffm)
                                  
                                  javascript.0 2018-12-28 01:22:54.447 info script.js.Alarmanlage.ffmpeg: ffmpeg start...
                                  
                                  javascript.0 2018-12-28 01:22:54.447 info script.js.Alarmanlage.ffmpeg: exec: killall ffmpeg
                                  
                                  javascript.0 2018-12-28 01:22:54.447 info script.js.Alarmanlage.ffmpeg: ffmpeg stop...
                                  
                                  javascript.0 2018-12-28 01:22:54.447 warn script.js.Alarmanlage.ffmpeg: clearTimeout() => not found
                                  
                                  javascript.0 2018-12-28 01:22:54.447 info script.js.Alarmanlage.ffmpeg: setForeignState(id=javascript.0.ffmpegCam.statistics.cntRestart, state=45)
                                  
                                  javascript.0 2018-12-28 01:22:54.447 info script.js.Alarmanlage.ffmpeg: getState(id=ffmpegCam.statistics.cntRestart, timerId=0) => [object Object]
                                  
                                  javascript.0 2018-12-28 01:22:54.447 info script.js.Alarmanlage.ffmpeg: setForeignState(id=javascript.0.ffmpegCam.statistics.lastRestart, state="2018-12-28 01:22:54")
                                  
                                  javascript.0 2018-12-28 01:22:24.421 info script.js.Alarmanlage.ffmpeg: setTimeout(ms=30000)
                                  
                                  javascript.0 2018-12-28 01:22:24.421 info script.js.Alarmanlage.ffmpeg: ffmpeg has exited unexpected! Restart in 30s!
                                  
                                  javascript.0 2018-12-28 01:22:24.421 info script.js.Alarmanlage.ffmpeg: getState(id=ffmpegCam.run, timerId=0) => [object Object]
                                  
                                  javascript.0 2018-12-28 01:22:24.418 info script.js.Alarmanlage.ffmpeg: ffmpeg error: ffmpeg version 3.2.12-1~deb9u1 Copyright © 2000-2018 the FFmpeg developers built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516 configuration: --pre
                                  
                                  javascript.0 2018-12-28 01:22:18.922 info script.js.Alarmanlage.ffmpeg: exec: ffmpeg -i "rtsp://xxx:xx@192.168.181.53:554/onvif/profile1/media.smp" [http://localhost:8090/ipcam1.ffm](http://localhost:8090/ipcam1.ffm)
                                  
                                  javascript.0 2018-12-28 01:22:18.922 info script.js.Alarmanlage.ffmpeg: ffmpeg start...
                                  
                                  javascript.0 2018-12-28 01:22:18.921 info script.js.Alarmanlage.ffmpeg: Start ffmpeg...
                                  
                                  javascript.0 2018-12-28 01:22:18.921 info script.js.Alarmanlage.ffmpeg: Run state changed from false to true
                                  
                                  javascript.0 2018-12-28 01:22:05.055 info script.js.Alarmanlage.ffmpeg: exec: /usr/bin/ffserver &
                                  
                                  javascript.0 2018-12-28 01:22:05.055 info script.js.Alarmanlage.ffmpeg: ffserver start... `  
                                  

                                  ich bekomme immer diesen fehler. kann mir jemand helfen?

                                  1 Reply Last reply Reply Quote 0
                                  • Chaot
                                    Chaot last edited by

                                    Das ist eventuell der gleiche Fehler wie bei mir.

                                    aus

                                    rtsp://xxx:xx@192.168.181.53:554/onvif/profile1/media.smp
                                    

                                    muss

                                    rtsp://xxx:xx@192.168.181.53:554/onvif/profile1/media.smp\
                                    

                                    werden. dann sollte es funktionieren.

                                    Allerdings wundert mich die Adresse. Bist du sicher das da drüber der Stream kommt?

                                    Allerdings funktioniert bei mir jetzt zwar das Script, aber der Stream leider nicht. 😢

                                    1 Reply Last reply Reply Quote 0
                                    • JohGre
                                      JohGre last edited by

                                      Ob der Stream funktioniert kannst du schnell mit VLC unter "Medien –> Netzwerkstream öffnen" testen.

                                      1 Reply Last reply Reply Quote 0
                                      • A
                                        aleks-83 last edited by

                                        Ich versuche auch gerade einen restream per ffmpeg aufzubauen.
                                        Habe aber ein Problem.

                                        Irgendwie scheitert die Verbindung zum localhost.
                                        Ich habe auch versucht localhost durch 127.0.0.1 oder die IP des servers zu ersetzen.
                                        Keine Änderung...

                                        ffmpeg version 3.2.12-1~deb9u1 Copyright (c) 2000-2018 the FFmpeg developers
                                          built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516
                                          configuration: --prefix=/usr --extra-version='1~deb9u1' 
                                        --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu 
                                        --enable-gpl --disable-stripping --enable-avresample --enable-avisynth 
                                        --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray 
                                        --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libebur128 
                                        --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi
                                         --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libopenjpeg
                                         --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband 
                                        --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex 
                                        --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis 
                                        --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 
                                        --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx 
                                        --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 
                                        --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv 
                                        --enable-libx264 --enable-shared
                                          libavutil      55. 34.101 / 55. 34.101
                                          libavcodec     57. 64.101 / 57. 64.101
                                          libavformat    57. 56.101 / 57. 56.101
                                          libavdevice    57.  1.100 / 57.  1.100
                                          libavfilter     6. 65.100 /  6. 65.100
                                          libavresample   3.  1.  0 /  3.  1.  0
                                          libswscale      4.  2.100 /  4.  2.100
                                          libswresample   2.  3.100 /  2.  3.100
                                          libpostproc    54.  1.100 / 54.  1.100
                                        Input #0, rtsp, from 'rtsp://USER:PASS@10.0.0.21:554/Streaming/Channels/102':
                                          Metadata:
                                            title           : Media Presentation
                                          Duration: N/A, start: 0.310000, bitrate: N/A
                                            Stream #0:0: Video: h264 (Main), yuvj420p(pc, bt709, progressive), 640x360 [SAR 1:1 DAR 16:9], 20 fps, 25 tbr, 90k tbn, 40 tbc
                                        [tcp @ 0x55fc826e03a0] Connection to tcp://localhost:8090 failed (Connection refused), trying next address
                                        [tcp @ 0x55fc826e03a0] Connection to tcp://localhost:8090 failed: Connection refused
                                        http://localhost:8090/Eingang.ffm: Connection refused
                                        
                                        

                                        Der FFserver bzw. das WebIF ist aber auch nicht über die IP.des.Servers:8090 zu erreichen...
                                        Das scheint wohl das Problem zu sein.

                                        1 Reply Last reply Reply Quote 0
                                        • A
                                          aleks-83 last edited by aleks-83

                                          Weiß niemand warum der ffserver nicht unter 8090 zu erreichen ist?

                                          Welche Befehle oder stati kann ich checken um ihn zum Laufen zu bekommen?

                                          1 Reply Last reply Reply Quote 0
                                          • wendy2702
                                            wendy2702 last edited by

                                            Gibt wenn ich mich nicht täusche für ffmpeg Optionen zum erweiterten Loggen. Mal googeln und schauen ob es mehr infos gibt.

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            558
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            template vis
                                            24
                                            59
                                            24820
                                            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