3D Print
DIY 打印机
Marlin 2.X固件_Configuration
Marlin_MKS-TinyBee(ESP32)
Marlin-独立配置文件(快速配置)
Marlin-LCD增加机器调试
常见问题
ESP3D_2.1X
OctoPrint for Android
Klipper 3D打印机
Klipper 摄像头
Klipper-中文Gcode
Klipper-打印预览
Kiauh_部署加速
配置文件_功能注释
Klipper-添加Shell支持
Klipper-常用命令
Klipper-机器校准
Klipper-打完自动关机
Klipper-Android版
Klipper-层暂停
Mainsail-交互宏
TMC2209/2208
步数计算
最大速度/最大加速度
常见问题
3D打印机打印时风扇不转
SD卡更新固件失败
支撑平面塌陷
其他黑科技
切片软件
耗材变脆
Fusion360
参数化设计__Fusion 360
Fusion 360-齿轮齿条绘制
不含设计历史导出
STL模型可编辑
申请教育账户
本文档使用 MrDoc 发布
-
+
首页
Klipper 摄像头
## 配置摄像头 安装 web控制端 的时候顺带装上即可(Crowsnest) `ls /dev/video*` 查看摄像头设备,如果有多个则需要进行测试哪个是有效设备 ### uStreamer ```bash cd /home/<用户名>/crowsnest/bin/ustreamer # 编译的一般会存放在该位置 ./ustreamer --device=/dev/video5 --host=0.0.0.0 --port=8080 -r 1280x720 # 运行加载摄像头到web v4l2-ctl --list-devices # 列出所有视频设备 v4l2-ctl -d /dev/video2 --list-formats-ext # 查看支持的分辨率 v4l2-ctl --device=/dev/video2 -l # 查看当前设备支持的控制参数(crowsnest.conf 中修改) ``` #### v412-ctl 参数示例 ```bash 亮度 (brightness): 范围从-64到64,步长为1,默认值为0,当前值为0。 对比度 (contrast): 范围从0到64,步长为1,默认值为32,当前值为32。 饱和度 (saturation): 范围从0到128,步长为1,默认值为64,当前值为64。 色调 (hue): 范围从-40到40,步长为1,默认值为0,当前值为0。 自动白平衡温度 (white_balance_temperature_auto): 布尔值,默认为1(开启),当前值为1。 伽马 (gamma): 范围从72到500,步长为1,默认值为100,当前值为100。 增益 (gain): 范围从0到100,步长为1,默认值为0,当前值为0。 电源频率 (power_line_frequency): 菜单选项,范围从0到2,默认值为1,当前值为1。 白平衡温度 (white_balance_temperature): 范围从2800到6500,步长为1,默认值为4600,当前值为4600,标记为非活动状态(inactive)。 锐度 (sharpness): 范围从0到6,步长为1,默认值为3,当前值为3。 背光补偿 (backlight_compensation): 范围从0到192,步长为1,默认值为80,当前值为80。 自动曝光 (exposure_auto): 菜单选项,范围从0到3,默认值为3,当前值为3。 绝对曝光 (exposure_absolute): 范围从1到5000,步长为1,默认值为157,当前值为157,标记为非活动状态(inactive)。 曝光自动优先 (exposure_auto_priority): 布尔值,默认为0,当前值为1 ``` ### MJPG-Streamer MJPG-Streamer 很久没更新了推荐使用 uStreamer ```bash ./mjpg_streamer -i "./input_uvc.so -d /dev/video1 -r 640x480 -f 10 -n" -o "./output_http.so -p 8090 -w /usr/local/www" ``` 使用这个命令去测试 `/dev/video*` 下的那个可以开启服务,无摄像头的无法开启服务 * -y是表示YUV格式。如果没有-y,默认启动是mjpeg格式,这个就报错。改成YUV格式 * -d指定设备 * -f 制订帧数,默认30帧 * -r指定视频大小,如320×240 * -q指定画质,默认80对于输出参数: * -p 指定端口,这里是8080 * -w 指定网页目录,这里咱们设置的是/www/webCam目录 * -c设置通过密码访问 ``` # cmos摄像头 ./mjpg_streamer -o "output_http.so -w ./www" -i "input_s3c2410.so" # usb摄像头 ./mjpg_streamer -o "output_http.so -w ./www" -i "input_uvc.so" ``` 确认好摄像头路径,编辑 `/usr/local/bin/webcamd` 这个文件 ``` array_camera_usb_device=(/dev/video1) ``` 找到这条,并在括号中填写刚测试的来的地址 然后执行命令 `webcamd` ,查看返回结果 摄像头地址:`http://[IP]:8080/` / `http://[IP]/webcam/?action=snapshot` ### crowsnest 配置 配置说明: ```bash #### crowsnest.conf #### 这是典型的默认配置。 #### 也用作mainsail / MainsailOS的默认配置。 #### 参见: #### https://github.com/mainsail-crew/crowsnest/blob/master/README.md #### 了解如何根据您的需求进行配置。 ##################################################################### #### ##### #### 关于端口和相应URL的信息 ##### #### ##### ##################################################################### #### ##### #### Port 8080 对应 /webcam/?action=[stream/snapshot] ##### #### Port 8081 对应 /webcam2/?action=[stream/snapshot] ##### #### Port 8082 对应 /webcam3/?action=[stream/snapshot] ##### #### Port 8083 对应 /webcam4/?action=[stream/snapshot] ##### #### ##### #### 注意:这些端口是大多数Mainsail安装的默认端口 ##### #### 要使用其他端口,需要更改代理配置或直接使用 ##### #### http://<ip>:<port>/?action=[stream/snapshot]格式 ##### #### ##### ###################################################################### #### RTSP流URL(如果启用且支持) ##### #### rtsp://<ip>:<rtsp_port>/stream.h264 ##### ###################################################################### [crowsnest] log_path: /home/wj/printer_data/logs/crowsnest.log # Crowsnest日志文件的路径 log_level: verbose # 日志级别,可选值为quiet/verbose/debug delete_log: false # 每次重启时是否删除日志,如果设置为true,则删除 no_proxy: false [cam 1] mode: ustreamer # ustreamer - 提供mjpg和快照功能。(适用于所有设备) # camera-streamer - 提供webrtc, mjpg和快照功能。(仅适用于rpi + Raspi OS) enable_rtsp: false # 如果使用camera-streamer,此选项还启用了rtsp服务器的使用 rtsp_port: 8554 # 为每个设备设置不同的端口! port: 8080 # HTTP/MJPG流/快照端口 device: /dev/video1 # 指定设备,v4l2-ctl --list-devices # 列出所有视频设备 resolution: 1280x720 # 分辨率 max_fps: 10 # 如果硬件支持,将强制使用此值,否则将被忽略/强制限制。 #custom_flags: # 可以使用自定义标志运行流服务。 #v4l2ctl: # 添加v4l2-ctl参数以设置摄像头(如 brightness=0) ``` ## 延迟拍摄 ### 安装 timelapse 插件 [Moonraker-timelapse_GitHub](https://github.com/mainsail-crew/moonraker-timelapse) ```bash git clone https://github.com/mainsail-crew/moonraker-timelapse.git # 拉取最新 git clone https://git.918178.xyz/https://github.com/mainsail-crew/moonraker-timelapse.git # 加速 cd ~/moonraker-timelapse && make install # 进入文件夹并安装 ``` > 手动安装: > 文件位置:\共享盘\创客\3D打印\3D打印机DIY\Kilpper\插件\moonraker-timelapse-main.zip > 下载并解压,找下面两个文件并放到对应文件夹下 > `timelapse.py` 放到 `~/moonraker/moonraker/components/` 下 > `timelapse.cfg` 放到 `~/klipper_config/printer/` 下(同 printer.cfg 下) ### 配置插件 编辑 `printer.cfg`,头部添加以下代码 ``` [include timelapse.cfg] #加载延迟拍摄头文件 ``` 编辑 `moonraker.conf`,尾部添加以下代码 ```bash # 延迟拍摄,https://github.com/mainsail-crew/moonraker-timelapse [timelapse] output_path: ~/timelapse/ # 生成视频的保存目录 frame_path: /tmp/timelapse/ # 临时帧保存的目录 ffmpeg_binary_path: /usr/bin/ffmpeg # 安装ffmpeg的目录 enabled: True # 功能开关 mode: layermacro # 目前有两种模式可用'layermacro'(换层模式)和'hyperlapse'(超时模式) # layermacro(换层):此模式使用宏触发帧抓取,但需要设置切片器以在图层更改时添加换层指令 "TIMELAPSE_TAKE_FRAME" # hyperlapse(超时):此模式每 x 秒拍摄一帧,由 hyperlapse_cycle 设置配置 # hyperlapse_cycle: 30 # hyperlapse(超时)模式下抓拍间隔,单位s snapshoturl: http://localhost:8080/?action=snapshot # 照片流地址 constant_rate_factor: 23 # 影片质量(0(无损)~51(最差)) output_framerate: 30 # 延时摄影输出帧数,如果启用了“variable_fps”,这个会被忽略 pixelformat: yuv420p # 合成影片编码 time_format_code: %Y%m%d_%H%M # 照片命名规则,详情:https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes # autorender: True # 自动生成延时摄影,或者可以在最终 gcode 中使用 "TIMELAPSE_RENDER"(可以集成到前端)来触发渲染过程。 # duplicatelastframe: 0 # 将最后一帧复制到输出视频的末尾 # previewimage: True # 最后一帧预览图复制到输出目录,方便预览 # saveframes: False # 将帧打包到 zip 文件以供外部使用或渲染 # gcode_verbose: True # 宏的详细程度 # parkhead: False # 拍摄前停放打印头 # parkpos: back_left # 拍摄帧之前停放打印头的位置。可能的配置是 [center, front_left, front_right, back_left, back_right, custom] # park_custom_pos_x: 0.0 # 自定义停放位置的绝对 X 坐标(单位 mm) # park_custom_pos_y: 0.0 # 自定义停放位置的绝对 Y 坐标(单位 mm) # park_custom_pos_dz: 0.0 # 自定义停放位置的相对 Z 坐标(单位 mm) # park_travel_speed: 100 # 停车时打印头移动的速度(单位 mm/s) # park_retract_speed: 15 # 驻车后退速度(单位 mm/s) # park_extrude_speed: 15 # 驻车后退速度(单位 mm/s) # park_retract_distance: 1.0 # 缩回灯丝以防止渗出的距离(单位 mm) # park_extrude_distance: 1.0 # 恢复打印前挤出以填充喷嘴的距离(单位 mm) # fw_retract: False # 启用此功能将禁用收回相关设置! # park_time: 0.1 # 停车时增加额外的空闲时间(单位秒,默认0.1) # stream_delay_compensation: 0.05 # 延迟帧捕获(单位秒,默认0.05) # extraoutputparams: # 额外输出参数,此处指定任何内容可能会禁用其他功能,参考:https://ffmpeg.org/ffmpeg.html # variable_fps: False # 输出帧率的变量计算,使用拍摄帧的计数和“targetlength”,但受“variable_fps_min”和“variable_fps_max”设置的限制 # targetlength: 10 # 视频目标长度 # variable_fps_min: 5 # 最小FPS # variable_fps_max: 60 # 最大FPS ``` 注意:`注释要另起一行,不能和配置同行` 配置完成后重启 `Moonraker`,然后在发送 `TIMELAPSE_TAKE_FRAME` 命令进行测试 查看 `/tmp/timelapse/` 下时候有刚生成的图片 - `TIMELAPSE_TAKE_FRAME`:拍摄 - `TIMELAPSE_RENDER`:生成视频 ### 使用 moonraker 管理更新 编辑 `moonraker.conf`,添加以下代码 ```bash [update_manager timelapse] type: git_repo # 更新管理器类型为Git仓库 primary_branch: main # 主分支名称 path: ~/moonraker-timelapse # 配置文件的本地路径 origin: https://git.918178.xyz/https://github.com/mainsail-crew/moonraker-timelapse.git # 远程Git仓库地址(增加加速) managed_services: klipper moonraker # 管理的服务,这里是Klipper和Moonraker ``` ### 切片配置 [Moonraker-timelapse_官方说明](https://github.com/mainsail-crew/moonraker-timelapse/blob/main/docs/configuration.md) 我使用的是 `Ultimaker Cura` 这里就拿它举例 1. 打印完生成视频 结束 G-code,打印完成后生成视频,`TIMELAPSE_RENDER` 这个可以不加,选择打印的时候会有是否启用延时摄影的,选上就会自动生成视频(只有生成视频作用,拍摄还是需要自己加),如使用打印关机,这个则不能省略(自动运行的会不等待直接运行关机程序) 2. 换层拍摄 扩展——后期处理——修改 G-Code  添加换层后执行拍摄图片,`TIMELAPSE_TAKE_FRAME`,直接放最后(若是放在打印复位前那么会停在模型上,导致烫坏模型)  打印完成后会生成视频到 `~/timelapse/` **相关教程:** [Klipper Fluidd启用USB网络摄像头](https://www.bilibili.com/read/cv22097856/)
造物者W
2024年9月10日 15:01
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码