资讯专栏INFORMATION COLUMN

关于直播几个视频格式的概念总结

glumes / 3329人阅读

因为业务需要,这段时间一直在准备做一个新的HTML5播放器,涉及到一些底层的视频知识,这段时间到处搜索了解了一些相关信息,这里先做一个阶段性总结。

MPEG

MPEG(Moving Picture Experts Group,动态图像专家组)是ISO(International Standardization Organization,国际标准化组织)与IEC(International Electrotechnical Commission,国际电工委员会)于1988年成立的专门针对运动图像和语音压缩制定国际标准的组织。

这一段我是直接从百度百科上粘下来的官方解释,总结下来就是这是一个专门制定视音频通用标准的一个组织,因为要让播放器能正确识别播放各种视频,所以需要一份视音频格式的业界标准。我也同找到了一个解答很清晰简单的回答。通常来讲,每一次制定一个版本的白皮书就是一次技术的革新。

比如最开始MPEG1就是针对VCD制定的音频压缩标准(其中我们所熟知及最近正在被渐渐废弃的mp3格式就是指MPEG-1 audio layer 3)

MPEG2开始针对DVD制定视频+音频的压缩标准,视频其实可以看作是图片帧序列,比如一张经过压缩的jpg图片的大小是100KB,对于一个每秒24帧的1分钟的视频来说,一个视频可能就有100KB * 24 * 60 ≈ 14G的大小,这样肯定不行。MPEG2协议中就定义了一些业界的视频压缩标准。

MPEG3其实和mp3不同,本来MPEG3是针对HDTV广播视频而制定的协议,但是由于MPEG-2的出色性能表现,已能适用于HDTV,使得原打算为HDTV设计的MPEG-3,还没出世就被抛弃了。

后来随着手机的出现,因为手机的存储量有限,就要求更高的压缩率,比如原来一张DVD的存储量有4GB,而手机只有1G,这时候通过一些算法大牛们的努力,慢慢就有了MPEG4的协议制定。MPEG4协议中用了更高级的压缩算法,会比MPEG2有更高的压缩比。

Container

container就是指视频的格式,包括.mp4, .mov, .wmv, .m3u8, .flv等等,container作为容器主要包含了video数据、audio数据、metadata(用于检索视频payload格式等信息)。

Codec

COmpress and DECompress,是指视音频的压缩方式,包括H.265/MPEG-H HEVC, H.264/MPEG-4 AVC, H.263/MPEG-4 Part 2, H.262/MPEG-2等等。可以分为intraframe codec和interframe codec。其中H.264/AVC,也称为MPEG-4 高级视频编码(Advanced Video Coding,AVC),并且它将成为MPEG-4标准的第10部分(MPEG协议有很多部分,压缩方式是其中的一部分,还有一些部分定义了视频文件结构标准等)。就是现在工业界普遍在用的视频压缩方式。

MediaSource Extension

浏览器新提供的通过JavaScript生成媒体流来播放的API,通过window.URL.createObjectURL(MediaSource)接口可以在浏览器端生成一个可播放的blob链接,并设置给video标签

HLS vs. RTMP

这个基本可以链接我上一篇文章了,是当前比较通用的两个直播传输协议。其中HLS协议的直播视频格式是m3u8,RTMP的是flv。

m3u8文件

上面2张图片,左图是一个普通的m3u8文件打开的内容,其实m3u8文件是一个纯文本,可以用记事本直接打开的,是一个视频描述文件,里面描述了一个个.ts文件片段的地址(或相对地址)、时长及hls协议版本信息等。右图是一个可以有多码率自适应的m3u8描述文件,可以根据不同带宽选择不同的m3u8地址。其中ts文件才是真正的视频数据。

ts文件

上图是我找的网上关于ts文件的详细文件结构,一个ts文件在传输过程中是以188byte大小的包传输的,每一个包包括一个header和payload。header中又有不同的字段,用来描述视频信息及payload所在的位置,payload即是有效负载,就是视频信息,是一个在通信领域的专用名词。具体的文件结构解析,打算在下一篇m3u8文件详细的文章中描述。

fragmented mp4

也就是fmp4,是适应于现代浏览器的一种流媒体格式。和mp4格式不同的是,以往的mp4格式化也分为header信息和payload信息,一个大的mp4就会有一个很大的头信息,不适合与现在的网络环境。所以新的fmp4格式就出现了,fmp4格式有一个带了metadata的头片段,及后面一序列的fragment,每个fragment都有各自的header信息,这样就把header信息也分成了一个个小的片段,更适合现在的应用场景。所以fmp4格式也就是用于MediaSource对象的SourceBuffer的格式,通过一个initSegment和一序列的segment塞给MediaSource对象来播放。

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

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

相关文章

  • 关于直播几个视频格式概念总结

    因为业务需要,这段时间一直在准备做一个新的HTML5播放器,涉及到一些底层的视频知识,这段时间到处搜索了解了一些相关信息,这里先做一个阶段性总结。 MPEG MPEG(Moving Picture Experts Group,动态图像专家组)是ISO(International Standardization Organization,国际标准化组织)与IEC(International Elec...

    mingzhong 评论0 收藏0
  • 关于直播几个视频格式概念总结

    因为业务需要,这段时间一直在准备做一个新的HTML5播放器,涉及到一些底层的视频知识,这段时间到处搜索了解了一些相关信息,这里先做一个阶段性总结。 MPEG MPEG(Moving Picture Experts Group,动态图像专家组)是ISO(International Standardization Organization,国际标准化组织)与IEC(International Elec...

    mdluo 评论0 收藏0
  • 关于直播几个视频格式概念总结

    因为业务需要,这段时间一直在准备做一个新的HTML5播放器,涉及到一些底层的视频知识,这段时间到处搜索了解了一些相关信息,这里先做一个阶段性总结。 MPEG MPEG(Moving Picture Experts Group,动态图像专家组)是ISO(International Standardization Organization,国际标准化组织)与IEC(International Elec...

    vboy1010 评论0 收藏0
  • 关于直播几个视频格式概念总结

    因为业务需要,这段时间一直在准备做一个新的HTML5播放器,涉及到一些底层的视频知识,这段时间到处搜索了解了一些相关信息,这里先做一个阶段性总结。 MPEG MPEG(Moving Picture Experts Group,动态图像专家组)是ISO(International Standardization Organization,国际标准化组织)与IEC(International Elec...

    taohonghui 评论0 收藏0
  • 【腾讯Bugly干货分享】H5 视频直播那些事

    摘要:每周都会举行嘉宾分享,话题讨论等活动。本期,我们邀请了腾讯前端开发工程师吕鸣,为大家分享视频直播那些事。更多关于延迟的问题可以参考苹果官方地址但是直播视频却有一些不可替代的优势传播性好,利于分享等操作。 本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57a42... Dev Club 是一个交流移动开发技术,结交朋...

    enali 评论0 收藏0

发表评论

0条评论

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