当前位置: 首页 > 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的恢复方法,大家在遇到此类问题时,可以和我们联系!

相关文章:

  • PHPstudy情况下上传图片马需要的.htaccess文件
  • MYSQL视图
  • MySQL嵌套,别名,分组查询
  • 安全基础二
  • L9110S电机控制模块
  • 书生·浦语大模型全链路开源体系-笔记作业2
  • 设计模式——结构型模式——责任链模式
  • vue 引用第三方库 Swpier轮播图
  • Low Memory Killer in Android
  • Python 学习笔记【1】
  • 内网渗透-在HTTP协议层面绕过WAF
  • 【学习笔记】计算机组成原理(九+十)
  • c++------类和对象(下)包含了this指针、构造函数、析构函数、拷贝构造等
  • 联想R9000p游戏本常用快捷键
  • Next前端是什么
  • 【Leetcode】104. 二叉树的最大深度
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • golang 发送GET和POST示例
  • Javascript弹出层-初探
  • Java教程_软件开发基础
  • LeetCode29.两数相除 JavaScript
  • Median of Two Sorted Arrays
  • MQ框架的比较
  • React as a UI Runtime(五、列表)
  • socket.io+express实现聊天室的思考(三)
  • vue的全局变量和全局拦截请求器
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 力扣(LeetCode)357
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 我看到的前端
  • 移动端解决方案学习记录
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • ​​​【收录 Hello 算法】10.4 哈希优化策略
  • ​Java基础复习笔记 第16章:网络编程
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • #13 yum、编译安装与sed命令的使用
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • (13):Silverlight 2 数据与通信之WebRequest
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (HAL库版)freeRTOS移植STMF103
  • (定时器/计数器)中断系统(详解与使用)
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (力扣)循环队列的实现与详解(C语言)
  • (十)c52学习之旅-定时器实验
  • (四)图像的%2线性拉伸
  • (转)h264中avc和flv数据的解析
  • (转)IOS中获取各种文件的目录路径的方法
  • .net core 6 集成和使用 mongodb
  • .Net Remoting(分离服务程序实现) - Part.3
  • .net 反编译_.net反编译的相关问题
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...