直播过程技术难点

  • 怎样录制直播视频(流媒体源/编码/封装)
  • 怎样实时上传直播视频(视频推流: 如何推/往哪里推/推流服务器)
  • 怎样播放直播视频(如何看: HLS/rtmp/flv)
  • 直播间的用户是如何交互(送礼物/聊天室/弹幕)

直播系统解决方案-搭建你自己的直播平台

  • 视频采集与编码: JavaCV FFmpeg
  • 直播流服务器: SRS
  • 播放器: 网页端 Video.js 安卓端 Vitamio

直播原理:把主播录制的视频,推送到服务器,在由服务器分发给观众观看。

直播环节:推流端(采集、美颜处理、编码、推流)、服务端处理(转码、录制、截图、鉴黄)、播放器(拉流、解码、渲染)、互动系统(聊天室、礼物系统、赞)

一个完整直播app实现流程:采集/滤镜处理/编码/推流/CDN分发/拉流/解码/播放/聊天互动

直播过程技术难点_第1张图片

直播过程技术难点_第2张图片 

 到底什么是HLS协议?

 简单讲就是把整个流分成一个个小的,基于HTTP的文件来下载,每次只下载一些,前面提到了用于H5播放直播视频时引入的一个.m3u8(extended M3U playlist)的文件,这个文件就是基于HLS协议,存放视频流元数据的文件。

WEB 上主流的视频直播方案有 HLS 和 RTMP,移动 WEB 端目前以 HLS 为主(HLS存在延迟性问题,也可以借助 video.js 采用RTMP),PC端则以 RTMP 为主实时性较好

移动端 iOS 和 Android 都天然支持HLS协议,做好视频采集端、视频流推流服务之后,便可以直接在H5页面配置 video 标签播放直播视频, HLS 在 PC 端仅支持safari浏览器,类似chrome浏览器使用HTML5 video标签无法播放 m3u8 格式,可直接采用网上一些比较成熟的方案

Web 前端如何播放 HLS(.m3u8) 视频

  • 移动端可直接通过  标签来播放 .m3u8 格式的视频: mobile-hls-video.html
  • PC端需要通过其他手段(例如 videojs-contrib-hls)来解码 .m3u8 格式的视频, 才能够通过  标签或者 flash 来播放: pc-hls-video.html

 

你可能感兴趣的:(直播过程技术难点)