资讯专栏INFORMATION COLUMN

Media Source Extension官方文档(第一部分)

wangbinke / 2520人阅读

摘要:特性描述了实例允许的二进制流格式。一个对象必须支持以下至少一个设置一个拥有音频和或视频的两个,其中一个多带带处理音频轨道,一个多带带处理视频轨道一个二进制流数据结构,提供了单个需要的,设置和其他。用于识别二进制流数据属于那个的标识。

摘要

本说明通过允许javascript来生成看到播放的流媒体扩展了HTMLMediaElement[HTML51]对象。允许javascript来生成流促进了很多用途,如可自适应的流和可进行时间变换的直播流。

1. 介绍

这一节是非规范性的(non-normative)。
这个特性允许JavaScript去动态地为

1.1 目标

允许js去创建media stream,独立于普通的拉流播放的方式。

定义了一种加快自适应流,广告插入,时戳转换,视频编辑的分割和缓存模式。

最小化js中的媒体解析需要

尽可能的呃管理浏览器的播放缓存

提供二进制流格式操作需要

不需要支持特定的媒体格式和编解码器(codec)

这个说明定义了

浏览器和web app处理媒体数据的规范行为

其他定义媒体格式的

1.2 一些名词定义

Active Track Buffers
一个提供开启中的音频track,选中的视频track,和正在显示或隐藏的字幕track的编码过的帧集合的track buffer。这些tracks都和activeSourceBuffers列表中的SourceBuffer对象有关。

Append Window
添加buffer时用于筛选coded frames的一个pts的range。append window表示一个连续的有单一开始和结束时间的时间区间。只有pts在这个时间区间内的编码帧才允许被添加到SourceBuffer中,其余的都会被筛选出去。append window的开始和结束时间是受appendWindowStart和appendWindowEnd两个属性分别控制。

Coded Frame
一个有presentation timestamp(pts), decode timestamp(dts)和coded frame duration的媒体数据单元。

Coded Frame Duration
一个coded frame的时长,对视频和文字而言,duration就是指一个视频帧或者文字需要被展示的时间长度,对于音频而言,duration就是指这一帧中包括的采样的和。比如:一个包含441个采样样本的采样率是@44100Hz的音频帧的时长就是10ms。

Coded Frame Group
一组响铃的,dts单调递增没有gap的coded frames集合。如果被coded frame processing algorithm算法检测到的不连续片段就会触发abort方法从一个新的coded frame group开始重新播放。

Decode Timestamp
The decode timestamp(就是通常说的dts)表示最晚的这一帧和任何独立帧需要被解码的时间(假设可以被立刻解码和渲染,应该等于这个presentation order里最先被渲染的帧的pts)。如果这一帧不能在渲染顺序中被解码出来或者没有dts,那么dts就等于pts。

Initialization Segment
一系列的包括了需要解码media segment序列的初始化信息的二进制数据。包括了codec初始化信息,多路segment的Track ID的映射和时间戳偏移等。

Media Segment
一序列的包括了封装信息和时间戳信息的媒体数据二进制数据。Media Segment总是和最新添加的initialization segment相关。

MediaSource object URL
MediaSource object URL是一个唯一的通过createObjectURL()方法生成的Blob URI。用于绑定一个MediaSource对西那个到一个HTMLMediaElement元素上。

Parent Media Source
一个SourceBuffer对象的Parent Media Source是创建它的MediaSource对象。

Presentation Start Time
Presentation Start Time

Presentation Interval
一个coded frame的Presentation Interval是一个从pts到pts+coded frame"s duration时间间隔。比如有一帧的pts是10s,coded frame duration是100ms,那么the presentation interval就是[10-10.1)。注意:起始时间是闭区间,结束时间是开区间。

Presentation Order
coded frames 渲染的顺序。The presentation order通过把coded frames 根据pts单调递增的排列起来获得。

Presentation Timestamp
视频帧显示的具体时间,表示了这一帧应该什么时候被播放器渲染。

Random Access Point
一个media segment可以不依赖之前数据解码和连续播放的位置。对于视频来说就是I-frames的位置,对音频来说大多数帧都可以作为random access point。因为视频轨道的random access point分布更稀疏,所以这些位置通常被当作复路流(multiplexed stream,我理解就是音视频等混合起来的流)的random access point。

SourceBuffer byte stream format specification
byte stream format specification特性描述了SourceBuffer实例允许的二进制流格式。是根据传入addSourceBuffer()方法的type。

SourceBuffer configuration
一个MediaSource实例下面的一个或多个SourceBuffer对象里的tracks集合。一个MediaSource对象必须支持以下至少一个设置:

一个拥有音频和/或视频的SourceBuffer

两个SourceBuffer,其中一个多带带处理音频轨道,一个多带带处理视频轨道

Track Description
一个二进制流数据结构,提供了单个track需要的TrackID,codec设置和其他metadata。一个initialization segment的每个track description都需要一个唯一的Track ID,如果不唯一的话,浏览器必须执行一个append error algorithm算法。

Track ID
用于识别二进制流数据属于那个track的标识。每个track description中的Track ID标识了一个 media segment属于的track。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/91941.html

相关文章

  • Media Source Extension官方文档(第二部

    摘要:对象表示元素的一个媒体数据源。对象由应用创建然后绑定到元素上。当需要播放的时候,从对象中读取媒体数据。每个对象都由一个实时的可检索的变量来存储归一化后的对象。类型,只读对象的当前状态,刚创建的时候一定是。和方法会更新在特定的情况下。 2. MediaSource Object MediaSource对象表示HTMLMediaElement元素的一个媒体数据源。它会记录源的readySt...

    HackerShell 评论0 收藏0
  • Media Source Extension官方文档(第二部

    摘要:对象表示元素的一个媒体数据源。对象由应用创建然后绑定到元素上。当需要播放的时候,从对象中读取媒体数据。每个对象都由一个实时的可检索的变量来存储归一化后的对象。类型,只读对象的当前状态,刚创建的时候一定是。和方法会更新在特定的情况下。 2. MediaSource Object MediaSource对象表示HTMLMediaElement元素的一个媒体数据源。它会记录源的readySt...

    Julylovin 评论0 收藏0

发表评论

0条评论

wangbinke

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<