博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
网络视频直播系统开发第一课,开发直播APP软件一定要懂的基础知识 ...
阅读量:6082 次
发布时间:2019-06-20

本文共 1186 字,大约阅读时间需要 3 分钟。

“网络视频直播系统怎么开发、有什么难点”这类文章实在是太难写了,因为开发直播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常用于微信端直播,流媒体传输协议相关的文章我之前写过,大家有需要进一步了解的可以翻看我之前的文章

三、 开发网络视频直播系统所需的CDN方面的知识

用这张图来展示CDN在网络视频直播系统中的作用,CDN是内容分发网络(划重点,它是网络),主要作用是用于分发,它由无数个边缘服务器连成的,当主播把直播视频推流到服务器(图中的源站)时,主服务器会将视频分发给各个边缘服务器,边缘服务器会根据用户所在的位置与网络拥挤程度自动选择最佳传输路径,保证直播视频最快被用户拉流过去。CDN的优势在于,降低访问延时,并起到分流作用,减轻主服务器负担。

四、 开发网络视频直播系统所需的编解码方面的知识

原视频在不经过压缩编码之前是非常大的,会占用很大的带宽资源,产生不必要的流量费用,并且由于手机机型、厂家、系统版本不同,手机编解码格式不同,解码可能会很费劲,对直播视频进行视频数据编解码压缩,有两点好处,一是节约带宽,二是方便解码,在此过程中,会涉及到的知识有:

1) 常用编码方式:CBR、VBR

2) 常用视频格式:H.265、H.264、MPEG-4等

3) 常用音频格式:G.711μ、AAC、Opus等

3) 通常网络视频直播系统中会配备有与编码器对应的解码器,方便解码,降低解码时间带来的直播延迟。

以上就是一些关于网络视频直播系统开发的基础知识,当然啦,只靠这些知识想去开发直播app软件是很困难的,更多与直播平台建设、直播软件开发相关的资讯和分析会在以后逐渐放出,敬请期待,需要的朋友请关注我。

声明:文章为原创内容,转载请注明出处及作者

你可能感兴趣的文章
VM EBS R12迁移,启动APTier . AutoConfig错误
查看>>
atitit.细节决定成败的适合情形与缺点
查看>>
Mysql利用binlog恢复数据
查看>>
我的友情链接
查看>>
用yum安装mariadb
查看>>
一点IT"边缘化"的人的思考
查看>>
WPF 降低.net framework到4.0
查看>>
搭建一个通用的脚手架
查看>>
开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
查看>>
开源磁盘加密软件VeraCrypt教程
查看>>
本地vs云:大数据厮杀的最终幸存者会是谁?
查看>>
阿里云公共镜像、自定义镜像、共享镜像和镜像市场的区别 ...
查看>>
shadowtunnel v1.7 发布:新增上级负载均衡支持独立密码
查看>>
Java线程:什么是线程
查看>>
mysql5.7 创建一个超级管理员
查看>>
【框架整合】Maven-SpringMVC3.X+Spring3.X+MyBatis3-日志、JSON解析、表关联查询等均已配置好...
查看>>
要想成为高级Java程序员需要具备哪些知识呢?
查看>>
带着问题去学习--Nginx配置解析(一)
查看>>
onix-文件系统
查看>>
java.io.Serializable浅析
查看>>