当下,视频直播行业在中国逐渐走红。在刚刚过去的2017年,视频直播成为互联网行业最抢眼的领域之一。从游戏到秀场,从传统的网页端到移动互联网,各大直播平台包括斗鱼、熊猫tv、虎牙战旗还有纯移动端的映客、花椒等,群雄割据。接下来本小编从技术的角度分析如何搭建一个自己的直播平台。

一、移动直播系统搭建推流端需要做哪些工作?

  直播推流端即主播端,主要通过手机摄像头采集视频数据和麦克风采集音频数据,经过一系列前处理、编码、封装,然后推流到CDN进行分发。

1、直播系统搭建采集

  移动直播SDK通过手机摄像头和麦克风直接采集音视频数据。其中,视频采样数据一般采用RGB或YUV格式、音频采样数据一般采用PCM格式。采集到的原始音视频的体积是非常大的,需要经过压缩技术处理来提高传输效率。

2、直播系统搭建前处理

  在这个环节主要处理美颜、水印、模糊等效果。美颜功能几乎是直播的标配功能。我们调研中发现太多case是因为没有美颜功能被抛弃使用的。另外国家明确提出了,所有直播都必须打有水印并回放留存15天以上。

  美颜实际上是通过算法去识别图像中的皮肤部分,对皮肤区域进行色值调整。通过颜色对比找到皮肤区域,可以进行色值调整、添加白色图层或调整透明度等来达到美白效果。在美颜处理方面,最著名的GPUImage提供了丰富的效果,同时可以支持iOS和Android,支持自己写算法实现自己最理想的效果。GPUImage内置了120多种常见滤镜效果,添加滤镜只需要简单调用几行代码就可以了。

3、直播系统搭建编码

  为了便于手机视频的推流、拉流以及存储,通常采用视频编码压缩技术来减少视频的体积,现在比较常用的视频编码是H.264。在音频方面,比较常用的是AAC编码格式,其它如MP3、WMA也是可选方案。视频经过编码压缩大大提高了视频的存储和传输效率,当然,经过压缩后的视频在播放时必须进行解码。

  相较于之前的H.264,2012年诞生的H.265编解码标准有了相当大的改善,做到了仅需要原来一半带宽即可播放相同质量的视频,低于1.5Mbps的网络也能传输1080p的高清视频。像阿里云、金山云都在推自己的H.265编解码技术,随着直播的快速发展和对带宽的依赖,H.265编解码技术已有全面取代H.264的趋势。

另外,硬件编码已经成为移动直播的首选方案,软编码处理在720p以上的视频颓势非常明显。在iOS平台上硬件编码的兼容性比较好,可以直接采用,但在Android平台上,Media Codec编码器针对不同的芯片平台表现差异还是非常大的,要完全实现全平台兼容的成本还是非常高的。

4、直播系统搭建推流

  要想用于推流还必须把音视频数据使用传输协议进行封装,变成流数据。常用的流传输协议有RTSP、RTMP、HLS等,使用RTMP传输的延时通常在1–3秒,对于移动直播这种实时性要求非常高的场景,RTMP也成为移动直播中最常用的流传输协议。最后通过一定的Qos算法将音视频流数据推送到网络断,通过CDN进行分发。在直播场景中,网络不稳定是非常常见的,这时就需要Qos来保证网络不稳情况下的用户观看直播的体验,通常是通过主播端和播放端设置缓存,让码率均匀。另外,针对实时变化的网络状况,动态码率和帧率也是最常用的策略。

  当然,在网络传输方面全部自己来做基本不现实,找提供推流服务的CDN服务商提供解决方案是最好的选择。据了解,阿里云是国内唯一能自研CDN缓存服务器的厂商,性能非常有保障。当然,大多数直播平台都会同时接入多个视频云服务提供商,这样可以做拉流线路互备,对推流后视频集群再进行优化也可提高直播的流畅性和稳定性。

二、直播系统搭建播放器端需要做哪些工作?

  在播放器端如何做到秒开,直播过程中保证画面和声音清晰度的同时,稳定、流程、无卡顿的直播流量,这些工作都需要播放器端配合服务端来做优化,做到精确调度。

1、直播系统搭建拉流

  拉流实际是推流的逆过程。首先通过播放端获取码流,标准的拉流格式有RTMP、HLS、FLV等。RTMP是Adobe的专利协议,开源软件和开源库都支持的比较好,如开源的librtmp库,播放端只要支持flashPlayer的就能非常简单的播放RTMP直播,直播延迟一般在1–3秒。

HLS是苹果提出的基于HTTP的流媒体传输协议,HTML5可以直接打开播放,通过微信、QQ等软件分享出去,用户也可以直接观看直播,可以说移动直播app,HLS拉流协议是必须支持的,缺点是延迟通常大于10秒。FLV(HTTP-FLV)协议是使用HTTP协议传输流媒体内容的一个协议,也不用担心被Adobe的专利绑架,直播延迟同样可以做到1–3秒。

2、直播系统搭建各拉流协议的差异:

我们使用的云服务的直播拉流技术提供了以上三种格式,满足不同业务场景的需求,如对即时性要求较高或有互动需求的可以采用RTMP或FLV格式进行直播拉流播放;对于有回放或跨平台需求的,推荐使用HLS。当然,三种协议是可以同时使用的,分别用到自己的场景就可以了。

当然本文中的直播系统搭建解决方案只是最简单的,对于直播服务器集群,直播间的创建和管理,直播间直播密码和权限,内容分发网络CDN进行简单讲解。所以如果你在直播平台开发搭建上还是有太多问题的话可以找一家专门开发直播的公司云豹来做,这种专门开发直播系统、直播平台的公司,不仅能够减少成本还能够快速的就能够实现你的直播梦想。

搭建自己的直播平台_直播系统搭建解决方案相关推荐

  1. java搭建直播平台_直播平台简单搭建笔记

    直播平台大致流程 实时传输协议有:RTMP.HLS.HDL(HTTP-FLV) 编译环境 apt-get install build-essential nginx安装 安装pcre(目前最新8.44 ...

  2. srs流媒体服务器windows_基于SRS构建的直播平台的监控系统的搭建思路与实现方法...

    市面直播平台百家争鸣,直播监控系统是判断一个直播平台是否完善的必要条件.文章简要介绍了笔者搭建的一套基于SRS的直播平台,并从设计思路.实现方法与实现过程等方面重点介绍了针对此直播平台建设的监控系统, ...

  3. 怎么搭建直播平台,直播环境搭建该怎样做?

    怎么搭建直播平台,直播环境搭建该怎样做? 目录 环境准备 ●Centos系统安装:请查看我的另一篇博客Java后端之路(六)安装Linux系统 ●git安装(系统如果没有的话):www.cnblogs ...

  4. 基于Java毕业设计在线直播平台源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计在线直播平台源码+系统+mysql+lw文档+部署软件 基于Java毕业设计在线直播平台源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S架构 开发语言: ...

  5. 基于Python的直播平台数据分析可视化系统

    温馨提示:文末有 CSDN 平台官方提供的学长 Wechat / QQ 名片 :) 1. 项目简介 随着移动互联网和5G的快速发展,视频直播行业呈现出丰富多元的内容形态,覆盖更多的场景和受众,视频成为 ...

  6. 语音直播平台,语音系统源码的开发服务。

    目前直播行业的火热大家也是有目共睹的,但是最近流行一种"不用颜值只有声控的模式出现了"这就是--语音直播.与此同时,语音直播的商业模式也引发思考.直播行业似乎一直火热,但火热的背后 ...

  7. 黑*头条_第8章_爬虫系统搭建

    黑*头条_第8章_爬虫系统搭建 文章目录 黑*头条_第8章_爬虫系统搭建 目标 1爬虫是什么 2名词解释 2.1 Webmagic: 2.2 webmagic的总体架构: 2.3 webmagic的总 ...

  8. 直播平台开发直播特效的原理与难点

    直播平台开发直播特效的原理与难点 在这个颜值即正义的时代,不论是通过 Web 还是移动端发起直播,美颜与特效已经是很多直播平台的标配功能.更有甚者,已经开始尝试将AR融入产品,增加更多可以吸引用户的体 ...

  9. 快速搭建ELK7.5版本的日志分析系统--搭建篇

    一.ELK安装部署 官网地址:https://www.elastic.co/cn/ 官网权威指南:https://www.elastic.co/guide/cn/elasticsearch/guide ...

最新文章

  1. javascript获取系统时间时区_5个JavaScript技巧让你成为更好的开发者
  2. 5 年开发搞不定 MySQL !
  3. PageRank行将过时 搜索引擎遭遇范式转移
  4. 神经网络之dropout层
  5. linux jobs继续运行,Linux jobs等前后台运行命令详解
  6. swfupload使用说明
  7. hue是不是集成了oozie_在hue里面集成spark2,使用oozie的调度
  8. Android系统(46)--- 基本常识
  9. Centos7升级gcc版本方法之一使用scl软件集
  10. 百度文库下载器 V2.3.4.3 支持豆丁百度文库道客巴巴
  11. 程序员试用期被裁,只给半个月赔偿
  12. JetBrains PyCharm免费版
  13. 系统管理员设置了系统策略禁止进行此安装怎么解决
  14. 《不能承受的生命之轻》--米兰·昆德拉
  15. 罗格斯大学电气与计算机工程专业怎么样,罗格斯大学计算机工程排行,千万得细心点听懂...
  16. 【PCB专题】PCB板卡上的UL标识是什么?
  17. MySQL数据存储空间
  18. 中科院计算机研究生推免面试,【中科院信工所学生兼职面试】研究生推免面试经验分享。-看准网...
  19. 用python做自动化控制-用 Python 自动化办公能做到哪些有趣或有用的事情?
  20. Qt 调用echo命令写文件失效

热门文章

  1. 新浪微博URL中的MID和微博id互转
  2. 织梦主动提交_织梦CMS发表文章自动实现百度链接主动推送教程
  3. vole使用的简单例子
  4. 特征值和特征向量的几何意义
  5. npm run build 报错These dependencies were not found:* core-js/modules/es6.array.find in .....
  6. 行业分析-斑马鱼市场现状及未来发展趋势
  7. zabbix页面中添加的主机ZBX不亮,报警More than 75% used in the configuration cache
  8. 度娘弱爆了:看看 Google 日本女优程序员
  9. Python数据分析与挖掘————图像的处理
  10. 入门必读 | 超详细的零次学习(Zero-Shot Learning)入门