热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

DASHMPD文件内容解析

拿个MPD内容举个例子:

拿个MPD内容举个例子:






RVZFTlRJRD0yNUY0LFZFUlNJT049MTUsRkxBRz0wLFNUQVJUVElNRT1FNkJDMTE1OTU3LERVUkFUSU9OPTUyMzUsU1RBVFVTPTQsREVTQ180RD02NDY1NzUwRDQ4NjE3NzYxNjk2OTIwNDY2OTc2NjUyRDMwNDIwNTQyNjU3MjY1Njk3NDIwNjZGQzcyMjA2NTY5NkUyMDUzNzA2OTY1NkMzRjhBNDM3MjY5NkQ2NTJENTM2NTcyNjk2NTJDMjA1NTUzNDEyMDMyMzAzMTM2OEE0MTZDNzQ2NTcyNzM2NjcyNjU2OTY3NjE2MjY1M0EyMDYxNjIyMDMxMzIsREVTQ19CQj0xNyxERVNDX0JDPTU3

<AdaptationSet id&#61;"1" group&#61;"1" contentType&#61;"audio" segmentAlignment&#61;"true" audioSamplingRate&#61;"48000" mimeType&#61;"audio/mp4" codecs&#61;"mp4a.40.2" startWithSAP&#61;"1">














<SegmentTemplate timescale&#61;"48000" initialization&#61;"KabelEins_SD-$RepresentationID$.dash" media&#61;"KabelEins_SD-$RepresentationID$-$Time$.dash">








<AdaptationSet id&#61;"2" group&#61;"2" contentType&#61;"video" par&#61;"16:9" minBandwidth&#61;"576400" maxBandwidth&#61;"2276800" maxWidth&#61;"960" maxHeight&#61;"540" minFrameRate&#61;"25" maxFrameRate&#61;"50" segmentAlignment&#61;"true" sar&#61;"1:1" mimeType&#61;"video/mp4" startWithSAP&#61;"1">
































蓝色部分是EIT信息&#xff0c;base64解密之后息的是&#xff1a;EVENTID&#61;25F4,VERSION&#61;15,FLAG&#61;0,STARTTIME&#61;E6BC115957,DURATION&#61;5235,STATUS&#61;4,DESC_4D&#61;6465750D48617761696920466976652D3042054265726569742066FC722065696E20537069656C3F8A4372696D652D53657269652C2055534120323031368A416C7465727366726569676162653A206162203132,DESC_BB&#61;17,DESC_BC&#61;57 

红色部分是加密信息&#xff0c;里面有playready 和 widevine 加密default_KID&#61;"C8EFFF27-6E1A-D9E6-693F-3E0B64C8EFEC"  kid信息。

紫色部分是音频分片信息 绿色是视频信息

来看音频信息&#xff1a;

<SegmentTemplate timescale&#61;"48000" initialization&#61;"KabelEins_SD-$RepresentationID$.dash" media&#61;"KabelEins_SD-$RepresentationID$-$Time$.dash">






timescale 时间精度&#xff0c;也就是1秒的分辨率

initialization 初始化分片格式 KabelEins_SD-$RepresentationID$.dash 根据后面的RepresentationID audio_129713_deu&#61;129200可知道该音频的初始化分片为 KabelEins_SD-audio_129713_deu&#61;129200.dash 

media 媒体文件名称KabelEins_SD-$RepresentationID$-$Time$.dash 根据后面的RepresentationID  audio_129713_deu&#61;129200和 SegmentTimeline 值可以知道实际分片&#xff1a;



t 开始时间 d duration 实际分片时间是 d/timscale &#61; 8s &#xff0c;r repeat &#xff0c;那么当前mpd文件 有三个分片 time 为&#xff1a;

76646543257932/76646543257932&#43;384000&#61;76646543641932/76646543257932&#43;384000&#43;384000&#61;76646544025932

KabelEins_SD-audio_129713_deu&#61;129200-76646543257932.dash

KabelEins_SD-audio_129713_deu&#61;129200-76646543641932.dash

KabelEins_SD-audio_129713_deu&#61;129200-76646544025932.dash

同理可以推出视频信息&#xff0c;那么针对该MPD内容我们可以得出如下的信息&#xff1a;

1.dash流里有eit信息

2.dash流为加密流含有两种加密 playready 和 widevine

3.音频流只有一个格式分片 初始化分片&#xff08;主要用于解码器预载&#xff09;KabelEins_SD-audio_129713_deu&#61;129200.dash  音频分片有三个 KabelEins_SD-audio_129713_deu&#61;129200-76646543257932.dash/KabelEins_SD-audio_129713_deu&#61;129200-76646543641932.dash/KabelEins_SD-audio_129713_deu&#61;129200-76646544025932.dash 每个分片时长8s

4.视频流有多个带宽&#xff0c;分片时长为8s &#xff1a;

初始化分片 KabelEins_SD-video&#61;576400.dash 分片信息 KabelEins_SD-video&#61;576400-958081790714.dash/KabelEins_SD-video&#61;576400-958081795514.dash/KabelEins_SD-video&#61;576400-958081800314.dash/KabelEins_SD-video&#61;576400-958081805114.dash/KabelEins_SD-video&#61;576400-958081809914.dash

初始化分片 KabelEins_SD-video&#61;1138400.dash 分片信息 KabelEins_SD-video&#61;1138400-958081790714.dash/KabelEins_SD-video&#61;1138400-958081795514.dash/KabelEins_SD-video&#61;1138400-958081800314.dash/KabelEins_SD-video&#61;1138400-958081805114.dash /KabelEins_SD-video&#61;576400-958081809914.dash

初始化分片 KabelEins_SD-video&#61;2276800.dash 分片信息 KabelEins_SD-video&#61;2276800-958081790714.dash/KabelEins_SD-video&#61;2276800-958081795514.dash/KabelEins_SD-video&#61;2276800-958081800314.dash/KabelEins_SD-video&#61;2276800-958081805114.dash/KabelEins_SD-video&#61;576400-958081809914.dash


推荐阅读
  • 使用freemaker生成Java代码的步骤及示例代码
    本文介绍了使用freemaker这个jar包生成Java代码的步骤,通过提前编辑好的模板,可以避免写重复代码。首先需要在springboot的pom.xml文件中加入freemaker的依赖包。然后编写模板,定义要生成的Java类的属性和方法。最后编写生成代码的类,通过加载模板文件和数据模型,生成Java代码文件。本文提供了示例代码,并展示了文件目录结构。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • Android系统移植与调试之如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏
    本文介绍了如何修改Android设备状态条上音量加减键在横竖屏切换时的显示与隐藏。通过修改系统文件system_bar.xml实现了该功能,并分享了解决思路和经验。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • Whatsthedifferencebetweento_aandto_ary?to_a和to_ary有什么区别? ... [详细]
  • 本文讨论了如何使用Web.Config进行自定义配置节的配置转换。作者提到,他将msbuild设置为详细模式,但转换却忽略了带有替换转换的自定义部分的存在。 ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • 本文分析了Wince程序内存和存储内存的分布及作用。Wince内存包括系统内存、对象存储和程序内存,其中系统内存占用了一部分SDRAM,而剩下的30M为程序内存和存储内存。对象存储是嵌入式wince操作系统中的一个新概念,常用于消费电子设备中。此外,文章还介绍了主电源和后备电池在操作系统中的作用。 ... [详细]
  • 本文介绍了在Android Studio中使用命令行build gradle的方法,并解决了一些常见问题,包括手动配置gradle环境变量和解决External Native Build Issues的方法。同时提供了相关参考文章链接。 ... [详细]
  • Question该提问来源于开源项目:react-native-device-info/react-native-device-info ... [详细]
author-avatar
俊铭士弘政翰
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有