专栏首页短视频开发对于直播平台建设来说非常重要的“小组件”
原创

对于直播平台建设来说非常重要的“小组件”

在分享视频播放器的原理之前呢,我们先简单的看一下播放器在播放网络视频文件和本地视频文件的经过。播放网络视频文件:开始→解协议→解封装→解码音视频→音视频同步→结束。播放本地视频文件:开始→解封装→解码音视频→音视频同步→结束。其实在直播平台建设时,需要很多的步骤和工具,视频播放器只不过是其中一个,但却是非常重要的“小组件”之一。

通过对比播放器播放网络视频和本地视频文件的大体流程,我们可以看出,播放网络视频时需要解协议,而播放本地视频并不需要解协议。接下来,我们就来仔细的了解一下播放器在播放过程中每一个步骤的细节部分。

图片来源于网络

1.什么是解协议?

单独看字面意思可能比较难理解,解协议就是将流媒体协议的数据,解析为相对应封装格式数据的过程。通常音视频在网络上进行传输时,经常会采用各种流媒体协议。比如HTTP、RTMP等,这些协议在传输音视频数据的同时,也会传输一些信令数据。这些信令数据包括对播放的控制,即播放、暂停、停止,还有对网络状态的描述等。解协议的过程,会去除掉信令数据然后只保留音视频数据。举个简单的例子,如果是采用RTMP协议进行传输的数据,经过解协议操作之后,就会输出FLV格式的数据。

2.什么是解封装?

解封装,其实就是将输入的封装格式的数据,分离成为音频流压缩编码数据和视频流压缩编码数据的过程。通常比较常见的封装格式有MP4、FLV、AVI等。封装的作用就是把已经压缩编码好的视频数据和音频数据,按照规定的格式放在一起。比如,FLV格式的数据,经过解封装之后会输出压缩H.264编码的视频码流和压缩AAC编码的音视频码流。

3.什么是解码音视频?

目前大部分开发过程中,都需要将音视频进行解码操作。将视频和音频的压缩编码数据,解码成为非压缩的音频和视频的原始数据。音频的压缩编码标准包括AAC、MP3和AC-3等。这里补充一下,视频的压缩编码标准包括H.264(通用)和MPEG2等。通过解码压缩编码的视频数据,会得到非压缩的颜色数据,然后再经过解码压缩编码的音频数据获得非压缩的音频抽样数据,比如PCM数据。

4.什么是音视频同步?

在直播过程中,经常会遇到音视频不同步的情况。比如我们所观看到的直播画面已经过去了,但是音频才只播放到上一句,这种情况对于大部分用户来说都是比较难以忍受的。音视频同步,就是根据解封装模块的处理过程中,所获取到的参数信息,同时解码出来的音频和视频数据,也会将音频和视频数据发送到系统的显卡和声卡,从而将其播放出来。

图片来源于网络

以上就是视频播放器的简单原理,其实我们在观看直播时并不会接触到这些。但是在直播平台建设的过程中,是由这些大大小小的组件进行协助开发,然后才能开发出一款款精美的app。由此可见,每一个步骤所需要的都是非常重要的。

本文声明原创,转载请注明出处。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • IOS开发:直播系统中视频播放功能实现

    iOS中有多种方式可以实现视频播放功能:MPMoviePlayerController、MPMoviePlayerViewController、AVPlayer...

    布谷鸟网络科技
  • 超11亿海内外观众同看春晚直播 腾讯云保驾护航

    当《难忘今宵》的音乐响起,随着主持人的一声“明年再见”,2018年真正的告别,新的一年到来了。这场长达四个半小时春晚直播宣告结束,在央视网现场全程监测直播的"腾...

    腾讯云视频
  • FFmpeg编解码处理1-转码全流程简介

    大流程可以划分为输入、输出、转码、播放四大块。其中转码涉及比较多的处理环节,从图中可以看出,转码功能在整个功能图中占比很大。转码的核心功能在解码和编码两个部分,...

    用户4940323
  • ffplay源码分析5-图像格式转换

    FFmpeg解码得到的视频帧的格式未必能被SDL支持,在这种情况下,需要进行图像格式转换,即将视频帧图像格式转换为SDL支持的图像格式,否则是无法正常显示的。 ...

    用户4940323
  • 前端-能省流量的 HTML5 视频播放器 西瓜播放器 | 软件推介

    西瓜播放器是一个Web视频播放器类库,它本着一切都是组件化的原则设计了独立可拆卸的 UI 组件。更重要的是它不只是在 UI 层有灵活的表现,在功能上也做了大胆的...

    grain先森
  • 前端-玩转video

    只要在 HTML5 中使用过视频播放的同学对 video 标签一定不会陌生,不过很多同学只使用了 video 的基础功能,实际上 video 拥有强大潜能的,只...

    grain先森
  • iOS开发常用之摄像照相视频音频处理

    GuangdongQi
  • 三十天写三十个网站后,我学到的东西[每日前端夜话0x3C]

    上个学期用 JavaScript 写了一些好玩的网站,但开始用 React 或其他框架的时候,总觉得有点不踏实,应该要对原生的 JavaScript(或称 Va...

    疯狂的技术宅
  • bilibili携手WeTest,保障视频类应用优质适配体验

    中国移动视频用户规模越来越大,各类移动视频APP也百家争鸣, B站作为国内知名的年轻人文化社区,bilibili在推出移动端时,除了坚持自身的独特定位以外,对其...

    WeTest质量开放平台团队

扫码关注云+社区

领取腾讯云代金券