直播 APP 开发 的火爆,是顺应时代发展市场需求的产物, 直播 系统属于视觉快消类产品,内容丰富多彩,产品设计简单,不需要任何商品作为支撑,只需要在满足用户的需求基础上做更好的体验优化,以及借助各大流量渠道来达成宣传品牌的目的即可,可以说 直播 APP 开发的市场风险是较小的 。因此越来越多的人想要开发一款 仿快手、仿抖音、仿映客、仿花椒的直播 系统。
视频直播,可以分为 采集,前处理,编码,传输,解码,渲染 这几个环节 :
采集,iOS 是比较简单的, Android 则要做些机型适配工作, PC 最麻烦各种奇葩摄像头驱动,出了问题特别不好处理,建议放弃 PC 只支持手机主播,目前几个新进的直播平台都是这样的。
编码,肯定要采用硬编码,软编码720p 完全没希望,勉强能编码也会导致 CPU 过热烫到摄像头。硬编码兼容性又是一个大坑, android 上要有人去填。编码要在分辨率,帧率,码率, GOP 等参数设计上找到最佳平衡点。
传输,自己做不现实,交给CDN 服务商吧,也就是贵了点,相信有志于做直播平台改变世界的你不差钱。假设 2W PCU 大约每月带宽费用 100 万左右,因为清晰流畅的 720p 要 1.5mbps 左右。 CDN 只提供了带宽和服务器间传输,发送和接收端的网络连接抖动缓冲还是要自己写的。不想要卡顿,必然要加大缓冲,会导致延迟高,延迟高影响互动性,要做权衡。
解码,也肯定要硬解码,目前手机普遍支持硬解了,只是android 上还是有兼容性大坑要填。
渲染,这个难点不在于绘制,而在于音画同步,目前几个直播做得都不好。
常见的视频直播相关协议:
RTMP(Real Time Messaging Protocol ,实时消息传送协议 )
RTMP 是 Adobe Systems 公司为 Flash 播放器和服务器之间音频、视频和数据传输开发的开放协议。它有三种变种:
工作在TCP 之上的明文协议,使用端口 1935 ;
RTMPT 封装在 HTTP 请求之中,可穿越防火墙;
RTMPS 类似 RTMPT ,但使用的是 HTTPS 连接;
RTMP 协议是被 Flash 用于对象、视频、音频的传输。这个协议建立在 TCP 协议或者轮询 HTTP 协议之上。 RTMP 协议就像一个用来装数据包的容器,这些数据既可以是 AMF 格式的数据,也可以是 FLV 中的视音频数据。一个单一的连接可以通过不同的通道传输多路网络流,这些通道中的包都是按照固定大小的包传输的。
RTCP(Real-time Transport Control Protocol ,实时传输控制协议)
RTCP 是 RTP 的配套协议,为 RTP 媒体流提供信道外的控制。 RTCP 和 RTP 一起协作将多媒体数据打包和发送,定期在多媒体流会话参与者之间传输控制数据。
RTCP 的主要功能是为 RTP 所提供的服务质量( QoS )提供反馈,收集相关媒体连接的统计信息,例如传输字节数,传输分组数,丢失分组数,单向和双向网络延迟等等。网络应用程序可以利用 RTCP 所提供的信息来提高服务质量,比如限制流量或改用压缩比小的编解码器。
这些显然不是一个程序员能解决的 。
技术是直播APP 制作的支撑。行业经验、技术性团队,这全部都是能够开发出一个优秀 APP 的团队必须具备的;性价比也要高 , 性价比可不单单指的是价格,有些公司定制开发APP 只盯着价格,觉得价格低的才是好的。但是往往低价格开发出的 APP 都不能使用,最后只能重新开发。这就是为什么,布谷鸟直播 APP 制作团队一定要劝说每一个定制开发 APP 的企业选择专业公司,因为这样才能保证性价比的均衡;流畅稳定、安全兼容性强。直播类 APP 对于系统兼容性的要求更高,在直播过程中要求画面清晰流畅,没有闪退等情况。一旦出现这种情况会严重降低用户的体验感。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69980878/viewspace-2737101/,如需转载,请注明出处,否则将追究法律责任。