视频直播
2019-12-31 09:44:00 5 举报
AI智能生成
视频直播流程整理
作者其他创作
大纲/内容
采集
图像采集
摄像头
屏幕录制
H.264 RAW(本地视频文件)
其他采集
音频采集
麦克风采集
系统声音
AAC RAW(本地音频文件)
其他输入
处理
视频
水印
SDK内置
美颜
SDK内置
滤镜
iOS
Android
GPUImage
Google
其他处理
音频
混音
降噪
声音特效
其他处理
连麦
在视频和电话会议领域,目前比较成熟的方案是使用思科或者 WebEx 的方案,但这些商用的方案一不开源,二比较封闭,三成本比较高。对于互动人数比较少的互动直播,目前市场上比较成熟的方案是使用基于 WebRTC 的实时通讯方案。
编码和封装
编码
H.264 的开源实现:OpenH264、x264
HEVC/H.265 的开源实现:libde265、x265
VP8|VP9 的开源实现:libvpx
FFmpeg
封装
目前,我们在流媒体传输,尤其是直播中主要采用的就是 FLV 和 MPEG2-TS 格式,分别用于 RTMP/HTTP-FLV 和 HLS 协议。
推流和传输
推送协议
RTMP
WebRTC
协议分层如右图
基于UDP的私有协议
转码
解码和渲染
播放器
UI界面
皮肤
UI逻辑
业务逻辑
针对你的定制化需求,你可能选择使用包含所有经典功能的 JW Player 来播放(它也允许你定制部分功能),或者基于 Videojs 这样的开源播放器来定制你自己的功能特性。甚至为了在浏览器和原生播放器之间统一用户体验,你也可以考虑使用 React Native 来进行 UI 或者皮肤的开发,使用 Haxe 来进行业务逻辑的开发,这些优秀的库都可以在多种不同类型的设备之间共用同一套代码库。
多媒体引擎
声明文件解释和解析器
下载器
流播放引擎
资源质量参数预估器
ABR切换控制器
DRM管理器(可选)
通过解密过程来控制是否有权播放
格式转换复用器(可选)
解码器和DRM管理器
解码器、渲染器和 DRM 工作流程图
每个平台都有它自己的渲染引擎和相应的 API:Flash 平台有 Netstream,Android 平台有 Media Codec API,而 Web 上则有标准的 Media Sources Extensions。MSE 越来越吸引眼球,将来可能会成为继浏览器之后其它平台上的事实标准。
Common Encryption (CENC)
现代播放器架构
流程图
SDK
iOS
https://github.com/pili-engineering/PLMediaStreamingKit
Android
https://github.com/pili-engineering/PLDroidMediaStreaming
0 条评论
下一页