发布时间:2026/7/11 1:22:33
协议之DASH介绍 DASHDynamic Adaptive Streaming over HTTP基于 HTTP 的动态自适应码流标准标准号ISO/IEC 23009-1由 MPEG 制定2012 年正式发布。与 HLS 类似核心思想是将媒体内容切分为多个小的媒体片段segment并在清单文件MPDMedia Presentation Description中声明不同比特率/分辨率的表示Representation由客户端根据网络状况动态选择。一、DASH整体结构三层结构服务端分片存储层 → MPD 描述层 → 客户端自适应逻辑层媒体分片层原始音视频编码后切割为小段独立分片Segment常见分片时长 2~10s 分片封装格式MP4fMP4 碎片 MP4、MPEG-TS。MPD 元数据层XML 格式清单文件描述所有视频 / 音频 / 字幕轨道、分片地址、码率、分辨率、时长、加密信息客户端播放的唯一入口。客户端自适应控制层播放器解析 MPD测量下载吞吐量选择最优码率分片下载、解码渲染。示例文件MPD mediaPresentationDurationPT300S minBufferTimePT2S Period durationPT300S !-- 视频轨道组 -- AdaptationSet mimeTypevideo/mp4 codecshev1.1.6.L93.90 !-- 1080P 5M码率版本 -- Representation bandwidth5000000 width1920 height1080 frameRate25 SegmentTemplate mediavideo_$Bandwidth$_$Number$.m4s initializationvideo_$Bandwidth$_init.m4s duration4000 startNumber1/ /Representation !-- 720P 2M码率版本 -- Representation bandwidth2000000 width1280 height720 frameRate25 SegmentTemplate mediavideo_$Bandwidth$_$Number$.m4s initializationvideo_$Bandwidth$_init.m4s duration4000 startNumber1/ /Representation /AdaptationSet !-- 音频轨道组 -- AdaptationSet mimeTypeaudio/mp4 codecsmp4a.40.2 Representation bandwidth128000 SegmentTemplate mediaaudio_$Number$.m4s initializationaudio_init.m4s duration4000/ /Representation /AdaptationSet /Period /MPD二、核心介绍2.1 MPD 文件最核心MPD 是标准 XML全称 Media Presentation Description描述整个视频资源的全部信息。2.1.1MPD 顶层关键节点结构XMLMPD !-- 全局配置总时长、更新周期、分片默认时长 -- Period !-- 一段连续播放内容点播1个Period直播持续新增Period -- AdaptationSet !-- 同类型媒体轨道集合视频/音频/字幕各一套AdaptationSet -- Representation !-- 单套码率规格一种分辨率、码率、帧率 -- SegmentTemplate !-- 分片命名规则、分片时长、起始序号、初始化分片 -- /SegmentTemplate /Representation /AdaptationSet /Period /MPDMPD 根节点mediaPresentationDuration点播总时长直播无固定时长minimumUpdatePeriod直播 MPD 文件刷新间隔客户端定时重新拉取 MPD 获取新分片Period播放分段单元广告、正片会拆分为多个 Period直播持续追加新 Period。AdaptationSet适配集同一媒体类型轨道集合视频 AdaptationSet所有分辨率视频轨道音频 AdaptationSet多语言、多声道音频轨道Subtitle AdaptationSet字幕轨道 支持属性mimeType、codecs、width、height、音频声道、语言标识。Representation码率版本一套独立编码规格每个代表一个清晰度档位bandwidth码率bps自适应核心判断依据width/height分辨率frameRate帧率codecs编码标识avc1、hev1、aac 等SegmentTemplate分片模板定义分片 URL 生成规则无需在 MPD 罗列每一个分片地址大幅减小 MPD 体积initialization初始化分片 URL包含 SPS/PPS 解码器参数播放器必须先下载media分片路径模板支持占位符$Number$分片序号最常用$Bandwidth$码率$Time$分片起始时间戳duration单个分片时长单位毫秒startNumber第一个分片序号2.2 媒体分片 SegmentDASH 主流使用fMP4Fragmented MP4碎片 MP4也支持 MPEG-TS 分片。2.2.1 Init segmentftyp moov ├─ mvhd # 全局媒体头部 ├─ trak # 视频/音频轨道信息 │ ├─ tkhd │ ├─ mdia │ │ ├─ mdhd │ │ ├─ hdlr │ │ └─ minf │ │ └─ stbl │ │ ├─ stsd # 编码参数 SPS/PPS/AAC 配置核心 │ │ ├─ stts │ │ ├─ stsc │ │ ├─ stsz │ │ └─ stcoInit 仅由 MP4 基础盒子构成无媒体数据 具体的属性内容可以参考MP4格式的解析。容器格式之MP4介绍-CSDN博客Init 分片全局唯一一套 Representation 只需要下载一次。2.2.2 media segment单个 media segment示意图[ftyp][moof(元数据)][mdat(视频帧音频帧)]ftyp # 文件类型标识可选很多分片省略 moof # Fragment Movie Box 分片元数据每段分片独立 ├─ mfhd # 分片序号 └─ traf # Track Fragment 轨道分片信息 ├─ tfhd # 轨道基础配置 ├─ tfdt # 分片起始时间戳 PTS └─ trun # 本分片所有帧时长、偏移、关键帧标记 mdat # Media Data Box原始裸流H.264/H.265/AAC 二进制帧1ftpy文件类型标记识别 fMP4 碎片格式很多生成工具会省略。2moof分片元数据头自适应核心每一个 media segment 自带独立 moof不需要依赖前面任何分片这是 DASH 无缝切换码率的基础。mfhdfragment 序号对应 MPD Numbertraf/trun trun 记录本分片内每一帧PTS、帧长度、是否 I 帧。播放器可以精准跳转、快速解码。tfdt分片起始绝对时间戳用于音视频同步、直播时间轴对齐。3mdat 裸数据区二进制原始音视频压缩帧无封装头由 moof 内 trun 提供偏移、长度信息分割每一帧。2.3 两种DASH工作模式2.3.1 点播模式On-Demand DASH完整视频提前分片全部分片静态存储在 CDNMPD 文件包含完整总时长、全部分片序号范围客户端可任意拖拽跳转随机访问任意分片适合短视频、长视频点播平台。2.3.2 直播模式Live DASH / DASH-IF Live实时流持续切片服务器不断生成新分片MPD 设置minimumUpdatePeriod播放器定时重新请求 MPD 拉取最新分片地址存在播放窗口timeShiftBufferDepth仅保留最近 N 秒分片过期分片自动删除无法回看久远历史低延迟扩展LL-DASHLow Latency DASH通过分片分块推送、HTTP/2、Chunked 传输将端到端延迟降至 2~5s。

相关新闻

2026/7/11 1:22:33

如何高效使用BiliDownloader:新手快速上手指南

如何高效使用BiliDownloader:新手快速上手指南 【免费下载链接】BiliDownloader BiliDownloader是一款界面精简,操作简单且高速下载的b站下载器 项目地址: https://gitcode.com/gh_mirrors/bi/BiliDownloader BiliDownloader是一款专为B站用户打造…

2026/7/11 1:17:32

6个工业级浏览器扩展重构数字工作流

1. 这不是“装插件指南”,而是一份浏览器效率重构手册你每天在浏览器里花多少时间?我粗略算过:打开新标签页、反复粘贴链接、查词翻译、填表单、比价、截图、保存网页、切换账号、屏蔽广告……这些动作加起来,保守估计每人每天至少…

2026/7/11 2:22:35

数据库的“隐形守护者”:深度解析Oracle后台进程及其核心功能

数据库的“隐形守护者”:深度解析Oracle后台进程及其核心功能一、开篇奇想:Oracle实例如果是一个人,后台进程就是他的器官二、全景协作图:一条UPDATE语句背后的进程交响乐三、后台进程的本质定义:什么是后台进程&#…

2026/7/11 2:22:35

PIC18F25K80驱动EPT-14A4005P蜂鸣器的警报系统设计

1. 项目背景与核心需求在工业控制、安防系统和智能家居等领域,可靠的声音警报功能是保障安全的关键环节。这次我们要探讨的是如何利用EPT-14A4005P压电蜂鸣器和PIC18F25K80微控制器构建一个适应性强、声音清晰的警报系统。这个组合特别适合需要中高频警报声&#xf…

2026/7/11 2:22:35

NVIDIA Nemotron智能体开发实战:从多模态处理到企业级部署

1. 先搞清楚 Nemotron 到底解决了什么实际问题如果你正在开发 AI 智能体,特别是需要处理多模态输入、长上下文推理或企业级部署的场景,NVIDIA 这次发布的 Nemotron 开放数据集和配套工具值得重点关注。它不是又一个通用大模型,而是专门为智能…

2026/7/11 2:22:35

TB67H480FNG与PIC18F46K22在精密运动控制中的应用

1. 项目概述:TB67H480FNG与PIC18F46K22的黄金组合在工业自动化和精密运动控制领域,电机驱动器和微控制器的选型往往决定了整个系统的性能上限。TB67H480FNG作为东芝(现为佳能电子)推出的高性能直流电机驱动器IC,与Micr…

2026/7/11 2:22:35

LabVIEW 状态机架构:重构温度监控系统,实现 5 大功能模块化

LabVIEW状态机架构:重构温度监控系统的5大模块化实践在工业自动化领域,温度监控系统的可靠性和可维护性直接影响生产质量与设备安全。传统基于While循环的LabVIEW程序随着功能增加往往变得臃肿难维护——数据显示、报警逻辑、数据存储等代码混杂在一起&a…

2026/7/10 5:21:51

国内大模型选型与企业级落地实战指南

我不能提供任何关于访问境外网络信息的技术方案或变通方法。根据中国法律法规和网络管理要求,所有互联网服务必须遵守国家关于网络安全、数据安全和内容安全的规定。ChatGPT及其后续版本(如所谓“GPT-5”)是由境外机构研发的大语言模型&#…

2026/7/10 2:34:05

三步实战方案:高效获取智慧教育平台电子课本PDF的完整流程

三步实战方案:高效获取智慧教育平台电子课本PDF的完整流程 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具,帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载,让您更方便地获取课本内容。 项目…

2026/7/10 6:36:15

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…