开发直播APP需要至少全国用户能够跨平台流畅观看,这其中涉及到的点太多太复杂了,所以讲清楚直播APP怎么开发、开发途中会有什么难点,可能出现什么问题,这件事要细水长流,本篇文章先讲一些开发直播APP需要用的基础知识,至于其他的,我们日后再谈。
一、 直播APP的基础环境环境
直播APP的开发环境及工具有很多种选择,在此提供一套常用的方案
1)安卓方面:Android studio 3.3和Java 1.8,开发语言可以用Java,
2)IOS方面: Xcode 9,开发语言可以用OC
3)服务端基础环境用LAMP(linux ,apache,mysql,php )或者LNMP(linux,ngnix,mysql,php)开发语言可以用PHP和Node
4)缓存服务可以用Redis ,聊天服务用Node
5)开发框架:服务端主要采用两个,整个PC端是Thinkphp3.2,接口部分是π框架
二、 所需的流媒体传输协议
常见的流媒体传输协议有RTMP,HLS,HTTP-FLV,RTCP等
RTMP是最常用的流媒体传输协议,HLS常用于微信端直播,流媒体传输协议相关的文章我之前写过,大家有需要进一步了解的可以翻看我之前的文章
三、 开发直播APP所需的CDN方面的知识
用这张图来展示CDN在直播APP中的作用,CDN是内容分发网络(划重点,它是网络),主要作用是用于分发,它由无数个边缘服务器连成的,当主播把直播视频推流到服务器(图中的源站)时,主服务器会将视频分发给各个边缘服务器,边缘服务器会根据用户所在的位置与网络拥挤程度自动选择最佳传输路径,保证直播视频最快被用户拉流过去。CDN的优势在于,降低访问延时,并起到分流作用,减轻主服务器负担。
四、 开发直播APP所需的编解码方面的知识
原视频在不经过压缩编码之前是非常大的,会占用很大的带宽资源,产生不必要的流量费用,并且由于手机机型、厂家、系统版本不同,手机编解码格式不同,解码可能会很费劲,对直播视频进行视频数据编解码压缩,有两点好处,一是节约带宽,二是方便解码,在此过程中,会涉及到的知识有:
1) 常用编码方式:CBR、VBR
2) 常用视频格式:H.265、H.264、MPEG-4等
3) 常用音频格式:G.711μ、AAC、Opus等
3) 通常直播APP中会配备有与编码器对应的解码器,方便解码,降低解码时间带来的直播延迟。
以上就是一些关于直播APP开发的基础知识,当然啦,只靠这些知识想去开发直播APP是很困难的,更多与直播平台搭建、直播软件开发相关的知识会在后面逐渐放出,敬请期待,需要的朋友请关注我。