tplink安防监控raw文件转码合成mp4的方法

Tplink(深圳普联)专业的网络设备生产商,属于安防监控市场的后来者。Tplink的安防产品恢复了很多,其嵌入式文件系统也一直迭代更新。今天要说的案例比较特殊,其不仅仅要求恢复,还要求能解析出音频并且要求画面和声音实现“同步”。我们来看看这个特殊的恢复案例:

故障存储:

TOSHIBA DT02ABA400VKQ0H0R

故障现象:

这台TPLINK录像机做过初始化操作,客户需要指定时间段的视频,经过使用CHS零壹视频恢复程序监控版扫描,已经成功保存了数据。但是由于情况特殊涉及到取证问题,客户提出两个要求:

  1. 能否恢复音频
  2. 能否保证画面和声音的“同步”

客户提出这两个要求,是因为其查看设备时发现,通过手机APP可以下载扩展名为mp4的文件,播放时画面和声音都有的。这说明摄像头具备音频采集功能且录像机也具备音频流接收的功能,基于此,硬件上采集音频的条件是满足的。

故障分析:

从恢复角度来讲CHS零壹视频恢复程序监控版已经很好的履行了自己的职责:“在被初始化的大容量存储设备上找到指定时间的视频文件”。客户的两个请求实则已经超出了数据恢复的范畴,因为这个涉及到的是把RAW视频和音频数据进行转码和打包成mp4文件。由于各个厂商的转码/打包都属于内部算法涉及到商业机密,在早期除了大华和海康提供了转换的工具(某段时间甚至开放过API),但是随着竞争的激烈,这些都统统不存在了。之后做为头部厂商的海康、大华、天地伟业开发了各自的RAW播放器,这种播放器可以直接解码RAW视频和音频,这样就实现了“画面”和“声音”的同步,但是让人遗憾的是除了头部厂商之外其它安防厂商并不提供RAW播放器,这个名单包含tplink!

想要实现“画面”和“声音”的同步,从现有的恢复、修复视频、音频经验能得出结论:

  1. RAW视频编码(这里是265)需要转码成HEVC编码,这两种编码虽然本质上相同,但分属两个不同组织制定,为了符合相应的规范是很有必要转码的。
  2. RAW音频编码,这个分为两种一种是压缩编码(如aac),一种是高清编码(如sowt)。同样为了符合相应的规范是很有必要转码的。
  3. 同步问题,所谓的同步,是在解码器解码时在解一帧画面时同时解码一帧或多帧音频。也就是说同一个mp4文件中至少有两个轨道,即视频和音频轨道,这两个轨道是底层轨道,最终需要汇集到一个逻辑轨道,保证同步效果。

   当然这个又涉及到不同速率调整,以及对PCR时间的转换,MP4中有DTS和PTS两个时间概念也是需要考虑的。

  1. 需要对mp4/mov/3GP等qt类视频文件结构极其熟悉才可以做到心中有底,很多人可能对mp4文件有误解,认为mp4是一类视频格式,实际上mp4仅仅是一个容器而已,因为mp4可以把不同的视频和音频编码打包到一个文件,就像一个瓶子一样,至于瓶子中放什么东西,mp4并不关注,只要符合它要求的就是合法的(比如瓶子里灌装按卫生标准去生产的饮料就可以上市销售),合法的编码就可以得到播放器(比如基于ffmpeg的播放器或者编辑软件)的解码,所以我们要做的就是努力去把所有一切做到符合mp4规范。

上边罗列这么多条足以说明转码和打包的难度之大,所以前期我们曾经建议客户和厂商联系来获取相应的技术支持,但是很遗憾厂商不提供这样的服务。经过客户不断和我们沟通,做为数据恢复从业者深感责任重大,本着遇到困难至少应该尝试着去解决的原则,我们接下了这个烫手的山芋。

故障处理:

通过客户传来的mp4文件确定了转码后的视频编码为HVC1,音频则为A-law(一种准高清PCM类编码)。

图1:mp4文件的音视频编码

STEP1:先把指定时间段的视频文件定位到并保存,做好转换的准备。

STEP2:编写一个“CHS安防监控MP4合成程序TPLINK版”的程序,主要处理如下问题:

  1. 通过一个好的mp4样本文件得到相应的参数信息
  2. 把安防RAW音视频转换成对应的HVC1和PCM,需要分离RAW音频和视频块,然后再转码
  3. 最后合成mp4文件

程序以文件为单位进行一个个转换和合成的操作(如图2)。

图2:CHS安防监控MP4合成程序TPLINK版 合成程序

STEP3:查看合成文件,可以看到文件的音频和视频编码都已经转码成功,至此转码/合成工作完成,总共6条视频,合成后达到画面和声音同步的完美效果,最后和客户核对数据,其对结果极其满意。

图3:共计转码/合成6条MP4视频

图4:合成MP4文件的视频编码

图5:合成MP4文件的音频编码

在完成了转码/合成工作后,思考一个问题“是否所有的安防监控产品都可以如何这般处理?”,这个问题至少理论上是可行的。实际上操作起来可能难度大一些,就以TPLINK为例,型号不同可能厂家用的转码/合成方案会有差异,所以不具备通用性,但是可以模块化处理,比如TPLINK的做成不同的型号对应相应的转码/合成模块,当然这个工作量就相当大了。

这就是tplink安防视频raw音视频转码合并mp4的方法,大家在遇到此类问题时,可以和我们联系!

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

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

相关文章

zynq qspi启动、无SD卡、格式化分区emmc、调试全过程

1 背景 使用黑金开发板,全部开发流程避开使用SD卡调试,zynq开发过程中很多资料都是基于SD启动。这样就对新板卡调试带来了一定的困难,因为新板卡基本上没有设计SD卡。这里就一步一步实现qspi启动内核,格式化分区emmc,…

阿里拍卖资产推荐算法 召回进展年中总结

阿里拍卖是阿里巴巴旗下拍卖平台,覆盖房产、机动车、土地、债权等类目。召回策略作为推荐场景的第一环,决定了整个推荐系统的上限,目前包含了包括向量召回、I2I、LBS2I、C2I等多路召回。召回的核心目标是尽可能的返回用户所有可能会感兴趣的商…

DataOps真能“降本增效”?

在各行各业中,越来越多的公司开始重视收集数据,并寻找创新方法来获得真实可行的商业成果,并且愿意投入大量时间和金钱来实现这一目标。 据IDC称,数据和分析软件及云服务市场规模在 2021 年达到了 900 亿美元,随着企业继…

CSDN自定义模块全攻略,DIY系统原有样式打造专属个性化主页!

个人主页:学习前端的小z 个人专栏:HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论! 文章目录 💯如何通过HTMLCSS自定义模板diy出自己的个性化csdn主页&#x…

明日开考!2024年全国青少年人工智能创新挑战赛及真题

Scratch实验室2024-06-21讯 2024年全国青少年人工智能创新挑战赛【编程创作与信息学专项赛】第二轮将在明天(2024年6月22日)举行,请参加的同学积极备考,参加选拔赛的青少年需通过“人工智能创新挑战赛”专题页面点击“参加选拔赛”…

RocketMQ快速入门:集成spring, springboot实现各类消息消费(七)附带源码

0. 引言 rocketmq支持两种消费模式&#xff1a;pull和push&#xff0c;在实际开发中这两种模式分别是如何实现的呢&#xff0c;在spring框架和springboot框架中集成有什么差异&#xff1f;今天我们一起来探究这两个问题。 1. java client实现消息消费 1、添加依赖 <depen…

正定矩阵(Positive Definite Matrix)

正定矩阵&#xff08;Positive Definite Matrix&#xff09; flyfish Positive&#xff08;正数&#xff09; &#xff1a;在数学和统计学中&#xff0c;通常指大于零的数。在矩阵理论中&#xff0c;一个矩阵被称为正定&#xff0c;是因为它的性质类似于正数的性质。 Defini…

裁员裁到大动脉,是一种什么体验!

大家好啊&#xff0c;我是董董灿。 降本增效是每个当老板的人都喜欢挂在嘴边的口头禅&#xff0c;尤其是行业不景气&#xff0c;公司发展遇到瓶颈的时候。 大部分公司降本增效的手段其实非常相似&#xff0c;比较容易实施的手段也就那几种。 要么搞设备自动化和流程自动化&a…

Anthropic 发布新AI模型Claude 3.5 Sonnet

&#x1f989; AI新闻 &#x1f680; Anthropic 发布新AI模型Claude 3.5 Sonnet 摘要&#xff1a;Anthropic 发布了其最强 AI 模型 Claude 3.5 Sonnet。速度更快、处理细微差别和幽默的能力提升&#xff0c;且支持编写、编辑和执行代码。该模型通过公司网站、iPhone 应用及 A…

数据库系统概念(第八周 第一堂)(规范化关系数据库设计)(强推学习!!!)

目录 前言 E-R模型质量低的深层原因 数据依赖 函数依赖 主属性/非主属性 逻辑蕴含与闭包 Armstrongs Axiom 求解F闭包算法 求解属性集闭包算法 属性集闭包的作用 候选码求解理论和算法 候选码求解理论 无关属性 检验方法 正则覆盖 关系模式的设计 关系…

【深度学习】GPT-2,Language Models are Unsupervised Multitask Learners,【语言建模】

论文&#xff1a;https://d4mucfpksywv.cloudfront.net/better-language-models/language_models_are_unsupervised_multitask_learners.pdf 文章目录 摘要引言方法2.1 训练数据集2.2 输入表示2.3 模型3. 实验3.1 语言建模3.2 Children’s Book Test3.3 LAMBADA3.4 Winograd Sc…

自动驾驶学习-车载摄像头ISP(2)

背景 智能驾驶ISP&#xff08;Image Signal Processor&#xff0c;图像信号处理器&#xff09;在自动驾驶和辅助驾驶系统中扮演着至关重要的角色。 典型的ISP通常会对摄像头输出的RAW数据先做黑电平矫正&#xff08;BLC&#xff09;、坏点矫正&#xff08;DPC&#xff09;、数…

如何DIY出专属个性化的CSDN主页?一招教你搞定!

个人主页&#xff1a;学习前端的小z 个人专栏&#xff1a;HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结&#xff0c;欢迎大家在评论区交流讨论&#xff01; 文章目录 &#x1f4af;如何通过HTMLCSS自定义模板diy出自己的个性化csdn主页&#x…

SD3发布,送你3个ComfyUI工作流

大家好&#xff0c;我是每天分享AI应用的萤火君&#xff01; 这几天AI绘画界最轰动的消息莫过于Stable Diffusion 3&#xff08;简称SD3&#xff09;的发布。SD3是一个多模态的 Diffusion Transformer 模型&#xff0c;其在图像质量、排版、复杂提示理解和资源效率方面具有显著…

ADC常用的十大滤波算法(C语言)

一、限幅滤波法 1、方法&#xff1a; 根据经验判断两次采样允许的最大偏差值&#xff08;设为A&#xff09; 每次检测到新值时判断&#xff1a; a. 如果本次值与上次值之差<A&#xff0c;则本次值有效 b. 如果本次值与上次值之差>A&#xff0c;则本次值无效&#xf…

QT MQTT (二)编译与集成

一、QT MQTT 提供 MQTT 客户端服务的 Qt 专用库基于标准化发布 / 订阅协议&#xff0c;用于在设备和组件之间可靠地共享数据。MQTT 是为保证状态正确性、满足高安全标准和交换最小数据而设计的协议&#xff0c;因此被广泛应用于各种分布式系统和物联网解决方案中。 Qt开发MQT…

【Oracle篇】Oracle数据库坏块处理:rman修复坏块实践与案例分析(第七篇,总共八篇)

&#x1f4ab;《博主介绍》&#xff1a;✨又是一天没白过&#xff0c;我是奈斯&#xff0c;DBA一名✨ &#x1f4ab;《擅长领域》&#xff1a;✌️擅长Oracle、MySQL、SQLserver、阿里云AnalyticDB for MySQL(分布式数据仓库)、Linux&#xff0c;也在扩展大数据方向的知识面✌️…

git配置ssh key

一、生成ssh公钥和私钥对 打开终端&#xff0c;输入命令&#xff0c;-C 后是git邮箱&#xff0c;在 Enter file in which to save the key (/home/my/.ssh/id_rsa): 后可以输入公钥和私钥对保存路径及文件名&#xff0c;默认是 /home/my/.ssh/id_rsa&#xff0c;其它的全部按回…

从0开始C++(五):友元函数运算符重载

友元函数 介绍 C中的友元函数是一种特殊的函数&#xff0c;它可以访问和操作类的私有成员和保护成员。友元函数可以在类的内部或外部声明和定义&#xff0c;但在其声明和定义中需要使用关键字 friend 来标识。友元函数可以是全局函数&#xff0c;也可以是其他类的成员函数。 …

Web APIs--Dom获取属性操作

目录 1.DOM&#xff08;操作网页内容、用户交互&#xff09; 2.DOM对象获取&#xff08;querySelect(‘’)、querySelectAll(‘’)&#xff09; 总结&#xff1a; 3.操作元素内容&#xff08;修改元素的文本更换内容&#xff09; 1. 元素innerText 属性 2.元素.innerHTML…