直播平台搭建所涉及的事项非常的广泛, 不仅需要直播源码、 直播系统开发、 后台服务 器、专门的运维人员等, 还需要技术团队切实的把控。下面, 小编就给大家确切的说下直播 平台搭建需要用到哪些步骤。

1、采集

音频采集:音频数据既能与图像结合组合成视频数据, 也能以纯音频的方式采集播放, 后者 在很多成熟的应用场景如在线电台和语音电台等起着非常重要的作用。 音频的采集过程主要 通过设备将环境中的模拟信号采集成 PCM 编码的原始数据,然后编码压缩成 MP3 等格 式的数据分发出去。 常见的音频压缩格式有:MP3, AAC , HE-AAC , Opus , FLAC , Vorbis (Ogg), Speex 和 AMR 等。

音频采集和编码主要面临的挑战在于:延时敏感、卡顿敏感、噪声消除(Denoise )、回声 消除(AEC )、静音检测(VAD )和各种混音算法等。

图像采集:图像采集图像采集的图片结果组合成一组连续播放的动画, 即构成视频中可肉眼 观看的内容。 图像的采集过程主要由摄像头等设备拍摄成 YUV 编码的原始数据, 然后经过 编码压缩成 H.264 等格式的数据分发出去。常见的视频封装格式有:MP4、 3GP 、 AVI 、 MKV 、 WMV 、 MPG 、 VOB 、 FLV 、 SWF 、 MOV 、 RMVB 和 WebM 等。

图像由于其直观感受最强并且体积也比较大, 构成了一个视频内容的主要部分。 图像采集和 编码面临的主要挑战在于:设备兼容性差、 延时敏感、 卡顿敏感以及各种对图像的处理操作 如美颜和水印等。

2、前处理

在这个环节主要是主播开播前的一些处理, 包括调整美颜萌颜、 连麦等效果。 现在美颜 功能几乎是直播的标配, 哪怕是非商用的企业直播平台, 也建议添加美颜功能, 毕竟没有人

希望自己在镜头前一脸憔悴不上镜。 但美颜有一个需要难点是, 要平衡美颜效果和功耗之间 的关系, 美颜效果越好, 程序功耗越大, 设备就会越发发热, 从而有可能影响到视频的采集。 所以前处理非常重要。

3、推流

需要直播的内容在采集、压缩处理好之后,还要上传到服务器,通过 CDN 进行分发, 用户提取想要看的压缩包,服务器进行解压才能向用户播放, 这就是推流。 推流有回源、直 推、转推等多种形式,各有优点。其中要按照实际情况具体部署。流媒体服务器有 RTMR 和 HLS 两种。其中 RTMP , Real Time Messaging Protocol(实时消息传输协议)的首 字母缩写。 该协议基于 TCP , 是一个协议族, 包括 RTMP 基本协议及 RTMPT/RTMPS/RTMPE等多种变种。 RTMP 是一种设计用来进行实时数据通信的网络协议, 主要用来在 Flash/AIR平台和支持 RTMP 协议的流媒体 /交互服务器之间进行音视频和数据通信。 RTMP 基于 flash 无法在 iOS 的浏览器里播放, 但是实时性比 HLS 要好。 HLS , HTTP Live Streaming (HTTP 直播流技术) , Apple 的动态码率自适应技术。 主要用于 PC 和 Apple 终端的音视 频服务。包括一个 m3u(8)的索引文件, TS 媒体分片文件和 key 加密串文件。

4、编码

如果把整个流媒体比喻成一个物流系统, 那么编解码就是其中配货和装货的过程, 这个 过程非常重要, 它的速度和压缩比对物流系统的意义非常大, 影响物流系统的整体速度和成 本。同样,对流媒体传输来说,编码也非常重要,它的编码性能、编码速度和编码压缩比会 直接影响整个流媒体传输的用户体验和传输成本。 简单来说原始视频数据存储空间大, 一个 1080P 的 7 s 视频需要 817 MB;原始视频数据传输占用带宽大, 10 Mbps 的带宽传输 上述 7 s 视频需要 11 分钟。而经过编码压缩之后,视频大小只有 708 k ,10 Mbps 的带 宽仅仅需要 500 ms ,可以满足实时传输的需求,所以从视频采集传感器采集来的原始视

希望自己在镜头前一脸憔悴不上镜。 但美颜有一个需要难点是, 要平衡美颜效果和功耗之间 的关系, 美颜效果越好, 程序功耗越大, 设备就会越发发热, 从而有可能影响到视频的采集。 所以前处理非常重要。

3、推流

需要直播的内容在采集、压缩处理好之后,还要上传到服务器,通过 CDN 进行分发, 用户提取想要看的压缩包,服务器进行解压才能向用户播放, 这就是推流。 推流有回源、直 推、转推等多种形式,各有优点。其中要按照实际情况具体部署。流媒体服务器有 RTMR 和 HLS 两种。其中 RTMP , Real Time Messaging Protocol(实时消息传输协议)的首 字母缩写。 该协议基于 TCP , 是一个协议族, 包括 RTMP 基本协议及 RTMPT/RTMPS/RTMPE等多种变种。 RTMP 是一种设计用来进行实时数据通信的网络协议, 主要用来在 Flash/AIR平台和支持 RTMP 协议的流媒体 /交互服务器之间进行音视频和数据通信。 RTMP 基于 flash 无法在 iOS 的浏览器里播放, 但是实时性比 HLS 要好。 HLS , HTTP Live Streaming (HTTP 直播流技术) , Apple 的动态码率自适应技术。 主要用于 PC 和 Apple 终端的音视 频服务。包括一个 m3u(8)的索引文件, TS 媒体分片文件和 key 加密串文件。

4、编码

如果把整个流媒体比喻成一个物流系统, 那么编解码就是其中配货和装货的过程, 这个 过程非常重要, 它的速度和压缩比对物流系统的意义非常大, 影响物流系统的整体速度和成 本。同样,对流媒体传输来说,编码也非常重要,它的编码性能、编码速度和编码压缩比会 直接影响整个流媒体传输的用户体验和传输成本。 简单来说原始视频数据存储空间大, 一个 1080P 的 7 s 视频需要 817 MB;原始视频数据传输占用带宽大, 10 Mbps 的带宽传输 上述 7 s 视频需要 11 分钟。而经过编码压缩之后,视频大小只有 708 k ,10 Mbps 的带 宽仅仅需要 500 ms ,可以满足实时传输的需求,所以从视频采集传感器采集来的原始视

希望自己在镜头前一脸憔悴不上镜。 但美颜有一个需要难点是, 要平衡美颜效果和功耗之间 的关系, 美颜效果越好, 程序功耗越大, 设备就会越发发热, 从而有可能影响到视频的采集。 所以前处理非常重要。

3、推流

需要直播的内容在采集、压缩处理好之后,还要上传到服务器,通过 CDN 进行分发, 用户提取想要看的压缩包,服务器进行解压才能向用户播放, 这就是推流。 推流有回源、直 推、转推等多种形式,各有优点。其中要按照实际情况具体部署。流媒体服务器有 RTMR 和 HLS 两种。其中 RTMP , Real Time Messaging Protocol(实时消息传输协议)的首 字母缩写。 该协议基于 TCP , 是一个协议族, 包括 RTMP 基本协议及 RTMPT/RTMPS/RTMPE等多种变种。 RTMP 是一种设计用来进行实时数据通信的网络协议, 主要用来在 Flash/AIR平台和支持 RTMP 协议的流媒体 /交互服务器之间进行音视频和数据通信。 RTMP 基于 flash 无法在 iOS 的浏览器里播放, 但是实时性比 HLS 要好。 HLS , HTTP Live Streaming (HTTP 直播流技术) , Apple 的动态码率自适应技术。 主要用于 PC 和 Apple 终端的音视 频服务。包括一个 m3u(8)的索引文件, TS 媒体分片文件和 key 加密串文件。

4、编码

如果把整个流媒体比喻成一个物流系统, 那么编解码就是其中配货和装货的过程, 这个 过程非常重要, 它的速度和压缩比对物流系统的意义非常大, 影响物流系统的整体速度和成 本。同样,对流媒体传输来说,编码也非常重要,它的编码性能、编码速度和编码压缩比会 直接影响整个流媒体传输的用户体验和传输成本。 简单来说原始视频数据存储空间大, 一个 1080P 的 7 s 视频需要 817 MB;原始视频数据传输占用带宽大, 10 Mbps 的带宽传输 上述 7 s 视频需要 11 分钟。而经过编码压缩之后,视频大小只有 708 k ,10 Mbps 的带 宽仅仅需要 500 ms ,可以满足实时传输的需求,所以从视频采集传感器采集来的原始视

频势必要经过视频编码。 而编码的核心思想是去除冗余信息, 包括空间冗余:图像相邻像素 之间有较强的相关性;时间冗余:视频序列的相邻图像之间内容相似; 编码冗余:不同像素 值出现的概率不同; 视觉冗余:人的视觉系统对某些细节不敏感; 知识冗余:规律性的结构 可由先验知识和背景知识得到。通过去除这些冗余,可以提高直播的质量。

5、转码

视频转码 (Video Transcoding) 是指将已经压缩编码的视频码流转换成另一个视频码 流, 以适应不同的网络带宽、 不同的终端处理能力和不同的用户需求。 转码本质上是一个先 解码, 再编码的过程, 因此转换前后的码流可能遵循相同的视频编码标准, 也可能不遵循相 同的视频编码标准, 比如将用户推流码率较高 (比如 720P) 实时转化成较低清晰度 (比如 360P) 的流以适应播放端的需求。 在视频转码时, 基本上都会选择直播云计算服务商, 目前国内一 线的云服务商都提供实时转码技术。

6、截图、录制、水印

为了更好的对直播行业进行监管, 于是国家明确提出了, 所有直播都必须打有水印并回 放留存 15天以上。这就要用到水印、截图和录制等功能,水印从某种意义上就是直播的身 份证当内容违规时就可以根据水印追究责任人; 截图和录制则是为了保留证据。 不过这些功 能相对来说比较简单,目前基本上直播云计算服务商都能提供。

看着这些内容可能相对浅显一些, 不过直播平台搭建可不是一件很容易的事, 如果没有 技术还是建议找专业的团队合作共同开发。

直播 APP 的直播实现流程的更多相关文章

  1. 从0到1打造直播 App(直播流程介绍整理 <mark><转>)

    注明:原创 2016-10-27 李智文 腾讯Bugly 概要 分享内容: 互联网内容载体变迁历程,文字——图片/声音——视频——VR/AR——……..从直播1.0秀场时代(YY),2.0游戏直播(斗 ...

  2. 从0到1打造直播 App

    转自http://dev.qq.com/topic/5811d42e7fd6ec467453bf58 概要 分享内容: 互联网内容载体变迁历程,文字——图片/声音——视频——VR/AR——……..从直 ...

  3. 【如何快速的开发一个完整的iOS直播app】(原理篇)

    原文转自:袁峥Seemygo    感谢分享.自我学习 目录 [如何快速的开发一个完整的iOS直播app](原理篇) [如何快速的开发一个完整的iOS直播app](播放篇) [如何快速的开发一个完整的 ...

  4. 【腾讯Bugly干货分享】从0到1打造直播 App

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/5811d42e7fd6ec467453bf58 作者:李智文 概要 分享内容: ...

  5. 如何快速的开发一个完整的iOS直播app(原理篇)

    目录 [如何快速的开发一个完整的iOS直播app](原理篇) [如何快速的开发一个完整的iOS直播app](播放篇) [如何快速的开发一个完整的iOS直播app](采集篇) 前言 大半年没写博客了,但 ...

  6. 移动直播app怎么做

    今年移动直播行业的兴起,诞生了一大批网红,甚至明星也开始直播了,因此不得不跟上时代的步伐,教你从零开始搭建一个完整的iOS直播app,希望能帮助到更多的人更快的了解直播. 了解直播 1 热门直播产品: ...

  7. 如何开发一个直播APP

    一.个人见解(直播难与易) 直播难:个人认为要想把直播从零开始做出来,绝对是牛逼中的牛逼,大牛中的大牛,因为直播中运用到的技术难点非常之多,视频/音频处理,图形处理,视频/音频压缩,CDN分发,即时通 ...

  8. android黑科技系列——分析某直播App的协议加密原理以及调用加密方法进行协议参数构造

    一.前言 随着直播技术火爆之后,各家都出了直播app,早期直播app的各种请求协议的参数信息都没有做任何加密措施,但是慢慢的有人开始利用这个后门开始弄刷粉关注工具,可以让一个新生的小花旦分分钟变成网红 ...

  9. 抖音短视频爆火的背后到底是什么——如何快速的开发一个完整的直播app

    前言 今年移动直播行业的兴起,诞生了一大批网红,甚至明星也开始直播了,因此不得不跟上时代的步伐,由于第一次接触的原因,因此花了很多时间了解直播,今天我来教你从零开始搭建一个完整的直播app,希望能帮助 ...

随机推荐

  1. ibus-libpinyin 无法选择除第一个外的候选词

    其实不只一个人遇到这问题 https://github.com/libpinyin/ibus-libpinyin/issues/127 临时可用的解决办法是: 清理libpinyin的cache目录相 ...

  2. EXCEL 基本函数

    案例2:修改非法日期 TODAY(),显示今天日期,数据格式是日期,如果是常规,就是数字. EXCEL 起始日期,1900/1/1是第一天 日期输入方式要正确 时间数据格式  1:00:00  = 1 ...

  3. 题解——CF Manthan, Codefest 18 (rated, Div. 1 + Div. 2) T1(找规律)

    就是找一下规律 但是奈何昨天晚上脑子抽 推错了一项QwQ 然后重新一想 A掉了QwQ #include <cstdio> #include <algorithm> #inclu ...

  4. JavaScript中 call和apply

    call()方法和apply()方法的作用相同,他们的区别在于接收参数的方式不同. 对于call(),第一个参数是this值没有变化,变化的是其余参数都直接传递给函数.(在使用call()方法时,传递 ...

  5. Perl关联数组用法集锦

    本文和大家重点讨论一下Perl关联数组的概念,创建Perl关联数组,从数组变量复制到Perl关联数组,元素的增删,用Perl关联数组循环等内容,相信通过本文的学习你对Perl关联数组的用法一定会有深刻 ...

  6. vue运行报错--dependency

    ERROR Failed to compile with 1 errors 11:17:27 This dependency was not found: 解决方法:把报错所缺少的依赖都装上 如 xx ...

  7. C++图形开发相关

    1. WxWidgets 2. GTK+ 3. U++ Framework 4. QT

  8. http与https的区别以及https如何保证数据传输安全

    http是应用层协议,它会将要传输的数据以明文的方式给传输层,这样显然不安全.https则是在应用层与传输层之间又加了一层,该层遵守SSL/TLS协议,用于数据加密. **加密的方式有两种: 对称加密 ...

  9. idea使用教程(2)

    目录: 1. open和import的区别 2.修改虚拟机配置信息 3.安装目录和设置目录 1. open和import的区别 open:如果本身就是idea项目,则可以直接open打开; impor ...

  10. VC静态调用DLL(lib)

    1. #pragma comment(lib, "libxml2.lib")#pragma comment(lib, "iconv.lib")#pragma c ...