分享

直播软件开发,根据模块划分出来的传输协议

 yunbaoKJ 2022-05-09 发布于山东省

直播软件开发的模块可以大致划分为功能模块、互动模块、盈利模块三个部分,每个模块涉及到的功能不一样就导致直播软件开发在各个模块使用的传输协议就不一样。

以互动模块为例,弹幕功能没有太高的实时性要求,而且正常情况下主播端看到弹幕是在用户发送弹幕2-3秒后,这属于正常的延迟,那么使用RTMP协议完全可以满足直播软件开发的需要;如果是语音连麦场景下,RTMP协议的1-3秒延迟就显得有些久了,就需要UDP协议来满足连麦的实时性。那么根据模块的不同,还能划分出哪些不同的协议呢?

  



一、直播软件开发常用的传输协议

这里我们主要来说一下RTMP协议,该协议是与TCP同一个协议组,包括RTMP及本协议及RTMP/RTMPS/RTMPE等多种变种。RTMP协议主要用于实时数据通信的网络技术协议,目前RTMP协议还需要依靠播放器中的flash插件实现流媒体播放。

现在直播软件开发已经不会再为支持flash插件而费力了,随着flash插件的停用,取而代之的是HTML5的播放格式,这类格式对编解码要求小,能用最少的流量传递原视频质量。HTML5多用在网页端直播,软件类直播还是用RTMP的居多。

根据运营商不同,Android端和iOS端使用的协议也不一样,iOS端多用HLS协议,HLS苹果动态码率的自适应技术,主要为PC端和苹果终端的音视频服务,包括m3u8的索引文件和key加密串文件

  



二、直播软件开发的直播和传输模块

1、视频录制端,一般是指电脑上的音视频输入设备或手机端摄像头、麦克风,目前以移动端的手机视频为主,主要技术是webRTC

2、视频播放端,可以是电脑上的播放器,手机端的native播放器,还有就是H5video标签等,目前还是以手机端的native播放器为主,技术:HLS协议或RTMP协议、FFmpeg

3、视频服务器端,一般是一台Nginx服务器,用来接受视频录制端提供的视频源,同时提供给视频播放端流服务。技术:RTMP协议(用途:上传视频流)、Nginxrtmp-moduleSRSsimple-rtmp-server,用途:流服务器)

三、直播软件开发的分发系统

内容分发上离不开CDN的帮助,CDN的存在帮助直播软件开发完成了快速传递视频的任务,选择CDN服务商时需要考虑到CDN节点的分布问题,节点部署越广泛,能覆盖的面积就越广,在加速方面就能达到更好的效果,毕竟内容分发也是直播流程中非常重要的一部分,所以运营商还是要多挑选几家,对比的选择。

声明:以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多