一、直播的本质
实时推送/拉取音视频数据
二、视频直播流程
安卓版视频直播软件的视频直播的流程可以分为如下几步:
- 采集
- 处理
- 编码和封装
- 推流
- 服务器分发
- 播放器流播放
1、采集
视频的采集涉及两方面数据的采集:音频采集和图像采集,它们分别对应两种完全不同的输入源和数据格式。
两个传感器:
- CCD:图像传感器,用于图像采集和处理,把图像转换为电信号
- 拾音器:声音传感器,用于声音采集和处理,把声音转换为电信号
格式:
- 视频采样数据 : 一般都是 YUV 或 RGB 格式
- 音频采样数据 :一般都是PCM格式
由于所采集的内容非常大,所以需要进行压缩。常见的音频压缩格式有:MP3,AAC,HE-AAC,Opus,FLAC,Vorbis (Ogg),Speex 和 AMR等。视频编码压缩成 H.264 等格式的数据分发出去。常见的视频封装格式有:mp4、3GP、AVI、mkv、wmv、mpg、VOB、flv、SWF、MOV、rmVB 和 WebM 等。
2、处理
视频或者音频完成采集之后得到原始数据,为了增强一些现场效果或者加上一些额外的效果,我们一般会在将其编码压缩前进行处理,例如:美颜及水印。各种美颜和视频添加特效的App都是基于GPUImage框架实现。
3、编码和封装
视频编码的意义:原始视频数据存储空间大。核心思想就是去除冗余信息。
常见的视频编码器:
- H.264/AVC
- HEVC/H.265
- VP8
- VP9
- FFmpeg :是一个跨平台的开源视频框架,能实现如视频编码,解码,转码,串流,播放等丰富的功能。其支持的视频格式以及播放协议非常丰富,几乎包含了所有音视频编解码、封装格式以及播放协议。
封装:是把编码器生成的多媒体内容(视频,音频,字幕,章节信息等)混合封装在一起的标准。
常见的封装格式:
- AVI 格式(后缀为 .avi)
- DV-AVI 格式(后缀为 .avi)
- QuickTime File Format 格式(后缀为 .mov)
- MPEG 格式(文件后缀可以是 .mpg .mpeg .mpe .dat .vob .asf .3gp .mp4等)
- WMV 格式(后缀为.wmv .asf)
- Real Video 格式(后缀为 .rm .rmvb)
- Flash Video 格式(后缀为 .flv)
- Matroska 格式(后缀为 .mkv)
- MPEG2-TS 格式 (后缀为 .ts)
4、推流
传输协议:
- RTMP:实时消息传输协议,Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输开发的开放协议,因为是开放协议所以都可以使用了。 RTMP协议用于对象、视频、音频的传输。
- HLS(HTTP Live Streaming):是苹果公司(Apple Inc.)实现的基于HTTP的流媒体传输协议
- RTSP(Real Time Streaming Protocol):实时流传送协议,是用来控制声音或影像的多媒体串流协议,由Real Networks和Netscape共同提出的
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。