直播APP源码搭建简易直播平台及我的开发直播系统的难点

如何用直播APP源码搭建一个简易的直播平台前端

一.前端推流
1.推流能够采用命令: ffmpeg -i input -vcodec copy -acodec copy -f flv rtmp://127.0.0.1/live/cgstream0input 能够是实时流,也能够是文件,若是是文件 须要加上-re。运用中须要将127.0.0.1换成rtmp所在机器的ip地址。linux

用命令推流时间戳信息不能任意修改,想要达到一个满意的结果仍是要用代码实现。程序员

主要方法代码以下:数据库

1.打开视频流,filename能够文件名称也能够是实时流url.
2.建立输出上下文以及输出流,输出流的格式须要设置成flv
3.从输入流中读取音视频包windows

二. 服务端
服务端能够选择crtmpserver,crtmpserver开源,在windows平台以及linux平台下均可以运行。
随着人们对视频质量要求的提升,基本上视频的分辨率都是高清(1080p),码率基本会在4M以上。试想若是服务器网卡选择千兆网卡,单个网卡最多也就支持两百多路。通常来说,服务器的cpu配置会比普通电脑高不少,支持几百路并发是不会出现性能问题。缓存

三. 播放端
若是在网页上播放(IE),能够选择JwPlayer,若是用插件的也是能够。Android端播放器若是底层基于ffmpeg,也能够播放CrtmpServer
转发的音视频流(ffmpeg须要引入librtmp库),IOS系统 同理。播放的url是rtmp:/服务器

四. 如何搭建
1.首先 下载CrtmpServer服务,运行双击文件夹下的crtmpserver.exe,若是没有闪退,说明运行成功.
2.下载ffmpeg.exe,在命令行执行 ffmpeg -i input -vcodec copy -acodec copy -f flv rtmp://127.0.0.1/live/cgstream0 127.0.0.1改为crtmpserver.exe所在服务器的地址.若是你在linux下推流,须要linux版本的ffmpeg。cgstream0能够根据须要任意修改。在 windows平台下若是推流成功ffmpeg会一直打印信息,出错也会有相应的提示。
3.播放:播放能够用ffplayer.exe(这个工具对rtmp流支持不是很好 ,播放的地址是rtmp://127.0.0.1/live/cgstream0 live=1),还能够用CGPlayer播放器。网络

我的开发直播系统的难点
一、机型配适问题,网络直播系统至少须要面向全国观众,这样一来,系统与机型的普遍适配就成了很是痛苦的工做。移动电话系统大体能够分为Android和iOS。iOS还好,只有几个型号,所以,直播系统开发能够在规范和大小等编码问题上节省大量精力。有了一个,其余机型进行小的修改就能够被彻底应用。Android市场上手机型号产品众多,买卖得火热的少说都有七八个,并且在安卓开源的基础上,每一个品牌都有本身的手机系统,这使得产品应用程序开发人员更难开发,因此机型配置是一个很是使人头疼的问题。并发

二、网络不佳情况下保证直播质量,网络直播系统在运营时,很是怕的一点是在弱网状况下产生卡顿。一样是弱网络别人家的直播就能正常进行,而你家的系统就卡卡顿顿,那不是很尴尬嘛,这对于用户使用感也是很是大的打击。cdn分销网络对用户来讲是不可见的,但用户的体验和清晰度与之密切相关。固然,随着5G网络的搭建部署完成,出现卡顿的状况会大大减小。分布式

三、画面延迟情况,直播最主要的要求就是流畅快捷。主播开始直播后,直播视频数据就会及时被网络直播系统内置的编码器压缩编码并推流到服务器,待用户打开服务器就会进行拉流和解码,方可观看,在这时,若是解码时间过慢,画面延迟状况就会产生,因此如何优化解码器也考验着开发人员。

四、防盗链机制,平台运营期间,原创的惟一性是很是关键的,若是你随边让一个小平台连接到防盗,那么这个防盗机制就作得不算好了。

五、 美颜技术的好坏,一般咱们会将美颜SDK嵌入网络直播系统,实如今直播过程当中进行美颜。美颜SDK基于人脸识别技术,根据人脸关键点部位进行美颜、美型等操做。美颜的同时是否会影响画面清晰度以及美颜效果的稳定性、天然度都是判断美颜SDK好坏的标准。
最后,除上述问题以外,还有登陆,权限管理,状态管理等,各类应用服务,消息推送,聊天,礼品系统,支付系统,操做支持系统,统计系统等,以及数据库,高速缓存,分布式文件存储,消息队列以及操做和维护系统。

因而可知,开发一个直播系统有着许多技术难点,一个程序员是很难搞定的,通常直播系统开发的团队都由十几到几十人间构成。

相关文章
相关标签/搜索