You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

安防录像意外中断时,保障数据完整的视频格式及实现方案咨询

安防摄像头中断录制数据留存解决方案

一、首选文件格式与编码格式

  • 容器格式:MKV(优先)
    MKV是流式容器,原生支持边写边读,中断后大部分已写入数据可恢复。你之前的失败大概率是因为libcamera的内存缓冲未及时刷盘,而非格式本身问题。若仍有问题,可降级到AVI格式,兼容性更好但功能较少。
  • 编码格式:MJPEG(极致鲁棒)/ H.264(平衡体积)
    • MJPEG:每个帧都是独立的JPEG图像,中断后仅最后1帧可能损坏,其余全部可用。缺点是文件体积是H.264的5-10倍,适合对数据完整性要求极高的场景。
    • H.264:保持你当前的--intra 5配置(每5帧生成1个关键帧),中断后可从最近的关键帧恢复后续数据,损失极小,且体积可控。

二、libcamera与Systemd配置调整

1. 启用分段录制

将录制拆分为固定时长的分段文件,避免单个文件损坏导致全部数据丢失。修改命令如下:

libcamera-vid --timeout 0000 --width 1920 --height 1080 --framerate 10 --codec h264 --profile high --intra 5 --listen --segment 300 -o "$(date +%Y%m%d_%H%M)_%04d.out.mkv"

--segment 300表示每300秒(5分钟)生成一个新文件,文件名会自动补全序号。

2. 强制实时刷盘

禁用libcamera的输出缓冲,确保数据实时写入磁盘,避免断电时内存缓冲丢失:

stdbuf -o0 libcamera-vid --timeout 0000 --width 1920 --height 1080 --framerate 10 --codec h264 --profile high --intra 5 --listen -o "$(date +%Y%m%d_%H%M).out.mkv"

stdbuf -o0会强制标准输出无缓冲。

3. Systemd服务优化

在你的systemd服务文件(如/etc/systemd/system/camera-recording.service)中添加以下配置:

[Service]
ExecStart=/path/to/your/script.sh
ExecStop=/usr/bin/pkill -SIGINT libcamera-vid
Restart=on-failure
User=root
  • ExecStop:发送SIGINT信号让libcamera-vid正常收尾,而非强制杀死,确保文件写入完整。
  • Restart=on-failure:进程意外退出后自动重启录制。

三、意外断电数据保障

  1. 备用电池联动处理
    在你的自研自动启动代码中加入断电检测逻辑:当检测到主电源断开时,立即向libcamera-vid进程发送SIGINT信号,等待3-5秒让进程完成文件写入,再触发系统优雅关机。

  2. 文件系统优化
    使用ext4文件系统并启用日志模式,减少断电后的文件损坏:
    修改/etc/fstab中的根分区挂载项:

    /dev/mmcblk0p2  /  ext4  defaults,noatime,data=journal  0  1
    

    data=journal会记录所有写入操作,断电后可快速恢复文件系统。

  3. 禁用或限制Swap
    关闭Swap分区(若无需大内存支持),或设置swappiness=0减少Swap使用,避免断电时Swap中的缓存数据丢失导致文件损坏。

四、其他注意事项

  • 定期模拟中断测试:通过pkill -SIGKILL libcamera-vid或断开电源,验证生成的视频文件是否可正常播放,确保配置生效。
  • 选用可靠存储介质:优先工业级SD卡或SSD,避免普通SD卡长期写入后的损坏风险。
  • 配置远程管理:开启SSH服务,远程执行systemctl stop camera-recording.service即可正常终止录制,无需HDMI和键盘。

内容的提问来源于stack exchange,提问作者ndtech

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 05:26:16