视频通话流程详解
1、视频通话全程图
词语解释
(1)H.264又称为MPEG-4第10部分,高级视频编码,是一种面向块的基于运动补偿的视频编码标准,到2014年,它已经成为高精度视频录制、压缩和发布的最常用格式之一。
(2)AAC ,Advanced audio coding,叫高级音频编码,出现于1997年,基于MPEG-2的音频编码技术。2000年,MPEG-4标准出现后,AAC重新集成了其特性,加入了SBR技术和PS技术,为了区别于传统的MPEG-2,AAC又称为MPEG-4 AAC
(AAC与MP3规格对比)
比特率: AAC —最高512/MP3-32~320kbps
采用率:AAC — 最高96kHZ / MP3 - 最高48kHZ
声道数:AAC — (5.1) 六声道 /MP3 -两声道
采样精度:AAC —最高32bit / MP3 -最高16bit
(3)M3U8:是Unicode 版本的M3U,用于UTF-8编码,所以叫做M3u8。“M3u”和“M3U8”文件都是苹果公司使用HTS格式的基础,这种格式可以在IPhone和Macbook等设备播放。
(4)RTSP
RTSP协议,Real time Streaming Protocol (即时流协议)
用来控制声音或视频的多媒体流协议,并允许同时多个流需求控制,传输时所用的网络通信协议并不在其定义的范围内,服务器端可以自行选择使用tcp或upd来发送流内容,所以比较能容忍网络延迟。
RTSP协议是主要负责服务器和客户端之间建立连接,并响应用户的操作请求,如暂停、快进、快退、音量加减等。
(5)播放器端解码
FFmpeg 是一个跨平台的开源视频框架,能实现如视频编码、解码、转码、串流、滤镜、播放等丰富的功能。其支持的视频格式以及播放协议非常丰富,几乎包含了所有音视频编解码、封装格式以及播放协议。而实时视频一般使用的协议,如RSTP,在FFmpeg中得到了很好支持。
(6)flv (flash video)
是一种网络视频格式,用作流媒体格式,它的出现有效地解决了视频文件导入flash 文件后,使导出的SWF文件体积庞大,不能在网络上有效使用等缺点。
(7)RTMP
real time message protocol (实时消息传输协议)
该协议基于tcp,是一种用来设计进行实时数据通信的网络协议。
2、录入源流程
3、RTMP的协议的视频播放。
IJKPlayer是对开源框架Ffmpeg的封装。
或者 PLPlayerKit
文章参考部分文章