用golang写个脚本,帮你看YCC365Plus内存卡回放视频

说实话,我一开始也被这个问题折腾过,家里装了YCC365Plus摄像头,想翻看内存卡里的回放,结果手机App里找半天没找到入口,网上的教...

说实话,我一开始也被这个问题折腾过,家里装了YCC365Plus摄像头,想翻看内存卡里的回放,结果手机App里找半天没找到入口,网上的教程又说得云里雾里,后来我干脆用golang写了个小工具,直接读卡里的视频文件,反倒把问题解决了,今天就把这个思路和代码分享给你,希望能少走点弯路。

YCC365Plus内存卡回放到底卡在哪?

先说说摄像头存视频的逻辑,YCC365Plus会把视频按时间段切成小片段,存在TF卡里,文件名通常是REC_20250315_143000.mp4这种格式,意思是2025年3月15日14点30分开始录的,你插电脑上能直接看到文件夹——/DCIM/CAM或者/RECORD目录下,一堆MP4文件按日期分好了。

但手机App要看回放,必须连摄像头Wi-Fi,通过它的流媒体协议去读,有时候网络差、App版本旧、或者卡格式不对,就死活加载不出来,这时候,直接拔卡上读卡器插电脑,反而是最稳的办法

用golang做个简单的回放查看工具

golang的osfmt包就能搞定这事儿,我把核心代码拆成几步,你照着敲就行,先建个main.go文件:

用golang写个脚本,帮你看YCC365Plus内存卡回放视频

package main
import (
    "fmt"
    "io/ioutil"
    "os"
    "path/filepath"
    "strings"
    "time"
)
func main() {
    // 1. 挂载内存卡路径(Windows就是D盘或E盘)
    cardPath := `D:\RECORD` // 根据你电脑实际路径改
    files, err := ioutil.ReadDir(cardPath)
    if err != nil {
        fmt.Println("读卡失败,检查路径或卡是否插好:", err)
        return
    }
    // 2. 过滤出mp4文件,按日期分组
    dateMap := make(map[string][]string)
    for _, f := range files {
        if !f.IsDir() && strings.HasSuffix(f.Name(), ".mp4") {
            // 文件名前8位是日期 YYYYMMDD
            datePart := f.Name()[4:12]
            dateMap[datePart] = append(dateMap[datePart], f.Name())
        }
    }
    // 3. 按日期排序,打印出有哪些天的录像
    var dates []string
    for k := range dateMap {
        dates = append(dates, k)
    }
    fmt.Println("找到以下日期的录像:")
    for _, d := range dates {
        // 把格式转成2025-03-15这样更好看
        t, _ := time.Parse("20060102", d)
        fmt.Printf("  %s (%d个文件)\n", t.Format("2006-01-02"), len(dateMap[d]))
    }
    // 4. 用户输入想看哪一天
    fmt.Print("输入你想看回放的日期(格式2006-01-02): ")
    var input string
    fmt.Scanln(&input)
    target, err := time.Parse("2006-01-02", input)
    if err != nil {
        fmt.Println("日期格式不对,重新运行程序吧")
        return
    }
    dateKey := target.Format("20060102")
    // 5. 列出该日所有视频文件及时间段
    if filesOfDay, ok := dateMap[dateKey]; ok {
        fmt.Printf("\n%s 的录像片段:\n", input)
        for _, f := range filesOfDay {
            // 文件名里包含开始时间: REC_20250315_143000 -> 14:30:00开始
            timeStr := f[17:23]
            h, m, s := timeStr[:2], timeStr[2:4], timeStr[4:6]
            fmt.Printf("  %s -> %s:%s:%s 开始\n", f, h, m, s)
        }
    } else {
        fmt.Println("当天没有录像,可能卡被覆写了或者没录")
    }
    // 6. 提示用户自己去文件夹打开
    fmt.Println("\n用电脑播放器(VLC或PotPlayer)打开这些文件就能看回放")
    fmt.Println("路径:", cardPath)
}

跑这个脚本之前,先确认三点:

  • cardPath改成你内存卡挂载的盘符(Windows下通常是E或F盘,Mac下是/Volumes/下的路径)
  • 你的卡必须是FAT32格式,exFAT有时候读不全(YCC365Plus官方文档建议FAT32,亲测NTFS兼容性差)
  • 如果卡里文件名不是REC_开头的,可能是固件版本不同,需要先ls看看实际命名规则

怎么查看文件名对应的时间段?

上面代码已经自动提取了开始时间,假设文件名叫REC_20250315_143000.mp4,那它的逻辑是:

  • 14:30:00 开始录制
  • 后面接的文件名 REC_20250315_144500.mp4 就是14:45:00开始
  • 两个文件之间没覆盖,中间可能有十几秒gap(摄像头检测到无动静会暂停)

如果想看完整轨迹,可以用ffmpeg合并这些片段——当然用golang调os/exec包也行,但我觉得直接打开文件夹用鼠标点开看更省事,你如果非要合成一个文件,加段代码:

// 用ffmpeg合并(前提是你装了ffmpeg并加到环境变量)
cmd := exec.Command("ffmpeg", "-f", "concat", "-safe", "0", "-i", "filelist.txt", "-c", "copy", "output.mp4")

不过说实话,我试过好多次,合并不太常用——真要看全天回放,心里其实只有几个时间点想确认,分段看反而快,拖动进度条也精准。

如果App死活看不了回放,这些故障排过了吗?

问题 可能原因 解决方法
App提示“内存卡异常” 卡没格式化或格式错误 用电脑把卡格式化成FAT32,分配单元大小选32KB
能看到文件但播放黑屏 视频编码是H.265,播放器不支持 换成VLC播放器(开源免费,我一直在用)
部分文件打不开 文件名乱码或卡有坏道 chkdsk /f修复磁盘错误
卡里没录像 摄像头设置里“录像计划”没开 进摄像头Web管理页 -> 存储 -> 启用全天录像

说来也搞笑,有一次我折腾了半天,最后发现是卡没插紧,YCC365Plus的卡槽有点深,要按到“咔嗒”一声才算到位。

时间戳不对?调一下系统时区

摄像头时间如果设错了,文件名里的时间就会乱,登录摄像头网页后台(浏览器输摄像头IP),找到“系统设置”->“时区”,选GMT+08:00 北京/香港/新加坡,这个坑我踩过,摄像头默认是UTC时间,文件名比我们实际时间晚8小时——所以看到REC_20250315_060000.mp4,那对应的其实是北京时间14:00:00

好在上面golang代码是直接从文件名读时间,不受摄像头设置影响,只要文件对了,时间就对了。

尾声

写完这段代码,我再也没为YCC365Plus的回放发过愁,手机App有时候靠谱,有时候抽风,但内存卡插上电脑,golang跑一遍,所有视频清清楚楚摆在眼前。

可能有人嫌麻烦——还要装Go环境、写代码?其实你直接把上面代码存成.go文件,装个Go编译器(官网下载,一路Next就行),go run main.go就出结果,那些文件名自己用眼睛看也是能看的,只是当你有几十个文件堆在一起时,脚本帮你按天筛选、按小时排序,会舒服很多。

工具嘛,趁手最重要,我这套方案,适合愿意动手、不想被厂商App绑架的人,如果你试完觉得好用,可以把它改一改,加上GUI界面——但那又是另一个故事了。

去你电脑上那个RECORD文件夹看看吧。

本文来自作者[kyadmin]投稿,不代表be365立场,如若转载,请注明出处:http://www.hljbesthome.com/fnagchan/805.html

(11)

文章推荐

发表回复

本站作者才能评论

评论列表(4条)

  • kyadmin
    kyadmin 2026-07-01

    我是be365的签约作者“kyadmin”!

  • kyadmin
    kyadmin 2026-07-01

    希望本篇文章《用golang写个脚本,帮你看YCC365Plus内存卡回放视频》能对你有所帮助!

  • kyadmin
    kyadmin 2026-07-01

    本站[be365]内容主要涵盖:be365,be365网站,be365网址,ball365体育,Be365排名

  • kyadmin
    kyadmin 2026-07-01

    本文概览:说实话,我一开始也被这个问题折腾过,家里装了YCC365Plus摄像头,想翻看内存卡里的回放,结果手机App里找半天没找到入口,网上的教...

    联系我们

    工作时间:周一至周五,9:30-18:30,节假日休息

    关注我们