Klipper攝像Crowsnest插件安裝及Timelapse延時攝影保姆級。
本文參考:https://www.bilibili.com/read/cv20924273/
一、要點:
新版kiauh? 腳本中已包含crowsnest插件,安裝更加便攜!
1、一般免驅即插即用攝像頭,均可以在linux、armbian等系統(tǒng)下的klipper支持使用,無需另外安裝驅動。
1.1可以使用以下命令查看攝像頭是否驅動上:
? ? ls /dev/v4l/by-id/*

如果驅動上了就可以看到,請記錄下攝像頭硬件地址后面要用到:
?/dev/v4l/by-id/usb-Sonix_Technology_Co.__Ltd._USB_2.0_Camera-video-index0?
2、攝像頭支持的分辨率及刷新率等參數可以通過 Crowsnest.log查看。
二、Crowsnest的安裝
1、安裝
方法一:kiauh? 腳本安裝
git clone https://gitee.com/miroky/kiauh.git
./kiauh/kiauh.sh

選擇install 11,即可自動安裝
方法二:手動安裝,我還是喜歡手動安裝的。
cd ~
git clone https://github.com/mainsail-crew/crowsnest.git
cd ~/crowsnest
sudo make install
安裝成功后可在moonraker.conf添加以下代碼:
[update_manager crowsnest]
type: git_repo
path: ~/crowsnest
origin: https://github.com/mainsail-crew/crowsnest.git
install_script: tools/install.sh
2、配置:
在同目錄中找到crowsnest.conf 。

在crowsnest.conf 簡單設置如下
[crowsnest]
log_path: ~/printer_data/logs/crowsnest.log
log_level: verbose ? ? ? ? ? ? ? ? ? ? ?# Valid Options are quiet/verbose/debug
delete_log: false ? ? ? ? ? ? ? ? ? ? ? # Deletes log on every restart, if set to true
[cam 1]
mode: mjpg ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?# mjpg/rtsp
port: 8080 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?# Port
#device: /dev/video0 ? ? ? ? ? ? ? ? ? ? # See Log for available ...
device:/dev/v4l/by-id/usb-Sonix_Technology_Co.__Ltd._USB_2.0_Camera-video-index0
#device這里是填寫上面我們查到的攝像頭硬件地址。
resolution: 640x480 ? ? ? ? ? ? ? ? ? ? # widthxheight format
max_fps: 15 ? ? ? ? ? ? ? ? ? ? ? ? ? ? # If Hardware Supports this it will be forced, otherwise ignored/coerced.
#custom_flags: ? ? ? ? ? ? ? ? ? ? ? ? ?# You can run the Stream Services with custom flags.
#v4l2ctl: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # Add v4l2-ctl parameters to setup your camera, see Log what your cam is capable of.
改好設定后就保存重啟。
三、安裝Moonraker-timelapse:
項目地址:https://github.com/mainsail-crew/moonraker-timelapse
英文安裝參考:https://www.obico.io/blog/klipper-timelapse/
1.開始安裝:
?cd ~/?
git clone https://github.com/mainsail-crew/moonraker-timelapse.git?
cd ~/moonraker-timelapse?
make install
在monraker.conf 中最后面加入以下配置:
[update_manager timelapse]
type: git_repo
primary_branch: main
path: ~/moonraker-timelapse
origin: https://github.com/mainsail-crew/moonraker-timelapse.git
managed_services: klipper moonraker
2.配置Moonraker-timelapse:
配置參考:https://github.com/mainsail-crew/moonraker-timelapse/blob/main/docs/configuration.md
2.1 在printer.cfg中引用timelapse.cfg文件。
2.2打開printer.cfg文件在文件開始的地方加入以下代碼:
? ? ?[include timelapse.cfg]
3.設定切片軟件:(這里只拿Prusa Slicer演示,其它的切片軟件請參看配置參考)
打印機設定->自定義G-code -> 圖層更改后 G-Code,框中加入:TIMELAPSE_TAKE_FRAME
(Printer Settings -> Custom G-code -> Before layer change Gcode ->?TIMELAPSE_TAKE_FRAME)
如圖:

3.moonraker.conf文件中配置:
?3.1 打開moonraker.conf文件中添加:
[timelapse]
## ? Following basic configuration is default to most images and don't need
## ? to be changed in most scenarios. Only uncomment and change it if your
## ? Image differ from standart installations. In most common scenarios
## ? a User only need [timelapse] in there configuration.
#output_path: ~/timelapse/? ? ? #文件輸出路徑?
## ? Directory where the generated video will be saved
#frame_path: /tmp/timelapse/? ?#項目臨時存放路徑?
## ? Directory where the temporary frames are saved
#ffmpeg_binary_path: /usr/bin/ffmpeg
## ? Directory where ffmpeg is installed?#編譯器路徑?

########配置選項說明########
#enabled: True #是否啟用時間延時攝影
#mode: layermacro #此模式使用宏來觸發(fā)抓取幀,但需要設置切片器才能在圖層更改時添加GCODE
#snapshoturl: http://localhost:8080/?action=snapshot #攝像頭調用地址
#gcode_verbose: True #?“true”啟用或“false”禁用宏的詳細程度?
#parkhead: False #?“true”啟用或“false”禁用在拍攝幀之前移動打印頭。?
#parkpos: back_left ?#這定義了在拍攝相框之前將打印頭停放的位置??赡艿呐渲檬荹center, front_left, front_right, back_left, back_right, custom]
#如果選擇了custom想要自定義打印頭駐留的位置可以設置下面的參數
#park_custom_pos_x: 0.0 ?#自定義打印頭駐留的絕對 X 坐標(單位 mm)?
#park_custom_pos_y: 0.0 #自定義打印頭駐留的絕對 Y 坐標(單位 mm)
#park_custom_pos_dz: 0.0 #?自定義打印頭駐留的相對 Y 坐標(單位 mm)?
#park_travel_speed: 100 #駐留時打印頭移動速度(單位毫米/秒
#park_retract_speed: 15 ?#駐留時縮回速度(單位毫米/秒)?
#park_extrude_speed: 15 #?恢復打印時擠出的速度(單位毫米/秒)?
#park_retract_distance: 1.0 #?回抽來以防止?jié)B出的距離(單位毫米)?
#park_extrude_distance: 1.0 #?恢復打印之前擠出以填充噴嘴的距離(單位 mm)?
#hyperlapse_cycle: 30 #定義在超延時模式下拍攝幀的時間間隔
#autorender: True #?“true”啟用或“false”禁用打印結束時渲染過程的自動觸發(fā)?;蛘撸梢允褂米罱K gcode 中的“TIMELAPSE_RENDER”或渲染 http 終端節(jié)點(可能集成到前端)來觸發(fā)渲染過程。?
#constant_rate_factor: 23 #?這將配置渲染視頻的質量與文件大小。CRF 刻度的范圍是 0–51,其中 0 表示無損,23 表示默認值,51 表示質量最差。較低的值通常會導致較高的質量,主觀上合理的范圍為17-28。將 17 或 18 視為視覺上無損。更多信息:??https://trac.ffmpeg.org/wiki/Encode/H.264?F
#output_framerate: 30 #?定義視頻的幀速率。(每秒單位幀數)注意:如果啟用了variable_fps,這將被忽略。?
#pixelformat: yuv420p #?定義輸出視頻的像素格式。一些較舊的h264設備,如手機和其他設備需要“ yuv420p”,這是默認的延時組件。要獲取哪些像素格式可用的更多信息,請在系統(tǒng)控制臺中運行“ffmpeg -pix_fmts”或參考 ffmpeg 文檔:??https://ffmpeg.org/ffmpeg.html?
#time_format_code: %Y%m%d_%H%M #?這定義了應如何命名呈現的視頻。它使用 python 日期時間格式。默認值為“%Y%m%d_%H%M”。有關日期時間格式的更多信息,請參閱??此處 https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes?
#extraoutputparams:? ?定義FFMPEG的額外輸出參數 更多信息: ??https://ffmpeg.org/ffmpeg.html?? 注意:在這里指定任何內容可能會禁用其他功能?。╢fmpeg 限制)?
#variable_fps: False #?“true”啟用或“false”禁用輸出幀速率的變量計算。這使用拍攝的幀數和“目標長度”,但受“variable_fps_min”和“variable_fps_max”設置的限制。
#targetlength: 10 定義視頻的目標長度(單位秒)
#variable_fps_min: 5 ?variable_fps的最小 fps(每秒幀數)。?
#variable_fps_max: 60 variable_fps的最大 fps(每秒幀數)。?
#flip_x: False
#flip_y: False
#duplicatelastframe: 0 #?將最后一幀復制到輸出視頻的末尾。?
#previewimage: True #?“true”啟用或“false”禁用最后一幀來生成預覽縮略圖?
#saveframes: False ?“True”啟用或“False”禁用將幀打包到 zip 文件以供外部使用或呈現。
以下為英文原版說明:
# moonraker.conf
# [timelapse] section
#enabled: True
#mode: layermacro
#snapshoturl: http://localhost:8080/?action=snapshot
#gcode_verbose: True
#parkhead: False
#parkpos: back_left
#park_custom_pos_x: 0.0
#park_custom_pos_y: 0.0
#park_custom_pos_dz: 0.0
#park_travel_speed: 100
#park_retract_speed: 15
#park_extrude_speed: 15
#park_retract_distance: 1.0
#park_extrude_distance: 1.0
#hyperlapse_cycle: 30
#autorender: True
#constant_rate_factor: 23
#output_framerate: 30
#pixelformat: yuv420p
#time_format_code: %Y%m%d_%H%M
#extraoutputparams:?
#variable_fps: False
#targetlength: 10
#variable_fps_min: 5
#variable_fps_max: 60
#flip_x: False
#flip_y: False
#duplicatelastframe: 0
#previewimage: True
#saveframes: False
#wget_skip_cert_check: False

3.2現在你就可以在界面中看到延時圖標了。

好了你可以自己設定開搞:
