DJI RONIN 4D变0字节恢复案例

RONIN 4D这个产品听起来比较陌生,还是DJI大疆出品。没错,这是大疆进军影视级的重点明星机型。前阵子刚处理过大疆RONIN 4D的修复案例,下边这个案例是和exfat有关的老问题:文件长度变成0字节。

故障存储:希捷18T /MS Exfat文件系统。

故障现象:

图1:变为0字节的素材文件

希捷的18T单盘,做为移动硬盘使用一直用于存放素材,为了在MAC和WIN系统间切换,所以使用了exfat文件系统。某日在查找使用之前一些素材时发现很多文件变成了0字节。使用通用恢复软件扫描无果(有文件名和容量但不能播放)。

故障分析:

由于客户在发现变成0字节后就没有再做过任何操作,所以这是一个典型的EXFAT文件系统导致的问题。关于EXFAT再来啰嗦下(不在码字了直接复制之前的分析,有好奇心的请公众号搜索同类帖子):

exfat文件系统出错导致文件属性出错

   关于exfat之前说过很多次,但是近期使用此文件系统出问题的机率如此频繁,所以我再赘述下。exfat 全称是Extended File Allocation Table File System,扩展FAT文件系统,FAT就是之前FAT32中的“FAT”即文件分配表,这个表研究数据结构的人不算陌生,从字面意思就能看出,exfat并非全新的文件系统。微软开发此文件系统的目的是为了应对FAT32无法管理单个超过4G的文件,也是为了弥补NTFS日志型文件系统在闪存等小型存储设备中的不足(一个是默认的簇大小过小,一个是不断的读写日志对闪存是一种损耗)。

exfat在存储时使用两种方式,对文件进行分类:

  1. 无碎片文件,即连续存放的,通过在exfat目录项中记录首簇指针和长度来获取文件的链表。减少文件系统额外的IO时间,这个算是针对FAT32的升级。
  2. 存在碎片的文件,即不连续存放的。因为1是一种理想状态,需要各种条件满足才能达到,但是更多情况下是文件不得不以碎片的形式存在(比如经常删除或者使用空间快要达到上限),这种情况下仍然使用FAT32的FAT表进行文件的表链记录。目录项中只记录首簇指针和文件大小,通过首簇指针进行FAT表跳转,很熟悉的味道,和FAT32一毛一样。

这里不讨论exfat的优劣和传输速度,仅仅一点微软开发exfat初衷是为了解决闪存类的文件系统存储问题,为了弥补NTFS的不足,当然不能说exfat就不能用在非闪存上而是其适用最优对象是闪存类小型存储身设备(如SD卡),

很显然大容量的存储不在这个最优对象之内。

另外技术分析当文件长度变为0后,首簇指针也清0,通过文件头获取首簇指针跳转FAT表发现其FAT表链也清0了。也就是目录项->FAT表所有环节通通出错,目前尚不清楚这是个例还是仅在大型存储上存在,因为目前以我的经验至少没有发现在闪存类存在此问题,所以不好下结论,只能以“exfat的文件系统结构不适合管理大型存储“来做总结,在这里我们强烈建议如果您是视频从业者,在存储文件要用到微软文件系统时强烈建议”非闪存类的存储设备慎用exfat文件系统“避免因此导致数据出问题。

通过分析现存的正常的MOV文件可以得出结论,原始文件本身就存在片段化,有很多碎片存在。片段化的文件依靠的目录项中的首簇指针+FAT表中的表链,两者如果全部出问题,那么表链打破,此时通用类恢复软件是无能为力的(因为目录项中文件长度也变成0字节了,所以通过文件系统去恢复是没有任何希望的)。

得出结论就是:在exfat中多数出错的文件是碎片很多的。

故障处理:

此类exfat变0字节的案例处理了很多,也引发了CHS实验室工程师的思考,我们常规的方法是通过使用CHS零壹视频恢复高级版来扫描即可,这种方法极其有效,因为是通过定位视频数据块(音视频帧)来扫描和重组所以识别精确恢复效果极好,但有一个小的缺点就是处理大容量盘时可能时间略长。我们一直在寻找此类问题的快速解决方案,精确的模型能实现精确定位但是带来了时间成本过高。

经过一次次的尝试,通过对损坏情况的仔细分析,提出一种针对exfat清0即可以快速扫描还可以提高质量的算法,这个算法借鉴于当前的云存储模型,通过对故障特征输入让其有一定学习能力我们命名为“CHSFS级算法”。通过几次案例的恢复,此算法可以成功应对一部分exfat变0字节的情况。目前在CHS零壹视频恢复影视版内测程序中增加了这个功能,后期我们会根据情况尽最大努力不断优化算法!

STEP1:运行CHS零壹视频恢复影视版选择18T存储设备,点击右键扫描大类“阿莱影视”(目前影视版暂时没有添加DJI RONIN 4D由于其和阿莱结构相近所以暂选ARRI),扫描小类选择“mov”,然后点击下方“高级设置”。

STEP2:高级设置->其它设置->勾选”开启CHS FS级算法”然后点击下方确定进行扫描,同时默认会开启”校验视频文件”对有问题的文件进行筛选。

STEP3:等待扫描完成,由于存储空间较大,需要时间略长,经过对比开启了“CHS FS级算法”的扫描速度要高于常规算法3-4倍左右,大量节省了时间。

STEP4:查看数据,经过扫描发现了大约11T多的有效数据,程序会列出摄像机型号、视频编码、时长、文件长度等参数,经过客户对比成功找到了变为0字节的素材,至此数据恢复工作完成。

这就是大疆DJI RONIN 4D摄像机mov文件变0字节的恢复方法,大家在遇到exfat变0字节的恢复问题时(所有文件不仅仅是视频类像数据库、特殊文件都可以),可以和我们联系!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/740874.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何借助CRM系统获得直观的业务洞察?CRM系统图表视图解析!

Zoho CRM管理系统在优化客户体验方面持续发力,新年新UI,一波新功能正在赶来的路上。今天要介绍的新UI功能在正式推出之前,已经通过早鸟申请的方式给部分国际版用户尝过鲜了。Zoho CRM即将推出图表视图,将原始数据转换为直观的图表…

低代码开发平台-企业级可视化快速开发工具

一、你们是否也遇到了以下问题 (1)作为传统型的软件公司,你们是否也遇到以下困扰: (2)作为大型企业软件开发部,你们是否也遇到以下困扰: 二、低代码平台介绍 MSPF快速开发平台是一…

​如何使用 ArcGIS Pro 分析爆炸波及建筑

假设在某栋建筑内发生了爆炸,需要根据爆炸的范围分析出来波及的建筑,对于这一需求,我们可以通过ArcGIS Pro来实现,这里为大家介绍一下分析的方法,希望能对你有所帮助。 数据来源 教程所使用的数据是从水经微图中下载…

30个Linux性能问题诊断思路

文章目录 在Linux系统性能问题诊断过程中,有许多关键的检查点和技术可以用来识别潜在的问题源头。以下是30个Linux性能问题诊断思路的概览,包括但不限于: 系统负载监控: 使用uptime查看当前系统运行时间、在线用户数以及1/5/15分钟…

MathType2024官方原版补丁包下载

MathType 7是一款功能强大的数学公式编辑器,广泛应用于各种文档和演示中,用于创建和编辑复杂的数学公式。下面我将详细介绍MathType 7的主要功能和使用方法,以及一些使用技巧。 一、主要功能 公式编辑:MathType 7提供了一个直观…

VS 调试Hololens 2工程报错 有未经处理的异常: Microsoft C++ 异常:

原因是unity 少安装了XR工具包 安装完后重新用unity打包,然后vs打开打包出来的工程,电脑和眼镜用usb连接,直接运行调试就可以了

word中图片位置问题(后续遇到问题再更新)

问题1:图片插入后显示不全 具体表现为:复制黏贴、或者插入图片后,出现插入的图片显示不全,或者不显示。 例如: 这是因为:图片被设定了固定行距 解决方案:ctrl1 效果: 问题2&am…

Elasticsearch进阶篇(一):Elasticsearch写入原理深入详解

Elasticsearch写入原理深入详解 1. ES相关问题 引用官方文档地址:分片内部原理 | Elasticsearch: 权威指南 | Elastic 为什么Elasticsarch是近实时,而不是准实时? 为什么文档的CRUD (创建-读取-更新-删除) 操作是实时的? Elast…

FineReport报表如何在单元格中显示本地图片(图片地址已存储到MySQL数据库中)

帆软帮助文档对应查看链接:https://help.fanruan.com/finereport/doc-view-854.html?source4#需求:在设计FineReport报表时,想在单元格中显示图书信息对应的图片,图片路径已存储到MySQL数据库中 一、查询数据库 查询MySQL中图书…

为什么defineProps宏函数不需要从vue中import导入?

前言 我们每天写vue代码时都在用defineProps,但是你有没有思考过下面这些问题。为什么defineProps不需要import导入?为什么不能在非setup顶层使用defineProps?defineProps是如何将声明的 props 自动暴露给模板? 举几个例子 我们…

【算法面试题】-06

智能成绩表 题目描述 小明来到学校当老师&#xff0c;需要将学生按考试总分或单科分数进行排名&#xff0c;你能帮帮他吗&#xff1f; 输入描述 第 1 行输入两个整数&#xff0c;学生人数 n 和科目数量 m。 0 < n < 100 0 < m < 10 第 2 行输入 m 个科目名称&…

探索性数据分析EDA的数据可视化

大家好&#xff0c;数据可视化是探索性数据分析的重要组成部分&#xff0c;因为它有助于分析和可视化数据&#xff0c;以获得对数据分布、变量之间的关系和潜在异常值的启示性见解。Python具有丰富的库&#xff0c;可以快速高效地创建可视化。 在Python中&#xff0c;通常使用…

MIT 6.S081---Lab: locks

Memory allocator (moderate) 修改kernel/kalloc.c&#xff0c;修改kmem声明并定义结构体数组&#xff1a; 修改kernel/kalloc.c中的kinit函数&#xff0c;对kmemList进行初始化&#xff1a; 修改kernel/kalloc.c中的kfree函数&#xff0c;获取当前的cpuid并将释放的内存添加到…

C语言知识点总结00-C语言知识点目录

专栏主页&#xff1a; 数据结构算法程序设计基础C语言知识点总结https://blog.csdn.net/seeker1994/category_12585732.html 最优算法100例00-最优算法100例目录 数据结构知识点总结00-知识点目录 ...... C语言知识点目录 程序设计基础C语言知识点总结 1 概述 2 数…

CSS 【详解】响应式布局(明天内容)

响应式布局&#xff1a; 同一页面在不同的屏幕上有不同的布局&#xff0c;即一套代码自适应不同的屏幕。 常用 单位&#xff1a; 像素&#xff08;px&#xff09;&#xff1a;像素是最常用的长度单位&#xff0c;它表示屏幕上的一个物理像素点。例如&#xff0c;width: 200px; …

Java学习笔记------常用API(二)

Object 无有参构造 public Object() 空参构造 成员方法&#xff1a; public String toString() 返回对象的字符串表示 public boolean equals(object obj) 比较两个对象是否相等 Object默认用号比较地址值&#xff0c;需要重写才能比较属性值 protected O…

使用Anaconda创建Python指定版本的虚拟环境

由于工作的需要和学习的需要&#xff0c;需要创建不同Python版本的虚拟环境。 比如zdppy的框架&#xff0c;主要支持的是Python3.8的版本&#xff0c;但是工作中FastAPI主要使用的是3.11的版本&#xff0c;所以本地需要两套Python环境。 决定使用Anaconda虚拟环境管理的能力&…

【小白学机器学习8】统计里的自由度DF=degree of freedom, 以及关于df=n-k, df=n-k-1, df=n-1 等自由度公式

目录 1 自由度 /degree of freedom / df 1.1 物理学的自由度 1.2 数学里的自由度 1.2.1 数学里的自由度 1.2.2 用线性代数来理解自由度&#xff08;需要补充&#xff09; 1.2.3 统计里的自由度 1.3 统计学里自由度的定义 2 不同对象的自由度 2.1 纯公式的自由度&#…

xss.haozi.me靶场“0x0B-0x12”通关教程

君衍. 一、0x0B 实体编码绕过二、0x0C script绕过三、0x0D 注释绕过四、0X0E ſ符号绕过五、0x0F 编码解码六、0x10 直接执行七、0x11 闭合绕过八、0x12 闭合绕过 一、0x0B 实体编码绕过 我们首先构造payload进行测试&#xff1a; 这里我们可以看到全部转为了大写&#xff0c…

2024年3月份实时获取地图边界数据方法,省市区县街道多级联动【附实时geoJson数据下载】

首先&#xff0c;来看下效果图 在线体验地址&#xff1a;https://geojson.hxkj.vip&#xff0c;并提供实时geoJson数据文件下载 可下载的数据包含省级geojson行政边界数据、市级geojson行政边界数据、区/县级geojson行政边界数据、省市区县街道行政编码四级联动数据&#xff0…