DuetLapse3
-
@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 folderand of course (for now) add:
-verboseNow 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.
-
@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'
-
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 $
-
@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
-
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 $
-
@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
-
@stuartofmt ok the pip was the problem.
thank you very much now I'm testing it.
Duetlapse is now available in the browser -
@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 ).
-
@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 madeI will test the new version tonight.
Thanks
-
no snapshot is taken -
@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. -
While you are testing:
-seconds 15 -dontwait will try to capture images every 15 seconds without the need to run a print job.
-
@Proschi78 said in DuetLapse3:
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.
-
@stuartofmt
The problem was the usb port. The snapshot works with camera2, but the picture is so dark that you can't see anything -
@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 anythingI 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.
-
@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 - [31mError selecting input 0 [0m[31mVIDIOC_S_INPUT: Device or resource busy [0m 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 - [31mError selecting input 0 [0m[31mVIDIOC_S_INPUT: Device or resource busy [0m 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
-
@stuartofmt thanks for your help, i got it working
-
@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?
-
@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
-
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 fixesEnjoy and as always, feedback and suggestions are welcome.