当前位置:首页 > 能源 > 正文

icam365怎么删除一段视频?一步步教你搞定

  • 能源
  • 2026-07-09 14:24:17
  • 350
摘要: 在icam365里翻看监控录像,发现有一段视频特别长,或者中间有一段完全没用的画面——比如猫在镜头前睡了三个小时,或者风把树叶吹...

在icam365里翻看监控录像,发现有一段视频特别长,或者中间有一段完全没用的画面——比如猫在镜头前睡了三个小时,或者风把树叶吹得晃来晃去,你想把那段剪掉,只保留有用的部分,然后你点开icam365,找了半天,发现……好像没有直接“删除一段”的按钮。

别急,其实这个事儿没那么复杂,我用Go语言写了个小工具,顺便把思路和方法一起拆给你看,咱们边聊边干。

首先得说清楚一件事:icam365本身的设计理念是整段记录,它不像手机相册那样可以框选片段然后点删除,你看到的每一条视频文件,本质上是摄像头连续录下来的一个时间段,比如从下午2点到6点,如果你想删除中间某一段,比如2点15分到2点20分,icam365不会让你直接在那个界面上拖拽删除,你得换个思路:把视频下载下来,用工具裁剪,再上传替换

听起来麻烦?其实就三步:下载、裁剪、替换,而用Go语言来处理这个流程,比你想的要顺手得多,我写了一段代码,核心逻辑是这样的:先通过icam365的API或者文件共享协议(比如SMB或者FTP,看你摄像头支持哪种)把视频文件拉下来,然后调用FFmpeg这个媒体处理工具,用Go的os/exec包跑命令行,把指定时间段裁出来,最后再把裁剪好的文件传回去覆盖原来的。

代码长这样(我简化了关键部分,省去了一堆错误处理,但意思到了):

package main
import (
    "fmt"
    "os/exec"
    "strings"
)
func cutVideo(inputFile, outputFile, startTime, endTime string) error {
    // startTime和endTime格式示例:"00:15:00" 和 "00:20:00"
    duration := calculateDuration(startTime, endTime) // 这个函数你自己算差值
    cmd := exec.Command("ffmpeg", 
        "-i", inputFile,
        "-ss", startTime,
        "-t", duration,
        "-c", "copy", // 复制编码,不重新压缩,快得很
        outputFile,
    )
    return cmd.Run()
}

这里有个关键点:-c copy,这个参数告诉FFmpeg别重新编码,直接复制原始数据,所以速度极快,几乎就是秒切,你不需要懂视频编码,只要记住:copy模式,不会损伤画质

这取决于你的icam365设备有没有开放文件访问权限,多数家用摄像头的NAS版(比如群晖上的icam365)支持SMB共享,或者你可以在设备管理后台找到“导出视频”选项,如果你的是纯云存储版,那就得先登录网页端,找到那段录像,点下载,这一步没法自动化,但你可以写个Go脚本定期检查新录像,做成定时任务。

你可能会问:那如果我不想覆盖原视频,只想把删掉中间段之后剩下的部分拼起来呢?比如2点到2点15分,加上2点20分到6点,这时候需要两步:先分别裁剪出两段,再用FFmpeg的concat协议合并,代码稍微复杂点,但说白了就是多跑几个命令,我写的时候踩过一个坑:不同视频编码的参数不一致,合并之前最好统一格式,不过如果你只是同一路摄像头同一天录的,通常编码一致,直接用concat就行。

再说一个更生活化的场景:你出差一周,想每天晚上把当天的录像里无聊的部分剪掉,只保留有人走动或者车经过的片段,那你甚至可以用Go结合OpenCV(通过gocv绑定库)做运动检测,自动标记出有动静的时间戳,再调用上面的裁剪函数,这样连手动选时间都省了,我在自己家的摄像头试过,效果还行,就是算力要求高——树莓派跑起来风扇呼呼转。

如果不想写代码,纯手动操作也有办法,只是你需要一个桌面端的视频编辑软件,比如剪映、Premiere、免费的LosslessCut(这个我特别推荐,因为它也是基于FFmpeg,界面简单到就三个按钮:开始时间、结束时间、导出),把icam365导出的MP4拖进去,截掉那段,导出新文件,再上传回icam365,但注意:很多icam365设备不支持直接覆盖上传,你只能先删掉旧的整段录像,再传新的,这个操作可能在网页端或者手机app的“存储管理”里:找到那个时间段的文件,点删除,然后上传你处理好的文件。

不过我得提醒你:icam365的录像文件命名通常是按时间来的,比如2025-04-10_14-00-00.mp4,如果你删了旧的,传了新的,但文件名不匹配,有的设备会把它当成一个新片段,在时间轴上显示成两段,解决办法是保持文件名一致,这样icam365会认为还是同一个文件,如果系统不让重名,那就只能接受展示成两段了——不过在播放时其实是连续的,不影响查看。

最后说个小细节:你的摄像头如果是24小时不间断录制,那单个视频文件会非常大,比如一个6小时的MP4可能有十几GB,直接用FFmpeg裁剪时,-ss参数放在-i前面还是后面,会影响速度,我试过,-ss放前面(比如ffmpeg -ss 00:15:00 -i input.mp4 ...)会让程序先跳过前面的帧再解码,快很多,不过要小心,如果不加-accurate_seek,可能会有几帧的误差,家用监控一般没那么严,差半秒问题不大。

反正我试下来,用Go写这么一套流程,从下载到处理到上传,一个脚本跑完,如果你熟悉Linux的crontab,设成每天凌晨2点执行,第二天醒来就看到清爽的录像列表,那种感觉怎么说呢——就像冰箱里乱塞的剩菜被你整理得整整齐齐,看着就舒坦。

工具呢,都是这么一点一点磨出来的,一开始我也被“删除一段视频”这个需求卡住过,后来才发现,方向对了,事儿就简单了。

icam365怎么删除一段视频?一步步教你搞定