直播APP技术架构 直播APP涉及到如下几个方面的角色: 直播业务服务器,该服务器主要是验证客户端的权限并在权限合法之后授权客户端推流参数,客户端使用推流参数进行推流。 七牛直播系统,该系统主要根据直播业务服务器的请求来创建直播流,获取直播流信息,提取直播流回看地址等信息。 推流客户端,推流客户端主要工作是从直播业务服务器获取直播推流参数,然后将录制的视频流推送到七牛直播系统。 直播业务服务器一般由客户自行开发,用来和七牛直播系统进行交互,七牛提供服务端的SDK,客户可以很方便地使用适合自己的编程语言的SDK开发包来开发服务端API。 推流客户端一般由客户自行开发,用来和直播业务服务器交互,将视频流推送到七牛直播系统或者从直播业务服务器获取观看地址,然后从七牛直播系统根据地址获取视频内容。 直播APP业务流程 直播APP登录帐号,该账号的合法性和其相关的业务逻辑由直播业务服务器提供和验证。 直播APP从直播业务服务器获取推流的参数信息,准备使用集成在APP中的七牛推流SDK来将视频流推送到七牛直播系统 直播APP从直播业务服务器获取推流参数后,在开始推流时,发送开始信号给业务服务器,业务服务器记 录下该直播过程的起始时间,并生成唯一性id给客户端 直播APP开始进行推流,推送的直播流数据将通过SDK直接发送到七牛直播系统,推流协议为RTMP。 其他的直播APP客户可以从直播业务服务器获取当前直播的RTMP或者HLS的地址进行观看,RTMP的实时性要优于HLS,另外七牛提供的直播播放器支持RTMP协议。 直播APP结束推流,同时发送停止推流信号给直播业务服务器,业务服务器记录下该直播过程的结束时间,可选性地让客户命名直播过程,方便未来回放。 直播APP本身也可以获取已直播完成的视频播放地址进行回看。