news 2026/9/25 1:19:43

零成本自建监控:摄像头+单板机+网盘实现24小时录像与回放

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
零成本自建监控:摄像头+单板机+网盘实现24小时录像与回放

1. 项目概述

监控存储这事儿,说实话已经被云厂商和内存卡厂商拿捏得死死的。家里装个摄像头,要么被厂商的云存储套餐按月割韭菜,要么就靠一张TF卡循环覆写,卡坏了数据全没,想看回放还得蹲在摄像头旁边一张张翻。我这次搞的这套方案,一句话讲清楚就是在不花一分钱订阅费的前提下,把一台乞丐版摄像头、一块吃灰的单板机和夸克网盘组合起来,搭出一套能录、能存、能回放的24乘7监控系统。

这套东西能解决什么问题?往小了说,是省掉云存储年费、避开内存卡寿命和容量瓶颈;往大了说,是给你一个完全自控的“视频本地云存储架构”。录像先落在家里,再异步推送到网盘,既不影响摄像头实时预览的带宽,又能拿到一份异地容灾的副本。就算家里进了小偷把摄像头和单板机一并端走,网盘里的录像还在,这就叫“贼偷不走证据”。

适合谁参考?手上正好有闲置树莓派、香橙派、斐讯N1这类ARM小板子的人,或者被厂家云存储价格恶心到的普通用户,再或者单纯想在监控方案上练手折腾的技术爱好者。整个过程我尽量讲得直白,你不需要精通嵌入式,也不需要会写驱动,只要会烧系统镜像、会改几行配置文件,照着抄就能跑起来。

2. 核心思路拆解:为什么选择“乞丐摄像头 + 单板机 + 网盘”这个组合

2.1 这套架构到底是怎么运转的

整套链路分成采集、本地缓冲、异地备份三个环节。摄像头只干一件事:把RTSP视频流吐出来。单板机上跑一个录像服务,负责把这路流拉下来,按时间段切片写入本地存储。这里的“本地存储”不一定是硬盘,你用闲置U盘、旧SD卡都行,因为最终的仓库不在这儿,这儿只是个中转站。然后再跑一个同步脚本,把切片文件往夸克网盘推。推到网盘之后,本地文件可以根据你的空间情况选择保留几天或直接删掉。

这套结构的巧妙之处在于把“监控存储”和“监控回放”解耦了。传统方案里,内存卡是存储介质,摄像头是读取方,坏了就是坏了,扩容还得拆机器。而在我的方案里,内存卡或者本地磁盘只是一级缓存,真正的存档在网盘。你不需要为了“录得更久”去给摄像头反复换大容量卡,因为网盘空间的上限远远高于一张TF卡。

2.2 为什么选乞丐版摄像头而不是智能摄像头

市面上所谓智能摄像头,核心卖点就是“自带云存储”“自带AI侦测”“自带APP回放”。但这些东西全被绑在品牌服务器上。一旦厂家服务器出问题,或者你不想续费,设备就直接退化成普通摄像头。更关键的是,很多智能摄像头不让你拿到裸的RTSP流,或者就算能拿到,也限制分辨率、限制并发数。

乞丐版摄像头就不一样了。它往往没有云平台绑定,没有账号体系,只提供一个RTSP地址。对咱们这种要自建系统的人来说,没有绑定就是最大的自由。而且这类摄像头价格摆在那里,坏了不心疼,拆了还能研究研究硬件,属于物尽其用。我自己选的就是一台几乎是最低配的室外枪机,支持PoE供电,带红外夜视,1080P分辨率。注意,买之前一定要确认两点:支持RTSP协议、支持ONVIF标准。这俩缺一个,后面全都玩不转。

2.3 单板机在这个系统里的角色定位

单板机不是必需品吗?严格意义上讲,如果摄像头支持直接把录像写到FTP或SMB共享目录,那单板机确实可以换成一台NAS,或者干脆用路由器挂硬盘。但现实是,大多数乞丐版摄像头只会推流,不会主动存文件,即便支持MicroSD卡,也仅仅是“能录”,不具备推送能力。所以单板机在这里充当的是“私有录像机 + 上传调度器”的角色。

单板机的优势在于功耗极低、价格便宜、体积小。树莓派、香橙派这类板子,跑个FFmpeg拉流绰绰有余,实测下来功耗也就三到五瓦,比一台老台式机做录像机省电得多。你没树莓派也没关系,任何能跑Linux的小主机、旧笔记本、甚至软路由,理论上都能顶上这个位置。关键就一条:系统能装FFmpeg、能跑Python脚本、有网络连到摄像头和网盘,满足这三点,硬件型号根本不重要。

2.4 为什么网盘选了夸克

网盘选择这一块,我对比过好几家。有些网盘上传接口稳定但是空间小,有些空间大但上传限速严重,还有的非得装客户端才能传文件,折腾起来特别费劲。夸克网盘对我来说有几个核心吸引力:空间给得大方,非会员也够用;WebDAV或者第三方挂载生态成熟,配合现成的开源项目,可以轻松实现文件自动上传;上传速度实测能跑满家庭上行带宽,这对监控录像这种“每天几百MB到几个GB”的数据量来说极其重要。

另一个考量点是回放体验。录像传到网盘后,手机端直接就能看,不用再单独做一套播放器,不用端口映射,不用搞什么DDNS。这点非常关键。传统的本地录像方案,你人在外面想看一眼监控画面,还得做内网穿透、配SSL证书、防爆破,搞不好还有安全风险。但录像推上云之后,这一切都不存在了,打开网盘就能看当天、昨天、上周的回放视频。

3. 核心细节解析与关键环节实现

3.1 摄像头选型的硬性参数清单

我在挑选摄像头的时候列了一个硬性参数清单,少一个都不行。首先是分辨率,别买那种标注“HD”实则只有640x480的山寨货,尽量选真实1080P,夜间噪点还能靠后处理弥补,物理分辨率低就完全没救。其次是编码格式,H.264首推,H.265也行但要确认FFmpeg能解码,老旧的MJPEG千万别碰,码率大成灾难。再次是协议支持,RTSP必须裸奔可用,不需要厂家APP激活的那种,ONVIF作为辅助标准,方便后面做设备发现和参数调整。

还有一点很多人忽略:摄像头的码流参数。乞丐版摄像头出厂默认画质可能非常高,码率飙到8Mbps甚至更高,一天累计下来就是80多GB,网盘空间再大也顶不住。装好后先进摄像头管理页,把主码流调低一点,我这边是1080P加H.264加4Mbps码率,一分钟大约30MB,一天24小时也就是43GB左右。副码流可以开一个低分辨率低码率的,给手机实时预览用,避免拉流时占用太多上行带宽。

3.2 单板机系统与基础环境的落地

单板机上跑的系统,我建议用Ubuntu Server或Debian,别图省事装带桌面的版本,桌面服务对监控这种长期运行的小主机来说纯属浪费资源。装好系统后需要做的第一件事是更换国内软件源,然后装FFmpeg、Python3、pip等基础组件。如果你的板子架构是ARM,比如树莓派的ARM64,记得确认源里能装上带硬件编解码的FFmpeg版本,装不上也不致命,因为拉流转存主要是网络和磁盘IO开销,CPU转码反而用不着。

网络配置上,单板机建议固定IP,或者至少通过MAC地址绑定路由器的DHCP。原因很简单,录像服务、上传脚本、定时任务全都依赖稳定的网络地址,万一IP变了,摄像头推流和网盘同步都会断。接着把SSH开起来,用密钥登录,别再用密码,这机器虽然不直接暴露公网,但安全习惯养好没什么坏处。

3.3 录像服务核心组件:FFmpeg定时切片

录像环节我用的就是FFmpeg,加上一个shell脚本按小时切片。命令核心不长,关键在于参数打磨。先说说切片策略:按小时生成一个MP4文件,文件名带上日期和小时,方便后续任务判断该传哪个、该留哪个。如果切片太大,比如一小时4GB,也可以按30分钟切,这个看你的需要。命令大概长这样:

ffmpeg -rtsp_transport tcp -i rtsp://user:pass@192.168.1.100:554/stream1 -c copy -f segment -segment_time 3600 -strftime 1 "cam_%Y%m%d_%H%M%S.mp4"

这里有几个关键点。-rtsp_transport tcp一定要指定,默认的UDP在弱网环境下花屏和断流非常频繁,TCP传输保证数据完整性,代价是占用一点延迟,但监控场景完全不敏感。-c copy是流复制,不重新编码,CPU占用率极低,切片几乎零开销。-segment_time 3600表示每3600秒切一个文件,配合-strftime 1让文件名里带上时间戳。

摄像头断流是个老大难问题。FFmpeg在断流之后默认行为是直接退出,不会自动恢复。这时候就得靠外层循环拉起来。我写了个守护脚本,每次退出后等5秒重新拉流,同时记录重启次数和间隔,避免网络抖动时疯狂重连。这个脚本不需要多复杂,就是一个while循环加一个计数器,实测连续跑几个月一点问题没有。

3.4 网盘同步环节:自动上传与空间管理

录像文件生成了之后,下一步是上传。这一步我用的现成方案加一点自己写的胶水代码。开源社区里有好几个夸克网盘命令行工具,有基于Python的,也有Go语言单文件的。我的建议是选Go编译的单个二进制,丢到单板机上就能跑,不像Python版本那样得装一堆依赖。

上传策略需要仔细设计。最常见的情况是网盘空间有限,录像天天传早晚会满。我的方案是“本地保留3天,云端保留30天”,折算下来大概需要空间是本地三天130GB,云端一个月1.3TB左右。如果你网盘空间没那么充足,就把云端保留时间缩短到7天,没问题。关键是脚本逻辑要能自动删老文件:本地的用find命令按mtime删除,云端的通过API按文件名正则匹配删除。

find /mnt/cam_storage -name "*.mp4" -mtime +3 -delete

云端清理脚本我直接在Python里调用网盘工具的命令行接口,每天凌晨跑一次,把30天前的文件删掉。这里提醒一下,由于网盘接口可能调整,写完清理脚本一定要先跑一遍测试模式,确认“哪些文件会被删除”之后再启用,别一上来就把新鲜录像全清了。

4. 全流程实操记录与踩坑实录

4.1 从零到一:完整配置步骤梳理

第一步,摄像头配置。上电后用网线直连电脑,或者通过厂家默认IP登录管理页,把IP改成和内网同网段,关闭DHCP,设置固定IP。然后找到“RTSP”或“媒体设置”,开启RTSP服务。如果摄像头支持ONVIF,顺手打开,端口默认是8899或者80,无所谓,只要能用工具探测到就行。记住RTSP完整地址,一般在管理页能看到,或者通过ONVIF Device Tool扫描出来。

第二步,单板机部署。烧录Ubuntu Server到TF卡或eMMC,这里有个小坑:如果你的单板机本身也是从TF卡启动,而监控存储也想放在卡上,建议把系统启动和录像存储分开。系统放一张小卡,存储用U盘或移动硬盘。原因很现实,频繁写入会加速TF卡老化,录像这种7乘24小时高强度写入,普通卡几个月就可能报废。如果非要共用一张卡,那就买工业级高寿命的,比如海康、闪迪的监控专用卡,但这玩意儿容量小价格贵,性价比不高。

第三步,安装录像服务。把FFmpeg脚本和守护脚本写进/usr/local/bin,用cron设置开机启动。同时在系统里创建一个专用用户,权限只给录像目录和上传工具的访问权,避免脚本被提权利用。这个动作虽然麻烦,但很重要,毕竟这台机器一直连着摄像头内网和网盘账号,一旦被日穿,损失的不光是录像隐私。

第四步,配置网盘上传。把网盘工具的登录状态保持好,很多命令行工具需要扫码登录一次,之后会把token存在配置文件里。紧接着手动传一个测试文件试试,确认上传速度和完整性没问题。然后设置cron任务,每10分钟扫描一次录像目录,发现新文件就传,传完在本地加个标记,避免重复上传。

第五步,验证回放。手机端打开夸克APP,进入对应目录,随便点开一个录像文件,如果能流畅播放,说明这套链路已经通了。我这边实测,1080P在4G网络下拖动进度条基本秒开,跟本地播放体验差距不明显。要是播放卡顿,大概率是录的码率太高或者网盘转码策略问题,建议把码率再降一点。

4.2 录像文件的时间轴与命名策略直接影响回放体验

录像的切片命名,看起来是个小细节,实际影响非常大。你想想,某天晚上家里进了不速之客,你要回放派出所执法记录仪视角,翻文件的时候是看到一个cam_20250611_230000.mp4方便,还是面对一堆01.mp402.mp4方便?命名规则从一开始就要打牢。

我用的规则是cam_设备名_日期_开始时间.mp4,例如cam_door_20250611_180000.mp4。这样做的好处,一是按文件名排序就是按时间排序,二是后续清理脚本可以用前缀和日期直接正则匹配,三是为了以后接入自动回放或时间轴插件留了伏笔。如果你打算用Jellyfin之类的媒体管理工具来统一看录像,好的命名规则几乎决定了刮削能否成功。

4.3 时间校准问题千万不能忽略

监控录像如果没有时间校准,那录下来的东西就是一堆废料。摄像头自己有RTC(实时时钟)的话,时间基本准;但乞丐版摄像头往往没电池,断电重启后时间就回到出厂值。所以你在摄像头管理页里一定要开启NTP同步,填一个靠得住的时间服务器,比如ntp.aliyun.com

单板机也不能落下,系统装好后立刻把时区设对,启用systemd-timesyncd或者chrony。整条链路上所有设备时间一致,后面排查问题、比对回放都能省很多事。我踩过一次坑:摄像头时间和单板机时间差了两分钟,结果按照日志去翻回放,怎么都对不上画面,折腾半天才发现是时钟偏移,这事说出来都是泪。

4.4 夜间效果差、频繁断流的排查与解决

先说夜间不灵敏的问题。乞丐版摄像头普遍用的是红外LED阵列加IR-CUT切换器,光线不足时自动切到黑白模式。如果你发现夜间画面发灰、噪点爆炸,可能是几个原因:一是红外灯没打开,去设置里看红外模式是不是在自动挡;二是IR-CUT切换失灵,卡在了白天模式,画面就会偏红偏暗;三是镜头前面有污渍或遮挡,红外的光直接被反射回镜头,整个画面白茫茫一片。用软布擦一下镜头前面的护罩玻璃,顺便检查一下有没有蜘蛛网,这俩坑最容易被人忽略。

再说断流。乞丐版摄像头在长时间运行后,固件偶发死锁很正常,表现为RTSP流拉取超时或者画面冻结。我在守护脚本里加了探活逻辑:每30秒用ffprobe读一下流信息,如果连续三次失败,就强制重启摄像头电源。实现方式是用一个带继电器控制的智能排插,通过脚本调用HTTP接口断电再上电。这个方案稳得不行,比我以前用脚本反复重启FFmpeg管用多了。

5. 常见问题与排查技巧实录

症状可能原因排查方法解决方案
摄像头画面灰暗有噪点红外灯未开、IR-CUT失灵检查设置页红外模式,肉眼观察镜头动作重启摄像头电源,清洁镜头护罩,切到强制夜视模式测试
RTSP拉流断断续续网络带宽不足或UDP丢包用iperf测单板机到摄像头间的实际带宽指定TCP传输,或降低码流分辨率
上传网盘一直失败token失效、文件过大先手动跑一次上传工具重新扫码登录,调小单片文件时长控制体积
本地空间迅速占满切片太多、清理任务没启动检查find是否正常执行调短保留天数,给清理任务加日志输出
回放卡顿严重码率高、网盘转码慢播放原始文件看是否卡降低摄像头码率,或传低分辨率副码流

5.1 内存卡和U盘当缓存盘的选型与保养

单板机上我最初直接插了一张旧内存卡当存储,后来发现这里面的门道很深。内存卡分好几种颗粒,TLC、MLC、SLC的成本耐久度天差地别。TLC的卡日常存照片视频没问题,但7乘24小时写入监控流,寿命衰减得非常快,可能两个月就冒出坏块,表现为写入速度骤降、文件损坏。所以如果你只能用内存卡,建议选“高耐用”系列的监控卡,比如闪迪的高耐久系列,价格贵一点,但冗余度高不少。

U盘相对会比内存卡好一点,但也不是最优解。最佳实践是用一块小容量SATA固态硬盘,哪怕是从一台旧笔记本上拆下来的,都比内存卡稳定得多。SSD有磨损均衡,能平滑处理持续写入。把系统跑在一张卡上、录像写进固态盘,这个“双介质”方案我是真心推荐。

5.2 夸克网盘扩容、提速与账号安全的那些事

网盘空间不够怎么办?夸克时不时会送出免费空间活动,我见过不少临时扩容的机会,有空多留意官方活动入口,能薅一点是一点。但千万别碰所谓“扩容修复”之类的第三方工具,轻则封号,重则资料全清。网盘是用来存证据的,不是用来赌的。

上传速度问题,出现得很频繁。如果你发现上传到夸克很慢,先别急着骂网盘,多半是单板机的上行带宽本来就小。家庭宽带通常下行大上行小,录像默认码率高的话,上行根本扛不住。测一下家里宽带上行带宽,如果只有30Mbps,那4Mbps的码流主码流就只能同时传七路左右,而你是单路监控,理论绰绰有余,但如果再叠加其他上传任务,就会互相挤占。

再说账号安全。监控录像属于隐私数据,网盘账号一旦泄露,等于把家门钥匙交出去了。我在配置网盘工具的时候特意启用了独立的Cookie和Token,不跟常用网盘账号混用,同时开启了两步验证。另外提醒一句:上传脚本里不要硬编码密码,把认证信息放在只有当前用户能读的文件里,脚本通过环境变量引用,防的是哪天手滑把脚本贴到论坛求助的时候泄露。

5.3 摄像头RTSP地址与端口映射的关系

很多人搞混“内网看监控”和“外网看监控”。我的方案里,摄像头和内网设备之间的连接不经过公网,RTSP地址用192.168.x.x这种内网IP就好。录像推送到夸克,走的是单板机到网盘服务器的HTTPS连接,同样不需要在路由器上开端口给外部访问。这可以说是整套方案最安全的地方:你家里路由器上根本不存在对外开放的端口,外网无法直接探测到摄像头或单板机,所有访问都经过网盘这一层。

有些教程会让你做端口映射、DDNS,然后直接从公网看RTSP流,我非常不建议。即使不谈网络安全问题,把摄像头裸奔到公网本身就是给全网扫描器送菜,半夜三更被人拿去当肉鸡,或者干脆被勒索软件盯上,这事情可大可小。自建监控的第一原则就是隐私安全,不在路由器上开任何多余端口,是我反复强调的底线。

6. 进阶扩展与替换思路

6.1 多路摄像头接入同一套存储体系

这套架构天然支持多路摄像头。单板机性能如果够用,比如香橙派5或者树莓派4,开两个、三个FFmpeg进程分别拉流,完全没问题。唯一要留心的是码率总和别超过局域网带宽和网盘上传带宽。我目前是两路摄像头,一路门口一路客厅,码率都设到4Mbps,单板机CPU占用不到百分之三十,稳得很。

多路接入后的文件组织,建议按设备分目录:

/mnt/cam_storage/door/20250611_180000.mp4 /mnt/cam_storage/livingroom/20250611_180000.mp4

上传脚本也按目录扫描,云端保持同样的目录结构,回放的时候想找哪路就找哪路,不会混成一锅粥。

6.2 用更快更稳的方案替代FFmpeg切片

FFmpeg在处理长时间视频流时偶发时间戳紊乱,也就是录像画面和声音对不上、或者文件时长与实际不符。想根治的话,可以用一个专门为监控设计的录制工具,比如Motion或者ZoneMinder。Motion的小型化程度很高,直接apt安装,配置也不复杂,录制自带时间水印和运动检测,不过性能和资源占用比FFmpeg重一些。

反过来,如果你的摄像头本身就支持NAS存储,那单板机都可以省了。不少摄像头支持SMB方式把录像直接写到共享目录,那只要配一台NAS、一台旧电脑共享一个文件夹,后续的网盘同步单独跑一个轻量脚本就行。这种方式连FFmpeg都不用装,适合不想折腾命令行的用户。

6.3 智能分析:运动侦测与告警通知

纯录像其实不算“智能监控”,如果结合运动检测,这套系统才真正顺手。夸克网盘只负责存储,运动检测可以放在单板机上做。最简单的方式是用FFmpeg的-filterselect表达式,检测画面变化超过阈值就切片,相当于只录像不录静态画面。但这个方案误报率比较高,光线变化、树叶晃动都会触发。

更稳一点的做法是用开源图像识别框架,比如OpenCV或者YOLO的轻量模型。单板机性能有限,跑YOLO肯定吃力,但可以退一步用OpenCV的背景差分算法,检测到足够大的轮廓变化就告警。告警方式也不用复杂,写一个脚本调用Server酱或者Bark,把事件推送到手机。实测下来树莓派4跑OpenCV背景差分,1080P流能保持每秒10帧左右的分析速度,做日常人体检测够用。

6.4 跨平台回放:手机、平板、电脑都能看

回放端的选择,取决于你上传到网盘的文件格式。夸克网盘的App内置视频播放器,支持大部分MP4文件在线播放,所以我前面切片时特意用-c copy,这样文件本身就是标准MP4容器,网盘播放器可以直接解码。如果你希望有“按时间轴拖动”的体验,可以考虑把录像目录挂载到本地,再用支持SMB的播放器如VLC、MX Player来浏览。

还有一个小技巧:给网盘文件夹加上智能分类,比如在“转码播放”设置里开启高清转码,你在外面用流量看回放时,网盘会推一个低码率的版本,省流量不卡顿。这个功能我原先以为只有会员才有,后来发现一些场景下普通账号也能用,具体看客户端版本,多翻翻设置就对了。

7. 最后分享几点私货心得

整套系统跑到现在快半年了,我最深的感触是:监控系统真正的成本不是硬件,而是持续维护的精力和对安全边界的敬畏心。硬件方面,乞丐版摄像头加树莓派,总共不到两百块,网盘用的还是免费空间,但为了让它稳定运行,我付出的调试时间、脚本维护、定时巡检,一点都不比买一套商业云监控少。好在折腾的过程本身就是乐趣,而且这套东西的每一个部件都在自己掌控之下,坏了能修,想改能改,这份自由感是商业方案给不了的。

有几个细节我再啰嗦一遍:一是定期手动检查录像文件能不能正常播放。我曾经遇到过网盘上传显示成功,但实际文件在传输过程中损坏,导致关键时段录像无法打开,后来加了上传后的文件校验才解决。这年头数据损坏比硬件故障更隐蔽,尤其网盘经手的文件,源文件的哈希和云端哈希最好对一次。二是给单板机配一个带电流保护的电源,监控设备最怕半夜电压不稳导致异常挂机,重启容易但录像断档补不回来。三是如果你家里本来就有老式路由器,可以把单板机插到路由器USB口供电,省一个充电头的位置。

这套方案能不能再往外扩展?我下一步打算把家里另一个角落的球机也接进来,然后利用它的云台能力做一个定时巡检路线,每天自动扫描一圈院子,再把画面推送回网盘。另外,我在尝试把运动告警和智能语音播报结合起来,比如检测到门口有长时间逗留的人,就通过一个小喇叭播一句“你有事吗”,起到了物理层面的震慑作用。玩监控这事儿,到最后就是玩创意,框架搭好了,剩下就是看你怎么用它。希望这篇东西能帮你迈出第一步,也欢迎你折腾出更好的玩法之后回头来交流。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/25 1:19:27

Buck电路误差放大器选型:普通运放与跨导运放对比

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/25 1:18:42

气象时序回归实战:从数据清洗到多任务预测

简介:本资源是一份面向高校机器学习课程学习者的综合性大作业实践包,聚焦天气预测这一典型时间序列建模任务,帮助学生系统掌握从数据预处理、特征工程到模型训练与评估的全流程技能。压缩包共603KB,虽未提供具体文件明细&#xff…

作者头像 李华
网站建设 2026/9/25 1:18:30

行为树不是AI算法,而是游戏AI的工程化骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/25 1:18:24

LabWindows/CVI图像处理工程包解析与实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/25 1:18:21

arm64+openEuler离线安装Docker与Compose一键脚本及避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/25 1:17:47

西北额济纳旗必打卡文化体验:《邂逅额济纳》室内演出,夜游压轴项目

说起西北文旅这几年的发展变化,越来越多的游客不再满足于走马观花的拍照打卡,开始追求能深入感受当地文化的深度体验,尤其是针对亲子出行、文化研学的夜间文化产品,一直是西北长线旅游市场的缺口。很多走西北大环线的游客都会把额…

作者头像 李华