(完整版)直播技术方案路演
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
业务服务器
返回房间列表及播放地址
流媒体服务器
拉流播放
流媒体服务器
SRS :一款国人开发的优秀开源流媒体服务器系统 BMS : 也是一款流媒体服务器系统,但不开源,是SRS的商业版,
比SRS功能更多 nginx:免费开源web服务器,也常用来配置流媒体服务器。
集成Rtmp_module即可。 Red5:是java写的一款稳定的开源的rtmp服务器。
推流URL
流媒体服务器
服务器流程
1.数据分发(CDN) 2.实时转码 3.截屏:展示主播封面 4.录制视频
常用框架
FFmpeg框架:编解码,推流
h264框架:视频格式转换 librtmp框架:推流
推流 rtmp
常用服务器
nginx + rtmp_module
Red5 SRS
拉流URL
播放端(观众)
播放端流程
开发技术点
服务器的搭建与部署:nginx + rtmp_module / Red5 / SRS / livego 客户端:PC、ANDROID、IOS 、HTML5
ffmpeg 编解码 : C/C++
opencv 图像处理(磨皮、美颜等):C++
消息互动:即时消息通讯,通过网络实时传输文字、图片、语音、与视频
第三方SDK
效率高、风险低 由于存在授权、版权的 费用,长期使用不划算 技术层面存在不可控因 素
技术延展
结合tensorflow 做视频分析 比如:车牌号识别、人脸识别、动物识别等
视频内容搜索 比如:在视频中搜索一只小猫,查找嫌疑犯、鉴黄等
谢谢
1.拉取flv视频流 2.音视频解码 3.播放 4.聊天互动
拉流 rtmp hls flv
常用框架
FFmpeg框架:编解码,拉流
ijkPlayer框架:播放 librtmp框架:推流
采集端逻辑
采集端
业务服务器
流媒体服务器
创建房间
创建直播流
返回直播流地址
返回直播流
推流到直播流地址
播放端逻辑
播放端 查询房间列表
流媒体开发:网络层(socket)负责传输,协议层(rtmp或hls)负责网络打 包,封装层(flv、ts)负责编解码数据的封装,编码层(h.264和aac)负责图 像,音频压缩。
直播架构
采集端(主播)
采集端流程
1.音视频采集 2.视频处理(美颜、水印)
3.音视频编码压缩 4.将音视频封装成flv格式
最简单Demo
1、环境:ubuntu、centos、archlinux、debian等主流linux系统 2、下载并配置nginx + rtmp_module服务 3、安装 ffmpeg、vlc 4、推流: ffmpeg -r 25 -f dshow -s 640×480 -i video=”video source name”:audio=”audio source name” -vcodec libx264 -b 600k -vpre slow -acodec libfaac -ab 128k -f flv rtmp://127.0.0.1:1935/live/test 5、播放: vlc rtmp://127.0.0.1:1935/live/test
ijkplayer : 一个基于FFmpeg的开源Android/iOS视频播放器(开源) API易于集成; 编译配置可裁剪,方便控制安装包大小; 支持硬件加速解码,更加省电 简单易用,指定拉流URL,自动解码播放.
方案选择
自研
长远来看,自己开发更 节省成本, 技术层面比直接使用第 三方SDK更可控 时间成本与风险比直接 使用第三方SDK要大。
提案 直播技术方案
直播应用场景
视频聊天
01
直播答题
02
社交平台
03
远程教育
04
远程医疗
05
单兵作业
06
常用直播功能项
录播主播 观看直播
聊天 礼物
Fra Baidu bibliotek
直播列表 房间逻辑 用户逻辑
系统设置
直播流程
音视频采集 音视频播放
视频滤镜
音视频编码
音视频解码
推流 流媒体服务器
拉流
直播协议
RTMP
优势:实时性高(延时 1~3秒),编码兼容性高,稳定性高 劣势:播放兼容性差,RTMP最大软肋,因为是Adobe的私有协议,很多设备都无法直接播 放
HTTP-FLV
优势:性能高(延时 1~3秒),所以从延迟角度来看,HTTP-FLV要优于RTMP。(服务器 上直接转码成http-flv,客户端直接观看) 劣势:移动端对于HTTP的支持不是很完善
HLS
优势:自适应码率流播 劣势:实时性差,基本上HLS的延迟在10秒以上
流媒体开发
帧:每帧代表一幅静止的图像 码率:图片进行压缩后每秒显示的数据量。 帧率:每秒显示的图片数。影响画面流畅度,与 画面流畅度成正比:帧率越大,画面越流畅;帧 率越小,画面越有跳动感。