手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

如何从 0 到 1 开发一款完整的直播 App

时间:2024-10-12 01:39:27

随着移动互联网的发展,越来越多的人选择用手机来看直播。一款直播 App,需花费多少力气解决技术问题?市面上有哪些成熟的方案可以直接借鉴?如何把这些方案结合在一起并解决问题?

开发一个直播 App 包含哪些部分

1、OS / Android 客户端Web 端播放器业务服务器分发网络

iOS / Android 客户端

1、iOS / Android 客户端包含采集、音视频处理、编码和连麦功能。

2、采集:通过手机的麦克风和摄象头把音视频采集到一起。必须为 Android 和 iOS 各做一套采集方案。

3、音视频处理:采集后的音视频不能直接推流,激默芡食必须对采集的音视频数据进行处理。比如,视频数据每秒钟要处理 25 到 30 帧的图片,这对 CPU 的消耗非常大。此外,视频处理方面,主播美颜是一个刚需,此外还必须给视频打上水印。音频方面也有很多东西是可做的,比方说音效,如混响效果可以让主播的声音听起来更有磁性。此外如果想要让主播可以表演唱歌,则需要讲伴奏的音频文件和主播的声音进行混音。为了更好的体验,返听功能也可以做。

4、编码:在直播推流进行编码时,尽量采用硬编,这可以减少 CPU 占用率,间接可以减少手机的发热量和耗电量。为了保证在所有设备上我们都可以进行编码,还需要准备一个软编方案,当某种机型上无法使用硬编,则立即还成软编。

5、连麦:作为观众给主播反馈的重要形式,可以极大丰富观众直播体验。比如,主播在表演节目时,观众想和主播对话,主播就会弹出一个邀请,要求连麦观众的画面就会出现在主播屏幕右下姹州比蹼角的小窗上,所有的观众都可以看到这个场景。传统的直播采取的是主播一对多的推流的方式,而连麦可以做到多对多推流,这个功能非常受欢迎。连麦可以做出很多丰富的形式,例如主播与主播进行 PK,观众把屏幕横过来后,可以看到屏幕左边是一个主播的图象,右边是另外一个主播的图象。

分发网络

1、对于分发网络结构的选择,常见的是树状的分发网络,比如 CDN 就是一种树状分发网络。

如何从 0 到 1 开发一款完整的直播 App

2、以上图 为例,演示 CDN 。图中每个白色节点对应某一个地方的机房。这种结构中,节点之间的等级有层次之分。

3、推流通常是由中央向边缘节点推,比如从左侧开始推流到中心节点,然后再经过中心节点分发到全国各地的边缘节点,观众就能够观看直播。

4、这种传统的 CDN 树型分发网络比较常见,但是不一定适应现在这种主播数目越来越多的趋势。

5、与十年前相比,只有电视媒体可以做直播。直播的参与者也都是专业的主持人。但是,现在人们只需要一台手机就可以做直播了。换句话说,直播这个事,参与的门槛越来越低是一个趋势。

6、这种趋势带来的影响有两个:1. 主播的数量越来越多,造成推流节点里的人会越来越多;2. 对于某个主播的观众而言,不再局限于某一个区域,而是分布在全国各地。

7、这样一来,树状分发网络的中心节点将成为整个网络的瓶颈。因为大量的主播的推流几乎不可避免地经过中心节点,而中心节点一旦故障则会影响全局

8、为了解决这个问题,可以选择网状的分发网络来代替树状的分发网络。

如何从 0 到 1 开发一款完整的直播 App

9、以上图 为例,演示分发网络,与树状网络一个最大的区别是节点对等。直播线路是靠瘠彐伊竽节点之间的地理关系、资源负磙沏损旷载、网络质量形成调度依据绘制最优线路。相对于 CDN 树状网络,一个很明显的特性是分发网络没有中心节点,做到了去中心化,以此规避因中心节点网络波动导致片区故障。这种网络更加适合做直播,七牛云的实时流分发网络采用的也是这种网状结构。

10、开发一款完整的直播 App 在客户端涉及到一些技术问题以及分发网络要解决,但采用七牛的直播云 SDK 和 LiveNet 将会省去很多麻烦。因为七牛的直播云 SDK ,针对的就是 Android 和 IOS 移动客户端,而 LiveNet 相对于传统的 CDN 采取的是智能调度与分发。

11、此外,七牛直播云 SDK 可以从 LiveNet 获取离设备最近的几个边缘瘠彐伊竽节点的网络状态,从而挑选一个梓脶阗擗最好的节点来进行推流和播放。这类似于出门之前在手机上看看城市交通状况,选一条最不拥堵的路出行。这不但可以保持本设备拥有优质的网络资源,同时对于整个网络的各个节点均摊负载也是有利的。

12、但是,有了这些功能还远远不够。直播是一种转瞬即逝的东西,播完了就没了,这种东西如何做运营呢?这其实就涉及如何把直播内容存储起来的问题。对此,七牛云可以提供云存储服务,它可以方便地把直播的内容存储下来,以供点播和回放。

13、此外将直播内容抽帧成一组图片,然后利用七牛数据处理平台的图片鉴黄鉴暴恐服务,就可以对直播进行鉴黄和鉴暴恐。

© 手抄报圈