Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    DuetLapse3

    Scheduled Pinned Locked Moved
    Third-party software
    20
    296
    30.1k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • stuartofmtundefined
      stuartofmt @Proschi3D
      last edited by stuartofmt

      @Proschi78 said in DuetLapse3:

      @stuartofmt i usually use mjpeg stream to see the camera in the DWC

      I installed fswebcam.
      but would like to use mjpeg streamer for that.
      Then I only have to specify the printer ip when starting?

      Ok - so there is a little confusion here - lets fix that 🙂

      To get started, its best to use minimal options and make sure DuetLapse can "see" the webcam and your printer. Often the "hard" part is sorting out the camera connection since this can vary quite a lot from camera-to-camera.

      Lets start with the camera:
      You want to use mjpeg-streamer? That should be fine. (Shameless plug https://forum.duet3d.com/topic/23759/videostream)
      Using mjpeg (or other) streamer: make sure its set up so that you can view the stream in your browser. What is that url ? you will use it below.

      For DuetLapse:
      The minimum options to start DuetLapse are:
      - duet # the same ip address you would use for DWC
      - port # this is the port number you want the DuetLapse http server to use
      - basedir # not strictly necessary but best to include so as to not clutter the DuetLapse program folder

      and of course (for now) add:
      -verbose

      Now you need some camera settings. Since you will be using a streaming url you do not want to specify usb. Instead try this (its what I do) 🙂
      -weburl1 the url (that allows you to stream in browser
      e.g. http://192.168.1.1:8081/mjpeg
      -camera1 other
      -camparam1= "'ffmpeg ' + ffmpegquiet + ' -y -i ' +weburl+ ' -vframes 1 ' +fn+debug" take careful note of spaces and " and '

      When DuetLapse starts successfully: You will be able to access it locally using http://localhost:port where port was set with -port or you can access it locally or remotely with http://ip:port where ip is the ip address if the machine running DuetLapse (this is NOT set as an option).

      Let me know how you get on.

      BTW - I have a new / improved version coming out in the next few days. It simplifies things a bit by allowing the options to be placed in a configuration file and it has a much better UI. Once you are up and running the new version is just a file copy as it uses all the same config settings.

      Proschi3Dundefined 1 Reply Last reply Reply Quote 0
      • Proschi3Dundefined
        Proschi3D @stuartofmt
        last edited by

        @stuartofmt no matter what I enter, it always comes up with this message

        
        pi@RepetierServer:~/Duetlapse $ python3 DuetLapse3.py -duet 192.168.178.91
        192.168.178.91 MainThread - ################### Options at start of this print job  #####################
        192.168.178.91 MainThread - # Environment
        192.168.178.91 MainThread - duet                 192.168.178.91
        192.168.178.91 MainThread - basedir              /home/pi/Duetlapse
        192.168.178.91 MainThread - poll                 12
        192.168.178.91 MainThread - instances            single
        192.168.178.91 MainThread - logtype              both
        192.168.178.91 MainThread - nolog                False
        192.168.178.91 MainThread - verbose              False
        192.168.178.91 MainThread - host                 0.0.0.0
        192.168.178.91 MainThread - port                 0
        192.168.178.91 MainThread - keeplogs             False
        192.168.178.91 MainThread - novideo              False
        192.168.178.91 MainThread - deletepics           False
        192.168.178.91 MainThread - maxffmpeg            2
        192.168.178.91 MainThread - keepfiles            False
        192.168.178.91 MainThread - # Execution
        192.168.178.91 MainThread - dontwait             False
        192.168.178.91 MainThread - seconds              0
        192.168.178.91 MainThread - detect               layer
        192.168.178.91 MainThread - pause                no
        192.168.178.91 MainThread - movehead             [0.0, 0.0]
        192.168.178.91 MainThread - rest                 1
        192.168.178.91 MainThread - standby              False
        192.168.178.91 MainThread - restart              False
        192.168.178.91 MainThread - # Camera
        192.168.178.91 MainThread -  camera1             usb
        192.168.178.91 MainThread - camera2
        192.168.178.91 MainThread - weburl1
        192.168.178.91 MainThread - weburl2
        192.168.178.91 MainThread - # Video
        192.168.178.91 MainThread - extratime            0
        192.168.178.91 MainThread - fps                  10
        192.168.178.91 MainThread - minvideo             5
        192.168.178.91 MainThread - # Overrides
        192.168.178.91 MainThread - camparam1
        192.168.178.91 MainThread - camparam2
        192.168.178.91 MainThread - vidparam1
        192.168.178.91 MainThread - vidparam2
        192.168.178.91 MainThread - # UI
        192.168.178.91 MainThread - hidebuttons          False
        192.168.178.91 MainThread - # Special Functions
        192.168.178.91 MainThread - execkey
        192.168.178.91 MainThread - -----------------------------------------------------------------------
        
        
        192.168.178.91 MainThread - Command Exception: fswebcam --version
        192.168.178.91 MainThread - Command 'fswebcam --version' returned non-zero exit status 255.
        192.168.178.91 MainThread - Module 'fswebcam' is required.
        192.168.178.91 MainThread - Obtain via 'sudo apt install fswebcam'
        
        

        Love my Duet 3 Mini.
        https://www.instagram.com/proschi3d
        https://youtube.com/@proschi3d
        https://www.proschi3d.de

        1 Reply Last reply Reply Quote 0
        • Proschi3Dundefined
          Proschi3D
          last edited by

          pi@RepetierServer:~/Duetlapse $ python3 DuetLapse3.py -weburl1 http://192.168.178.70:8081/stream
          localhost MainThread - ################### Options at start of this print job  #####################
          localhost MainThread - # Environment
          localhost MainThread - duet                 localhost
          localhost MainThread - basedir              /home/pi/Duetlapse
          localhost MainThread - poll                 12
          localhost MainThread - instances            single
          localhost MainThread - logtype              both
          localhost MainThread - nolog                False
          localhost MainThread - verbose              False
          localhost MainThread - host                 0.0.0.0
          localhost MainThread - port                 0
          localhost MainThread - keeplogs             False
          localhost MainThread - novideo              False
          localhost MainThread - deletepics           False
          localhost MainThread - maxffmpeg            2
          localhost MainThread - keepfiles            False
          localhost MainThread - # Execution
          localhost MainThread - dontwait             False
          localhost MainThread - seconds              0
          localhost MainThread - detect               layer
          localhost MainThread - pause                no
          localhost MainThread - movehead             [0.0, 0.0]
          localhost MainThread - rest                 1
          localhost MainThread - standby              False
          localhost MainThread - restart              False
          localhost MainThread - # Camera
          localhost MainThread -  camera1             usb
          localhost MainThread - camera2
          localhost MainThread - weburl1              http://192.168.178.70:8081/stream
          localhost MainThread - weburl2
          localhost MainThread - # Video
          localhost MainThread - extratime            0
          localhost MainThread - fps                  10
          localhost MainThread - minvideo             5
          localhost MainThread - # Overrides
          localhost MainThread - camparam1
          localhost MainThread - camparam2
          localhost MainThread - vidparam1
          localhost MainThread - vidparam2
          localhost MainThread - # UI
          localhost MainThread - hidebuttons          False
          localhost MainThread - # Special Functions
          localhost MainThread - execkey
          localhost MainThread - -----------------------------------------------------------------------
          
          
          localhost MainThread - Command Exception: fswebcam --version
          localhost MainThread - Command 'fswebcam --version' returned non-zero exit status 255.
          localhost MainThread - Module 'fswebcam' is required.
          localhost MainThread - Obtain via 'sudo apt install fswebcam'
          pi@RepetierServer:~/Duetlapse $
          
          

          Love my Duet 3 Mini.
          https://www.instagram.com/proschi3d
          https://youtube.com/@proschi3d
          https://www.proschi3d.de

          stuartofmtundefined 1 Reply Last reply Reply Quote 0
          • stuartofmtundefined
            stuartofmt @Proschi3D
            last edited by

            @Proschi78

            In both cases you are still using -camera1 usb (either explicitly of by default). This forced the program to try and use fswebcam. In any case fswebcam does not appear the be installed.

            In the second example you did not include all the options that I gave in the post above. Mandatory options like -duet and -port are missing, along with others. It cannot work given the command line input you used.

            Does putting http://192.168.178.70:8081/stream in your browser (on the raspberry pi) display the camera stream ? Do this just to make sure there is no network issue e.g. the camera url is blocked).

            If so - then the options I gave above should magically work 🙂

            Proschi3Dundefined 1 Reply Last reply Reply Quote 0
            • Proschi3Dundefined
              Proschi3D @stuartofmt
              last edited by Proschi3D

              @stuartofmt

              no such option: -d
              pi@RepetierServer:~/Duetlapse $ python3 -m pip -duet 192.168.178.91 -port 8025-verbose -weburl1 http://192.168.178.70:8081/?action=stream
              
              Usage:
                /usr/bin/python3 -m pip <command> [options]
              
              no such option: -d
              pi@RepetierServer:~/Duetlapse $
              
              

              Love my Duet 3 Mini.
              https://www.instagram.com/proschi3d
              https://youtube.com/@proschi3d
              https://www.proschi3d.de

              stuartofmtundefined 1 Reply Last reply Reply Quote 0
              • stuartofmtundefined
                stuartofmt @Proschi3D
                last edited by stuartofmt

                @Proschi78

                I'm not sure what you are trying to tell me here? pip is for installing python modules. Also - its best to answer / confirm the interim questions so that the person helping knows what you know. Again, you have not included the options I recommended. What you should be entering is this: Note that its all one line.(I recomend you copy/paste)

                python3 ./DuetLapse3.py -duet 192.168.178.91 -port 8025 -verbose -weburl1 http://192.168.178.70:8081/?action=stream -camera1 other -camparam1= "'ffmpeg ' + ffmpegquiet + ' -y -i ' +weburl+ ' -vframes 1 ' +fn+debug" 
                

                Depending on whether you have installed the required python modules (it looks like you may have been) then there is no reason why this does not start properly provided (1) the ip address for -duet is correct and (2) -weburl1 when placed in a browser, displays the camera stream.

                P.S. you can also try this form. I prefer the one above because it sidesteps some possible issues with certain streaming cameras.

                python3 ./DuetLapse3.py -duet 192.168.178.91 -port 8025 -verbose -weburl1 http://192.168.178.70:8081/?action=stream -camera1 stream
                
                Proschi3Dundefined 1 Reply Last reply Reply Quote 0
                • Proschi3Dundefined
                  Proschi3D @stuartofmt
                  last edited by

                  @stuartofmt ok the pip was the problem.
                  thank you very much now I'm testing it.
                  Duetlapse is now available in the browser

                  Love my Duet 3 Mini.
                  https://www.instagram.com/proschi3d
                  https://youtube.com/@proschi3d
                  https://www.proschi3d.de

                  stuartofmtundefined 1 Reply Last reply Reply Quote 0
                  • stuartofmtundefined
                    stuartofmt @Proschi3D
                    last edited by stuartofmt

                    @Proschi78

                    Great !!

                    If you like, you can try this version. I'm about to release it but have to update the documentation first. Its fully backward compatible and uses the same options. There are a few fixes but the main difference is the UI.

                    All you need to do is replace the existing DuetLapse3.py file with this one (rename it first ).

                    [DuetLapse3.py]

                    Proschi3Dundefined 2 Replies Last reply Reply Quote 0
                    • Proschi3Dundefined
                      Proschi3D @stuartofmt
                      last edited by Proschi3D

                      @stuartofmt
                      I tried again yesterday.
                      in the browser I see Duetlapse.
                      Duetlapse is also connected to the printer.
                      I see the current layer, etc. only pictures are not made

                      I will test the new version tonight.

                      Thanks

                      Love my Duet 3 Mini.
                      https://www.instagram.com/proschi3d
                      https://youtube.com/@proschi3d
                      https://www.proschi3d.de

                      stuartofmtundefined 1 Reply Last reply Reply Quote 0
                      • Proschi3Dundefined
                        Proschi3D @stuartofmt
                        last edited by Proschi3D

                        @stuartofmt

                        Screenshot 2023-01-13 164129.png

                        Screenshot 2023-01-13 164154.png

                        Screenshot 2023-01-13 170706.png
                        no snapshot is taken

                        Love my Duet 3 Mini.
                        https://www.instagram.com/proschi3d
                        https://youtube.com/@proschi3d
                        https://www.proschi3d.de

                        stuartofmtundefined 1 Reply Last reply Reply Quote 0
                        • stuartofmtundefined
                          stuartofmt @Proschi3D
                          last edited by

                          @Proschi78
                          Thanks.

                          "Insufficient images for video to be created"

                          In this case zero images. So the program threw an error.
                          I'll see if I can clean up the logic / message in the popup.

                          stuartofmtundefined 1 Reply Last reply Reply Quote 0
                          • stuartofmtundefined
                            stuartofmt @stuartofmt
                            last edited by

                            @stuartofmt

                            While you are testing:

                            -seconds 15 -dontwait will try to capture images every 15 seconds without the need to run a print job.

                            1 Reply Last reply Reply Quote 0
                            • stuartofmtundefined
                              stuartofmt @Proschi3D
                              last edited by

                              @Proschi78 said in DuetLapse3:

                              @stuartofmt

                              I see the current layer, etc. only pictures are not made

                              If you see current layer > 1 and no images then the images are not being captured.

                              I need to see ther logfile (make sure you have -verbose set)

                              The logfile can be downloaded by clicking on the logfile name in the Files tab.

                              Proschi3Dundefined 1 Reply Last reply Reply Quote 0
                              • Proschi3Dundefined
                                Proschi3D @stuartofmt
                                last edited by Proschi3D

                                @stuartofmt
                                The problem was the usb port. The snapshot works with camera2, but the picture is so dark that you can't see anything

                                Screenshot 2023-01-13 202714.png

                                Love my Duet 3 Mini.
                                https://www.instagram.com/proschi3d
                                https://youtube.com/@proschi3d
                                https://www.proschi3d.de

                                stuartofmtundefined 1 Reply Last reply Reply Quote 0
                                • stuartofmtundefined
                                  stuartofmt @Proschi3D
                                  last edited by

                                  @Proschi78 said in DuetLapse3:

                                  @stuartofmt
                                  The problem was the usb port. The snapshot works with camera2, but the picture is so dark that you can't see anything

                                  I would like to help but you need to provide details of what you are doing. At a minimum, please post the logfile with -verbose.

                                  If you are using usb then fswebcam is being used.
                                  If you are not getting images from the stream, then likely you have the wrong url in the commandline.

                                  In both cases - the quality of the image is down to the settings on the program that is serving those images. DuetLapse does not manipulate the images, it only copies and shows what is there.

                                  if fswebcam now works (before it did not) then something has changed.

                                  What do you want to use: fswebcam (usb) or streaming ? Lets stick with one as jumping around just muddies the waters.

                                  There are just too many combinations of software settings and cameras - some work together, some do not. This is all BEFORE DuetLapse.

                                  Proschi3Dundefined 2 Replies Last reply Reply Quote 1
                                  • Proschi3Dundefined
                                    Proschi3D @stuartofmt
                                    last edited by Proschi3D

                                    @stuartofmt I'll save the log today. I actually want to use the stream to take the pictures. The dark image was not made with the mjpeg streamer. It looks like he used something else. No idea why

                                    2023-01-14 11:29:12,549 - MainThread - DUETLAPSE3 LOGFILE
                                    2023-01-14 11:29:12,549 - MainThread - /home/pi/Duetlapse/RepetierServer/192-168-178-91/startup.log
                                    2023-01-14 11:29:12,549 - MainThread - -------------------------------------------------------------------------------
                                    
                                    2023-01-14 11:29:12,550 - MainThread - ################### Options at start of this print job  #####################
                                    2023-01-14 11:29:12,550 - MainThread - # Environment
                                    2023-01-14 11:29:12,550 - MainThread - -duet  =  192.168.178.91
                                    2023-01-14 11:29:12,550 - MainThread - -basedir  =  /home/pi/Duetlapse
                                    2023-01-14 11:29:12,550 - MainThread - -poll  =  12
                                    2023-01-14 11:29:12,551 - MainThread - -instances  =  single
                                    2023-01-14 11:29:12,551 - MainThread - -logtype  =  both
                                    2023-01-14 11:29:12,551 - MainThread - -nolog  =  False
                                    2023-01-14 11:29:12,551 - MainThread - -verbose  =  True
                                    2023-01-14 11:29:12,552 - MainThread - -host  =  0.0.0.0
                                    2023-01-14 11:29:12,552 - MainThread - -port  =  8025
                                    2023-01-14 11:29:12,552 - MainThread - -keeplogs  =  False
                                    2023-01-14 11:29:12,552 - MainThread - -novideo  =  False
                                    2023-01-14 11:29:12,552 - MainThread - -deletepics  =  False
                                    2023-01-14 11:29:12,553 - MainThread - -maxffmpeg  =  2
                                    2023-01-14 11:29:12,553 - MainThread - -keepfiles  =  False
                                    2023-01-14 11:29:12,553 - MainThread - # Execution
                                    2023-01-14 11:29:12,554 - MainThread - -dontwait  =  False
                                    2023-01-14 11:29:12,554 - MainThread - -seconds  =  0
                                    2023-01-14 11:29:12,555 - MainThread - -detect  =  layer
                                    2023-01-14 11:29:12,555 - MainThread - -pause  =  no
                                    2023-01-14 11:29:12,555 - MainThread - -movehead  =  [0, 0]
                                    2023-01-14 11:29:12,555 - MainThread - -rest  =  1
                                    2023-01-14 11:29:12,556 - MainThread - -standby  =  False
                                    2023-01-14 11:29:12,556 - MainThread - -restart  =  False
                                    2023-01-14 11:29:12,556 - MainThread - # Camera
                                    2023-01-14 11:29:12,556 - MainThread - -camera1  =  usb
                                    2023-01-14 11:29:12,556 - MainThread - -camera2  =  stream
                                    2023-01-14 11:29:12,556 - MainThread - -weburl1  =  http://192.168.178.70:8081/?action=stream
                                    2023-01-14 11:29:12,557 - MainThread - -weburl2
                                    2023-01-14 11:29:12,557 - MainThread - # Video
                                    2023-01-14 11:29:12,557 - MainThread - -extratime  =  0
                                    2023-01-14 11:29:12,557 - MainThread - -fps  =  10
                                    2023-01-14 11:29:12,557 - MainThread - -minvideo  =  5
                                    2023-01-14 11:29:12,558 - MainThread - -maxvideo  =  0
                                    2023-01-14 11:29:12,558 - MainThread - # Overrides
                                    2023-01-14 11:29:12,558 - MainThread - -camparam1
                                    2023-01-14 11:29:12,559 - MainThread - -camparam2
                                    2023-01-14 11:29:12,559 - MainThread - -vidparam1
                                    2023-01-14 11:29:12,559 - MainThread - -vidparam2
                                    2023-01-14 11:29:12,560 - MainThread - # UI
                                    2023-01-14 11:29:12,560 - MainThread - -hidebuttons  =  False
                                    2023-01-14 11:29:12,560 - MainThread - # Special Functions
                                    2023-01-14 11:29:12,560 - MainThread - -execkey
                                    2023-01-14 11:29:12,561 - MainThread - -----------------------------------------------------------------------
                                    
                                    
                                    2023-01-14 11:29:12,561 - MainThread - ##########################################################
                                    2023-01-14 11:29:12,562 - MainThread - Will start capturing images on first layer change
                                    2023-01-14 11:29:12,562 - MainThread - ##########################################################
                                    
                                    2023-01-14 11:29:12,562 - MainThread - ##########################################################
                                    2023-01-14 11:29:12,562 - MainThread - Video will be created when printing ends
                                    2023-01-14 11:29:12,563 - MainThread - or if requested from the browser interface or M117 DuetLapse3. message
                                    2023-01-14 11:29:12,563 - MainThread - ##########################################################
                                    
                                    2023-01-14 11:29:12,563 - MainThread - ##########################################################
                                    2023-01-14 11:29:12,563 - MainThread - If running from a console using the command line
                                    2023-01-14 11:29:12,564 - MainThread - Press Ctrl+C one time to stop the program and create a video.
                                    2023-01-14 11:29:12,564 - MainThread - ##########################################################
                                    
                                    2023-01-14 11:29:12,564 - MainThread - url: http://192.168.178.91/rr_model?key=boards post: False
                                    2023-01-14 11:29:12,580 - MainThread - ###############################################################
                                    2023-01-14 11:29:12,580 - MainThread - Connected to printer at 192.168.178.91
                                    2023-01-14 11:29:12,580 - MainThread - Using Duet version 3.5beta1
                                    2023-01-14 11:29:12,580 - MainThread - Using  API interface rr_model
                                    2023-01-14 11:29:12,580 - MainThread - ###############################################################
                                    
                                    2023-01-14 11:29:12,581 - MainThread - url: http://192.168.178.91/rr_gcode?gcode=M117 "" post: False
                                    2023-01-14 11:29:12,593 - MainThread - ##########################################################
                                    2023-01-14 11:29:12,593 - MainThread - ***** Started http listener *****
                                    2023-01-14 11:29:12,593 - MainThread - ##########################################################
                                    
                                    2023-01-14 11:29:12,594 - gcodeLoop - ###########################
                                    2023-01-14 11:29:12,594 - gcodeLoop - Starting gcode Listener
                                    2023-01-14 11:29:12,594 - gcodeLoop - ###########################
                                    
                                    2023-01-14 11:29:12,595 - gcodeLoop - Calling function Status from gcodelistener with rr_model
                                    2023-01-14 11:29:12,595 - MainThread - Initiating with action set to start
                                    2023-01-14 11:29:12,595 - gcodeLoop - Getting Status
                                    2023-01-14 11:29:12,596 - MainThread - ++++++ start state requested ++++++
                                    2023-01-14 11:29:12,599 - MainThread - nextAction requested stopCaptureLoop
                                    2023-01-14 11:29:12,600 - MainThread - captureLoop is not running
                                    2023-01-14 11:29:12,600 - MainThread - nextAction satisfied waitforCaptureLoop
                                    2023-01-14 11:29:12,601 - MainThread - ++++++ Determining next logical action ++++++
                                    2023-01-14 11:29:12,596 - gcodeLoop - url: http://192.168.178.91/rr_model?key=state post: False
                                    2023-01-14 11:29:12,604 - captureLoop - Starting Capture Loop
                                    2023-01-14 11:29:12,609 - MainThread - ++++++ Entering start state ++++++
                                    2023-01-14 11:29:12,609 - captureLoop - ****** Duet status changed to: Not yet determined *****
                                    2023-01-14 11:29:12,609 - MainThread - nextAction exiting normally
                                    2023-01-14 11:29:12,610 - captureLoop - ****** Print State changed to: Waiting *****
                                    2023-01-14 11:29:16,036 - Thread-1 - !!!!! http call: {'displayStatus': ['true']} !!!!!
                                    2023-01-14 11:29:17,625 - gcodeLoop - Calling function Status from gcodelistener with rr_model
                                    2023-01-14 11:29:17,626 - gcodeLoop - Getting Status
                                    2023-01-14 11:29:17,631 - gcodeLoop - url: http://192.168.178.91/rr_model?key=state post: False
                                    2023-01-14 11:29:22,036 - Thread-2 - !!!!! http call: {'displayStatus': ['true']} !!!!!
                                    2023-01-14 11:29:22,657 - gcodeLoop - Calling function Status from gcodelistener with rr_model
                                    2023-01-14 11:29:22,657 - gcodeLoop - Getting Status
                                    2023-01-14 11:29:22,660 - gcodeLoop - url: http://192.168.178.91/rr_model?key=state post: False
                                    2023-01-14 11:29:24,622 - captureLoop - ****** Duet status changed to: processing *****
                                    2023-01-14 11:29:24,623 - captureLoop - ****** Print State changed to: Capturing *****
                                    2023-01-14 11:29:24,624 - captureLoop - ****** Print State changed to: Capturing *****
                                    2023-01-14 11:29:24,624 - captureLoop - Calling function Layer from oneInterval with rr_model
                                    2023-01-14 11:29:24,625 - captureLoop - url: http://192.168.178.91/rr_model?key=job.layer post: False
                                    2023-01-14 11:29:24,643 - captureLoop - Calling function Status from Check for Pause with rr_model
                                    2023-01-14 11:29:24,643 - captureLoop - Getting Status
                                    2023-01-14 11:29:24,644 - captureLoop - url: http://192.168.178.91/rr_model?key=state post: False
                                    2023-01-14 11:29:24,663 - captureLoop - Layer - Camera1: capturing frame 1 at layer 3 after layer change
                                    2023-01-14 11:29:24,664 - captureLoop - Created working directory: /home/pi/Duetlapse/RepetierServer/192-168-178-91/7123_1
                                    2023-01-14 11:29:24,666 - captureLoop - Calling function Jobname from renameworkingDir with rr_model
                                    2023-01-14 11:29:24,667 - captureLoop - url: http://192.168.178.91/rr_model?key=job.file.fileName post: False
                                    2023-01-14 11:29:24,684 - captureLoop - Renaming working directory: /home/pi/Duetlapse/RepetierServer/192-168-178-91/7123_1_Speed_rechts
                                    2023-01-14 11:29:24,712 - captureLoop - Command Failure: fswebcam --quiet --no-banner /home/pi/Duetlapse/RepetierServer/192-168-178-91/7123_1_Speed_rechts/Camera1_00000001.jpeg
                                    2023-01-14 11:29:24,712 - captureLoop - Error selecting input 0
                                    VIDIOC_S_INPUT: Device or resource busy
                                    
                                    2023-01-14 11:29:24,713 - captureLoop - !!!!!  There was a problem capturing an image !!!!!
                                    2023-01-14 11:29:24,713 - captureLoop - elapsed: 12.148980379104614
                                    2023-01-14 11:29:24,713 - captureLoop - Calling function Layer from oneInterval with rr_model
                                    2023-01-14 11:29:24,713 - captureLoop - url: http://192.168.178.91/rr_model?key=job.layer post: False
                                    2023-01-14 11:29:24,729 - captureLoop - Calling function Status from Check for Pause with rr_model
                                    2023-01-14 11:29:24,729 - captureLoop - Getting Status
                                    2023-01-14 11:29:24,730 - captureLoop - url: http://192.168.178.91/rr_model?key=state post: False
                                    2023-01-14 11:29:24,745 - captureLoop - Layer - Camera2: capturing frame 1 at layer 3 after layer change
                                    2023-01-14 11:29:25,015 - captureLoop - Command Exception: ffmpeg -threads 1 -loglevel quiet -y -i  -vframes 1 -threads 1/home/pi/Duetlapse/RepetierServer/192-168-178-91/7123_1_Speed_rechts/Camera2_00000001.jpeg
                                    2023-01-14 11:29:25,015 - captureLoop - Command 'ffmpeg -threads 1 -loglevel quiet -y -i  -vframes 1 -threads 1/home/pi/Duetlapse/RepetierServer/192-168-178-91/7123_1_Speed_rechts/Camera2_00000001.jpeg' returned non-zero exit status 1.
                                    2023-01-14 11:29:25,016 - captureLoop - !!!!!  There was a problem capturing an image !!!!!
                                    2023-01-14 11:29:25,016 - captureLoop - elapsed: 12.45192813873291
                                    2023-01-14 11:29:25,016 - captureLoop - Calling function Status from unPause with rr_model
                                    2023-01-14 11:29:25,016 - captureLoop - Getting Status
                                    2023-01-14 11:29:25,016 - captureLoop - url: http://192.168.178.91/rr_model?key=state post: False
                                    2023-01-14 11:29:27,686 - gcodeLoop - Calling function Status from gcodelistener with rr_model
                                    2023-01-14 11:29:27,687 - gcodeLoop - Getting Status
                                    2023-01-14 11:29:27,690 - gcodeLoop - url: http://192.168.178.91/rr_model?key=state post: False
                                    2023-01-14 11:29:28,038 - Thread-3 - !!!!! http call: {'displayStatus': ['true']} !!!!!
                                    2023-01-14 11:29:32,714 - gcodeLoop - Calling function Status from gcodelistener with rr_model
                                    2023-01-14 11:29:32,715 - gcodeLoop - Getting Status
                                    2023-01-14 11:29:32,718 - gcodeLoop - url: http://192.168.178.91/rr_model?key=state post: False
                                    2023-01-14 11:29:34,041 - Thread-4 - !!!!! http call: {'displayStatus': ['true']} !!!!!
                                    2023-01-14 11:29:37,037 - captureLoop - Calling function Layer from oneInterval with rr_model
                                    2023-01-14 11:29:37,038 - captureLoop - url: http://192.168.178.91/rr_model?key=job.layer post: False
                                    2023-01-14 11:29:37,055 - captureLoop - elapsed: 24.49109148979187
                                    2023-01-14 11:29:37,056 - captureLoop - Calling function Layer from oneInterval with rr_model
                                    2023-01-14 11:29:37,056 - captureLoop - url: http://192.168.178.91/rr_model?key=job.layer post: False
                                    2023-01-14 11:29:37,072 - captureLoop - elapsed: 24.507537603378296
                                    2023-01-14 11:29:37,072 - captureLoop - Calling function Status from unPause with rr_model
                                    2023-01-14 11:29:37,073 - captureLoop - Getting Status
                                    2023-01-14 11:29:37,073 - captureLoop - url: http://192.168.178.91/rr_model?key=state post: False
                                    2023-01-14 11:29:37,742 - gcodeLoop - Calling function Status from gcodelistener with rr_model
                                    2023-01-14 11:29:37,743 - gcodeLoop - Getting Status
                                    2023-01-14 11:29:37,745 - gcodeLoop - url: http://192.168.178.91/rr_model?key=state post: False
                                    2023-01-14 11:29:40,037 - Thread-5 - !!!!! http call: {'displayStatus': ['true']} !!!!!
                                    2023-01-14 11:29:42,771 - gcodeLoop - Calling function Status from gcodelistener with rr_model
                                    2023-01-14 11:29:42,771 - gcodeLoop - Getting Status
                                    2023-01-14 11:29:42,774 - gcodeLoop - url: http://192.168.178.91/rr_model?key=state post: False
                                    2023-01-14 11:29:46,044 - Thread-6 - !!!!! http call: {'displayStatus': ['true']} !!!!!
                                    2023-01-14 11:29:47,801 - gcodeLoop - Calling function Status from gcodelistener with rr_model
                                    2023-01-14 11:29:47,806 - gcodeLoop - Getting Status
                                    2023-01-14 11:29:47,807 - gcodeLoop - url: http://192.168.178.91/rr_model?key=state post: False
                                    2023-01-14 11:29:49,103 - captureLoop - Calling function Layer from oneInterval with rr_model
                                    2023-01-14 11:29:49,103 - captureLoop - url: http://192.168.178.91/rr_model?key=job.layer post: False
                                    2023-01-14 11:29:49,114 - captureLoop - Calling function Status from Check for Pause with rr_model
                                    2023-01-14 11:29:49,115 - captureLoop - Getting Status
                                    2023-01-14 11:29:49,115 - captureLoop - url: http://192.168.178.91/rr_model?key=state post: False
                                    2023-01-14 11:29:49,128 - captureLoop - Layer - Camera1: capturing frame 1 at layer 4 after layer change
                                    2023-01-14 11:29:49,143 - captureLoop - Command Failure: fswebcam --quiet --no-banner /home/pi/Duetlapse/RepetierServer/192-168-178-91/7123_1_Speed_rechts/Camera1_00000001.jpeg
                                    2023-01-14 11:29:49,143 - captureLoop - Error selecting input 0
                                    VIDIOC_S_INPUT: Device or resource busy
                                    
                                    2023-01-14 11:29:49,143 - captureLoop - !!!!!  There was a problem capturing an image !!!!!
                                    2023-01-14 11:29:49,144 - captureLoop - elapsed: 36.57973766326904
                                    2023-01-14 11:29:49,144 - captureLoop - Calling function Layer from oneInterval with rr_model
                                    2023-01-14 11:29:49,144 - captureLoop - url: http://192.168.178.91/rr_model?key=job.layer post: False
                                    2023-01-14 11:29:49,158 - captureLoop - Calling function Status from Check for Pause with rr_model
                                    2023-01-14 11:29:49,159 - captureLoop - Getting Status
                                    2023-01-14 11:29:49,159 - captureLoop - url: http://192.168.178.91/rr_model?key=state post: False
                                    2023-01-14 11:29:49,172 - captureLoop - Layer - Camera2: capturing frame 1 at layer 4 after layer change
                                    2023-01-14 11:29:49,429 - captureLoop - Command Exception: ffmpeg -threads 1 -loglevel quiet -y -i  -vframes 1 -threads 1/home/pi/Duetlapse/RepetierServer/192-168-178-91/7123_1_Speed_rechts/Camera2_00000001.jpeg
                                    2023-01-14 11:29:49,430 - captureLoop - Command 'ffmpeg -threads 1 -loglevel quiet -y -i  -vframes 1 -threads 1/home/pi/Duetlapse/RepetierServer/192-168-178-91/7123_1_Speed_rechts/Camera2_00000001.jpeg' returned non-zero exit status 1.
                                    2023-01-14 11:29:49,430 - captureLoop - !!!!!  There was a problem capturing an image !!!!!
                                    2023-01-14 11:29:49,430 - captureLoop - elapsed: 36.866106033325195
                                    2023-01-14 11:29:49,430 - captureLoop - Calling function Status from unPause with rr_model
                                    2023-01-14 11:29:49,431 - captureLoop - Getting Status
                                    2023-01-14 11:29:49,431 - captureLoop - url: http://192.168.178.91/rr_model?key=state post: False
                                    2023-01-14 11:29:52,043 - Thread-7 - !!!!! http call: {'displayStatus': ['true']} !!!!!
                                    2023-01-14 11:29:52,829 - gcodeLoop - Calling function Status from gcodelistener with rr_model
                                    2023-01-14 11:29:52,829 - gcodeLoop - Getting Status
                                    2023-01-14 11:29:52,832 - gcodeLoop - url: http://192.168.178.91/rr_model?key=state post: False
                                    2023-01-14 11:29:57,859 - gcodeLoop - Calling function Status from gcodelistener with rr_model
                                    2023-01-14 11:29:57,859 - gcodeLoop - Getting Status
                                    2023-01-14 11:29:57,862 - gcodeLoop - url: http://192.168.178.91/rr_model?key=state post: False
                                    2023-01-14 11:29:58,041 - Thread-8 - !!!!! http call: {'displayStatus': ['true']} !!!!!
                                    2023-01-14 11:30:01,457 - captureLoop - Calling function Layer from oneInterval with rr_model
                                    2023-01-14 11:30:01,458 - captureLoop - url: http://192.168.178.91/rr_model?key=job.layer post: False
                                    2023-01-14 11:30:01,477 - captureLoop - elapsed: 48.913480281829834
                                    2023-01-14 11:30:01,479 - captureLoop - Calling function Layer from oneInterval with rr_model
                                    2023-01-14 11:30:01,479 - captureLoop - url: http://192.168.178.91/rr_model?key=job.layer post: False
                                    2023-01-14 11:30:01,496 - captureLoop - elapsed: 48.932276010513306
                                    2023-01-14 11:30:01,497 - captureLoop - Calling function Status from unPause with rr_model
                                    2023-01-14 11:30:01,498 - captureLoop - Getting Status
                                    2023-01-14 11:30:01,499 - captureLoop - url: http://192.168.178.91/rr_model?key=state post: False
                                    2023-01-14 11:30:02,888 - gcodeLoop - Calling function Status from gcodelistener with rr_model
                                    2023-01-14 11:30:02,888 - gcodeLoop - Getting Status
                                    2023-01-14 11:30:02,891 - gcodeLoop - url: http://192.168.178.91/rr_model?key=state post: False
                                    2023-01-14 11:30:04,035 - Thread-9 - !!!!! http call: {'displayStatus': ['true']} !!!!!
                                    2023-01-14 11:30:07,918 - gcodeLoop - Calling function Status from gcodelistener with rr_model
                                    2023-01-14 11:30:07,919 - gcodeLoop - Getting Status
                                    2023-01-14 11:30:07,922 - gcodeLoop - url: http://192.168.178.91/rr_model?key=state post: False
                                    2023-01-14 11:30:10,037 - Thread-10 - !!!!! http call: {'displayStatus': ['true']} !!!!!
                                    2023-01-14 11:30:12,450 - Thread-11 - !!!!! http call: {'displayFiles': ['true']} !!!!!
                                    2023-01-14 11:30:12,451 - Thread-11 - list_dir called with path = /home/pi/Duetlapse/RepetierServer/192-168-178-91
                                    2023-01-14 11:30:12,451 - Thread-11 - Finished parsing the files directory
                                    2023-01-14 11:30:12,944 - gcodeLoop - Calling function Status from gcodelistener with rr_model
                                    2023-01-14 11:30:12,945 - gcodeLoop - Getting Status
                                    2023-01-14 11:30:12,948 - gcodeLoop - url: http://192.168.178.91/rr_model?key=state post: False
                                    2023-01-14 11:30:13,530 - captureLoop - Calling function Layer from oneInterval with rr_model
                                    2023-01-14 11:30:13,530 - captureLoop - url: http://192.168.178.91/rr_model?key=job.layer post: False
                                    2023-01-14 11:30:13,549 - captureLoop - elapsed: 60.98456144332886
                                    2023-01-14 11:30:13,549 - captureLoop - Calling function Layer from oneInterval with rr_model
                                    2023-01-14 11:30:13,550 - captureLoop - url: http://192.168.178.91/rr_model?key=job.layer post: False
                                    2023-01-14 11:30:13,567 - captureLoop - elapsed: 61.002771615982056
                                    2023-01-14 11:30:13,568 - captureLoop - Calling function Status from unPause with rr_model
                                    2023-01-14 11:30:13,568 - captureLoop - Getting Status
                                    2023-01-14 11:30:13,568 - captureLoop - url: http://192.168.178.91/rr_model?key=state post: False
                                    2023-01-14 11:30:14,677 - Thread-12 - !!!!! http call: {'displayVideo': ['true']} !!!!!
                                    2023-01-14 11:30:15,608 - Thread-13 - !!!!! http call: {'displayFiles': ['true']} !!!!!
                                    2023-01-14 11:30:15,608 - Thread-13 - list_dir called with path = /home/pi/Duetlapse/RepetierServer/192-168-178-91
                                    2023-01-14 11:30:15,610 - Thread-13 - Finished parsing the files directory
                                    2023-01-14 11:30:17,972 - gcodeLoop - Calling function Status from gcodelistener with rr_model
                                    2023-01-14 11:30:17,973 - gcodeLoop - Getting Status
                                    2023-01-14 11:30:17,978 - gcodeLoop - url: http://192.168.178.91/rr_model?key=state post: False
                                    2023-01-14 11:30:19,410 - Thread-14 - !!!!! http call: {'getfile': ['/home/pi/Duetlapse/RepetierServer/192-168-178-91/7123_1_Speed_rechts.log']} !!!!!
                                    2023-01-14 11:30:19,412 - Thread-14 - Trying to get file /home/pi/Duetlapse/RepetierServer/192-168-178-91/7123_1_Speed_rechts.log
                                    2023-01-14 11:30:19,444 - Thread-14 - application/octet-stream
                                    
                                    

                                    Love my Duet 3 Mini.
                                    https://www.instagram.com/proschi3d
                                    https://youtube.com/@proschi3d
                                    https://www.proschi3d.de

                                    1 Reply Last reply Reply Quote 0
                                    • Proschi3Dundefined
                                      Proschi3D @stuartofmt
                                      last edited by

                                      @stuartofmt thanks for your help, i got it working

                                      Love my Duet 3 Mini.
                                      https://www.instagram.com/proschi3d
                                      https://youtube.com/@proschi3d
                                      https://www.proschi3d.de

                                      stuartofmtundefined 1 Reply Last reply Reply Quote 0
                                      • stuartofmtundefined
                                        stuartofmt @Proschi3D
                                        last edited by

                                        @Proschi78
                                        Its important for other people reading these posts that they benefit from what works. That feedback is very helpful.

                                        I can see, from the logfile that the usb camera ( -camera1 usb) was failing AND the stream camera (-camera 2 stream) was failing.

                                        How did you get it working? Did you us the command line that I recommended ? If no - what did you use?

                                        Proschi3Dundefined 1 Reply Last reply Reply Quote 0
                                        • Proschi3Dundefined
                                          Proschi3D @stuartofmt
                                          last edited by Proschi3D

                                          @stuartofmt use the following for the mjpeg streamer

                                           python3 DuetLapse3.py -port 8025 -duet 192.168.178.91 -detect layer -weburl1 http://192.168.178.70:8081/?action=snapshot -camera1 web
                                          
                                          

                                          How do I enable it to automatically generate a video when it ends?

                                          pi@RepetierServer:~/Duetlapse $ 192.168.178.91 terminate - Terminating
                                          192.168.178.91 nextAction - ++++++ Entering terminate state ++++++
                                          192.168.178.91 terminate - captureLoop is not running
                                          192.168.178.91 nextAction - nextAction exiting normally
                                          192.168.178.91 terminate - Wait for video to complete
                                          192.168.178.91 terminate - makeVideo is not running
                                          192.168.178.91 terminate - *****  Cleaning up files for phase:  terminate  *****
                                          192.168.178.91 terminate - ********* gcodeLoopState is 0 - Waiting to complete *********
                                          192.168.178.91 Thread-332 - !!!!! http call: {'displayStatus': ['true']} !!!!!
                                          192.168.178.91 terminate - !!!!! http listener stopped  !!!!!
                                          192.168.178.91 terminate - Program Terminated
                                          Killed
                                          ^C
                                          

                                          Love my Duet 3 Mini.
                                          https://www.instagram.com/proschi3d
                                          https://youtube.com/@proschi3d
                                          https://www.proschi3d.de

                                          stuartofmtundefined 1 Reply Last reply Reply Quote 0
                                          • stuartofmtundefined
                                            stuartofmt
                                            last edited by stuartofmt

                                            I am pleased to announce the release of version 5.0.0 of DuetLapse3.

                                            Thanks to the good graces of the Duet3D team, I will soon be developing against an SBC. This release is the first step towards a plugin. The UI is completely refactored and there are some new features as well (e.g. being able to set the maximum video length).

                                            See the first post for download links

                                            VERSION 5.0.x
                                            Note .x releases are issued without documentation to correct minor issues e.g. a typo or edge-case logic error.

                                            [1] Completely revised UI
                                            [2] Added display of last captured image to UI
                                            [3] Added ability to specify a config file with -file option This avoids the need for long command lines. Options in command line over-write those in config file
                                            [4] Added -maxvideo. Limits the maximum length of video by varying fps as needed
                                            [5] Added ability to change -fps -minvideo and -maxvideo in the UI
                                            [6] UI gives indication of video creation status
                                            [7] Changed logfile name on startup
                                            [8] Sequential jobs are numbered
                                            [9] Misc bug fixes

                                            Enjoy and as always, feedback and suggestions are welcome.

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Unless otherwise noted, all forum content is licensed under CC-BY-SA