当前位置: 首页 > news >正文

杂牌记录仪TS视频流恢复方法

大多数的记录仪都采用了MP4/MOV文件方案,极少数的可能在用AVI文件,极极少数的在用TS文件方案。很多人可能不太解TS文件,这是一种古老的视频文件结构,下边这个案例我们来看下TS视频文件的恢复方法。

故障存储:8G存储卡/fat32文件系统

故障现象:

客户无法提供数据丢失的原因,只要求恢复指定时间2023-05-15  12:00-15:00之间的视频文件。

故障分析:

8G的卡不算大,WINHEX解析后可以看到删除空间尚有4.7G。

图1:卡的空间使用率

从客户提供的信息,卡中为MP4文件,但是WINHEX对比发现,所谓的MP4文件只是伪装了的TS而已。从下图中一个删除的.TS文件就能看出端倪,基本上能判断出记录仪管理程序的文件生成流程:

  1. 采集信息数字化->2、文件以TS流规范进行格式化写入->3、生成文件名改扩展名为mp4(估计第2步使用了TS某种通用打包方案默认扩展名为.TS)

之所以为什么要改.ts为.mp4,猜测大概率是为了保证兼容性,比如有些播放器虽然支持ts解码但是却过滤了.ts。

有必要科普下TS流,这是一位古董级的视频格式,已经可以跻身博物馆的那种!

transport stream(传送流)简称TS流,其设计初衷是为了服务于数字电视机顶盒,在那个刚普及数字电视的时代,设计理念是小块传输(为了应对可怜的带宽)、终端校验(有问题直接丢包不影响下一个包的解析),在这些理念加持下,TS流变成了一个固定长度,切割视频、音频数据分片传输的结构。这种结构和现在主流的MP4有很大的差异,但是却很好的满足了“窄带”下的数字信息的传输要求。所以在一段时间内日系不少厂商主推此格式,在TS流的基础上衍生了MTS、MPEG、M2T等文件,不过随着网络的发展,TS流最终是昙花一现,现在主流的视频格式中已经“难觅芳踪”,虽然TS背靠ITU。坐了冷板凳的TS流,印证了那句话”时代在抛弃你的时候连个招呼也不会打“!

图2:TS流“伪装”成MP4文件

故障处理:

TS流由于使用小块固定长度、不记录时间信息、冗余较大等各种原因,导致碎片定位和重组时的问题很多,碎片定位时容易误判断,因为其固定长的原因。而在重组时也不好判断上下碎片的从属关系,种种特征导致TS流想要用程序去定位和重组的话难度较大,经常会出现窜帧的问题,这些问题的解决更多的还是靠经验判断,所以目前CHS使用的是程序定位+手工重组的恢复方案。

使用”TS流解析工具”做为辅助,以簇为单位定位TS流,如下图:

图3:TS流辅助小程序

辅助程序只能定位,重组还得靠经验判断再选择碎片进行合成,这个过程比较消耗时间,经过一天多的处理,成功的恢复了客户需要的指定时间的数据。

这就是杂牌记录仪TS的恢复方法,大家在遇到此类问题时,可以和我们联系!

http://www.lryc.cn/news/360651.html

相关文章:

  • 十_信号7-信号集
  • GPT-4o
  • 32位与64位程序下函数调用的异同——计科学习中缺失的内容
  • Python爬虫实战(实战篇)—16获取【百度热搜】数据—写入Ecel(附完整代码)
  • js切割数组的两种方法slice(),splice()
  • 【计算机毕设】基于SpringBoot的医院管理系统设计与实现 - 源码免费(私信领取)
  • 导线防碰撞警示灯:高压线路安全保障
  • 【LeetCode 77. 组合】
  • element-ui组件table去除下方滚动条,实现鼠标左右拖拽移动表格
  • 【C++】list的使用(上)
  • 【代码随想录训练营】【Day 37】【贪心-4】| Leetcode 840, 406, 452
  • concat是什么?前端开发者必须掌握的数组拼接利器
  • WHAT - 容器化系列(一)
  • QT7_视频知识点笔记_67_项目练习(页面以及对话框的切换,自定义数据类型,DB数据库类的自定义及使用)
  • windows10系统64位安装delphiXE11.2完整教程
  • 09.责任链模式
  • Amazon云计算AWS(一)
  • 十_信号4-SIGCHLD信号
  • HCIP的学习(27)
  • 6. MySQL 查询、去重、别名
  • Oracle导出clob字段到csv
  • C++无锁(lock free)队列moodycamel::ConcurrentQueue
  • python办公自动化——(二)替换PPT文档中图形数据-柱图
  • vue不同页面切换的方式(Vue动态组件)
  • Linux下Qt Creator无法输入中文(已解决)
  • Codeforces 提交Java代码(自己处理输入输出)
  • 剖析vue中nextTick源码
  • SSM牙科诊所管理系统-计算机毕业设计源码98077
  • 【C++进阶】深入STL之string:模拟实现走进C++字符串的世界
  • go语言linux安装