欢迎光临散文网 会员登陆 & 注册

Klipper多个摄像头+延时摄影——Crowsnest+Timelapse 保姆级教程

2023-08-06 23:34 作者:HUOKA丶  | 我要投稿


多摄像头

如果想让你的Fluidd或Mainsail页面显示多个摄像头,首先需要安装Crowsnest组件。

Crowsnest的安装

利用SSH工具(例如FinalShell)连接到上位机。

不要在root用户下操作,su到你自己的用户下。

如果没有Kiauh,则:

cd ~

git clone https://gitee.com/miroky/kiauh.git

下载好kiauh工具,如果已有kiauh则跳过此步。


输入:

./kiauh/kiauh.sh

kiauh

输入1  进入Install页面。

安装界面

输入12,这一步需要魔法上网,要不然很有可能没法安装(如果你输入12并回车后没反应),需要选择Y的就选Y,安装完后会提示你要不要重启,确保没问题就reboot。


重启后就可以在config文件中找到crowsnest.conf这个文件,打开他。

配置文件
crowsnest配置文件

如果你使用多摄像头(最多四个)。

则红色圈出来的参数需要修改,rtsp_port参数可以自定义,默认8854,只要多个摄像头不重复即可。

port参数:官方给出的分别为8080,8081,8082,8083,从8080开始每多一个摄像头就依次设置不同的port。

device参数:摄像头地址,需要在SSH中输入:

ls /dev/v4l/by-id/* 

摄像头地址


用于查看USB的摄像头地址,每个摄像头都会有两个地址,复制index0结尾的那个地址即可。

然后填入device中,格式为:/dev/v4l/by-id/你的摄像头地址

resolution参数:分辨率,填写时候切记不要把×打成*,否则无法显示。

max_fps参数:设置帧率的,如果上位机性能不佳建议5帧即可,高帧率会占用大量系统资源。

完成配置文件修改后选择保存并重启,然后在Fluidd的设置页面中找到摄像头设置,添加摄像头。

视频流类型选择MJPEG视频流,摄像头地址是根据你的port参数决定的,如下图所示

8080对应/webcam/?action=stream

8081对应/webcam2/?action=stream   以此类推     (注意没有webcam1

端口对应的摄像头地址

到此为止,刷新一次Fluidd后你就能看到你设置的摄像头了。


Timelapse延时摄影的安装

官网地址:GitHub - mainsail-crew/moonraker-timelapse: Timelapse Plugin for moonraker

SSH连接上位机,输入:


cd ~/

git clone https://github.com/mainsail-crew/moonraker-timelapse.git

cd ~/moonraker-timelapse

make install


一路安装有Y选Y

在moonraker.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


[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 their 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



printer.cfg文件中输入以下文字

[include timelapse.cfg]

之后需要设置切片软件的gcode,确保每一层拍一次照片用于合成延时摄影

各个切片软件的设置

以下是更详细的配置,依旧需要添加在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

moonraker.conf文件


如果你不需要每一层都单独停靠到一个位置拍照的话,就不需要动里面的任何设置,保持默认即可,如果需要单独停靠,参数就需要自己测试了,停靠时回抽多少,继续打印时挤出多少都要自行尝试(影响打印速度,我一直没开过)。

中文翻译如下所示仅供参考

#enabled: True #是否启用时间延时摄影

#mode: layermacro #此模式使用宏来触发抓取帧,但需要设置切片器才能在图层更改时添加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 #‎回抽来以防止渗出的距离(单位毫米)‎

#park_extrude_distance: 1.0 #‎恢复打印之前挤出以填充喷嘴的距离(单位 mm)‎

#hyperlapse_cycle: 30 #定义在超延时模式下拍摄帧的时间间隔

#autorender: True #‎“true”启用或“false”禁用打印结束时渲染过程的自动触发。或者,您可以使用最终 gcode 中的“TIMELAPSE_RENDER”或渲染 http 终端节点(可能集成到前端)来触发渲染过程。‎

#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”,这是默认的延时组件。要获取哪些像素格式可用的更多信息,请在系统控制台中运行“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‎‎ 注意:在这里指定任何内容可能会禁用其他功能!(ffmpeg 限制)‎

#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 文件以供外部使用或呈现。


至此,所有设置均已完成,享受你的延时摄影吧



Klipper多个摄像头+延时摄影——Crowsnest+Timelapse 保姆级教程的评论 (共 条)

分享到微博请遵守国家法律