在开发直播系统平台中,会运用到非常多的技术难点,例如视频/音频处理,图形处理、视频/音频压缩、CDN分发等,每一个技术都够学好几年的。今天就跟大家介绍一下开发一套视频直播系统,整个流程中所运用到的技术原理大概是哪些。

首先我们来了解一下一个完整的直播APP原理是:把主播录制的视频,推送到服务器,再由服务器分发给观众观看。

流程: 采集 —>处理—>编码和封装—>推流到服务器—>服务器流分发—>播放器流播放

(图片转载自网络)

1. 采集视频、音频

采集是整个视频推流过程中的第一个环节,它从系统的采集设备中获取原始视频数据,将其输出到下一个环节。视频的采集是指音频采集和图像采集:音频数据既能与图像结合组合成视频数据,也能以纯音频的方式采集播放,纯音频采集播放在很多成熟的应用场景如在线电台和语音电台等起着非常重要的作用。图像采集是将图像采集的图片结果组合成一组连续播放的动画,即构成视频中可肉眼观看的内容。对于采集,PC端需要各种型号的摄像头的驱动,Andriod端要做很多手机机型的适配工作,ios端就比较简单。

2.视频处理(如美颜、水印)

视频或者音频完成采集之后得到原始数据,为了增强一些现场效果或者加上一些额外的效果,我们一般会在将其编码压缩前进行处理,处理环节中分为音频和视频处理,音频处理中具体包含混音、降噪和声音特效等处理,视频处理中包含美颜、水印、以及各种自定义滤镜等处理。美颜美化功能是在线直播系统开发的标配,且以动态贴纸为代表的AI技术也被广泛应用于音视频直播系统方案中。

(图片转载自网络)

3.编解码、封装

编码是信息从一种形式或格式转换为另一种形式的过程也称为计算机编程语言的代码简称编码。解码,是编码的逆过程,使用相关硬件或软件对接收到的编码后的音视频数据进行解码,得到可以直接显示的图像或声音。编解码就好比物流系统中配货和装货的过程,这个过程直接就影响视频图像文字在网络传输中的速度。封装,就类似媒体的容器,是把编码器生成的多媒体内容(视频,音频,字幕,章节信息等)混合封装在一起的标准。封装使得不同多媒体内容同步播放变得简单,也为多媒体内容提供索引,也就是说如果没有封装存在的话一部影片你只能从一开始看到最后,不能拖动进度条,而且如果你不自己去手动另外载入音频就没有声音。

4.推流到服务器

推流,就是将采集到的音频、视频数据通过流媒体协议发送到流媒体服务器。推流对这个直播链路影响非常大,如果推流的网络不稳定,无论我们如何做优化,观众的体验都会很糟糕,所以也是我们排查问题的第一步。推送协议主要有三种:

(1)RTSP(Real Time Streaming Protocol):实时流传送协议,是用来控制声音或影像的多媒体串流协议, 由Real Networks和Netscape共同提出的;

(2)RTMP(Real Time Messaging Protocol):实时消息传送协议,是Adobe公司为Flash播放器和服务器之间音频、视频和数据传输 开发的开放协议;

(3)HLS(HTTP Live Streaming):是苹果公司(Apple Inc.)实现的基于HTTP的流媒体传输协议。

RTMP 是目前主流的流媒体传输协议,广泛用于直播领域,可以说市面上绝大多数的直播产品都采用了这个协议,也有部分使用HLS协议。

(图片转载自网络)

5.服务器流分发

流媒体服务器的作用是负责直播流的发布和转播分发功能。

常用服务器

SRS:一款国人开发的优秀开源流媒体服务器系统

BMS:也是一款流媒体服务器系统,但不开源,是SRS的商业版,比SRS功能更多

nginx:免费开源Web服务器,常用来配置流媒体服务器

自建流媒体服务器局限性很大,费用也比较高昂,建议交给CDN服务商。

6. 播放器流播放

主要是实现直播节目在终端上的展现。如果使用的传输协议是RTMP, 那么只要支持 RTMP 流协议的播放器都可以使用,譬如:电脑端:VLC等;手机端:Vitamio以及ijkplayer等。

希望通过以上直播技术原理的阐述,在帮助大家更好地了解直播系统如何搭建的同时,也能够帮助大家优化自己的直播系统解决方案。

rtsp服务器搭建_直播系统搭建所用到的技术原理相关推荐

  1. 搭建自己的直播平台_直播系统搭建解决方案

    当下,视频直播行业在中国逐渐走红.在刚刚过去的2017年,视频直播成为互联网行业最抢眼的领域之一.从游戏到秀场,从传统的网页端到移动互联网,各大直播平台包括斗鱼.熊猫tv.虎牙战旗还有纯移动端的映客. ...

  2. 用监控摄像机搭建视频直播系统的方式

    一.使用模拟摄像机方式: (1),(模拟摄像机+视频采集卡+PC+转码软件)+流媒体服务器+客户端: 这是比较久以前使用的远程视频直播系统搭建的方式.首先是前端安装模拟摄像机用于采集模拟信号并用视频采 ...

  3. 一步步搭建视频直播系统,基于LFLiveKit+ijkplayer+rtmp(iOS端)

    原文来自简书,原文地址:http://www.jianshu.com/p/30595a5bff42 本文主要使用的三个技术: 推流:LFLiveKit 播放:ijkplayer 服务器:nginx+r ...

  4. iOS开发 搭建视频直播系统,基于LFLiveKit+ijkplayer+rtmp(iOS端)

    本文主要使用的三个技术: 推流:LFLiveKit 播放:ijkplayer 服务器:nginx+rtmp+ffmpeg 有了这三点技术就可以完成一个简约的直播系统.效果图如下(右边的是用模拟器设备运 ...

  5. 搭建PHP直播系统源码的教程,手把手教你手机直播app制作

    如果你有一份PHP直播系统源码,那你一定需要这份搭建教程,作为手机直播app制作的最后一步,"搭建"成为了不少人的心头痛,现在就让我们一起来看看,PHP直播系统源码该如何搭建吧! ...

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

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

  7. 如何只需三步搭建一对一直播系统源码

    随着当下直播行业的红火几乎所有的人手机上都安装了直播app,但是呢直播app也包含很多分类,有一对多直播的还有一对一直播系统,这些系统都是通过直播源码搭建起来的,直播系统开发便获得越来越多程序员的关注 ...

  8. 软raid1 重新同步_软RAID搭建基于linux系统搭建RAID5

    实验二.软RAID搭建-基于linux系统搭建RAID5 实验要求: 1)创建RAID5; 2)添加一个热备盘sdj 3)指定chunk为32k 4停止阵列,重新激活阵列 5使用热备盘,扩展阵列容量, ...

  9. 直播系统搭建关键步骤与要点!

    2017直播火了整整一年,现在2018年了,直播行业还是非常让人想分一杯羹,许多"密谋"已久的人也渐渐开始动身了,陆陆续续的现在直播平台变的越来越多.但是很多质量低体验低的平台也是 ...

最新文章

  1. 【VMCloud云平台】SCO(四)流程准备
  2. 演练:有效减法设计,才能开放加法
  3. 上周回顾:***猖狂叫板欧美政府 赛门铁克赔偿羞羞答答
  4. 精读《setState 做了什么》
  5. 容器编排技术 -- 在Azure上使用CoreOS和Weave的 Kubernetes
  6. Python入门(六)序列之中,序列之间
  7. 手机号检测性别原理分析 微信男女 抖音ID检测原理
  8. kali下如何生成密码字典(在线)
  9. 在PHP项目中使用Standford Moss代码查重系统
  10. HAProxy 源代码阅读指引
  11. 转:firefox os 框架解析
  12. 作为程序员的你,这10款在线编辑器,你用过哪一个?
  13. unity shader实现中枪散红效果,(参考别人算法)
  14. top,margin-top,padding-top的区别
  15. CAD 2008英文版下载(含注册机)
  16. java excel行高_Java 设置Excel自适应行高、列宽
  17. NDK学习笔记:一起来变萝莉音!FMOD学习总结(下)
  18. 使用cmake构建工程
  19. border-image实现渐变边框
  20. 不知道O2O产品的APP该如何运营推广?

热门文章

  1. Scala _11SparkWordCountscala语言java语言
  2. JAVA程序设计----集合基础之Map
  3. leetcode 795. Number of Subarrays with Bounded Maximum | 795. 区间子数组个数(Java)
  4. Spring5参考指南:SpringAOP简介
  5. mips j指令_MIPS处理器 MIPS指令集(上)
  6. spark on yarn 使用自定义jdk
  7. 1023 组个最小数 (20 分)_14行代码AC
  8. 32行代码AC——L1-027 出租 (20分)(~解题报告~)
  9. mysql删除属性_SQL语句处理一些修改、新增、删除、修改属性操作(MySql)
  10. Redis数据库(二)——数据类型