直播源代码搭建过程中的常用协议及模块划分种类
直播源代码常用协议:
RTMP协议,该协议与TCP是一个协议组,包括RTMP基本协议及RTMP/RTMPS/RTMPE等多种变种。RTMP协议主要用于实时数据通信的网络技术协议,目前RTMP协议还需要依靠播放器中的flash插件实现流媒体播放。
现在的直播平台用flash插件播放的已经很少了,毕竟到今年年底,flash插件就无法再使用。现在直播平台播放用到最多的是HTML5播放格式,这类格式对编解码要求小,能用最少的流量传递原视频质量。HTML5多用在网页端直播,软件类直播还是用RTMP居多。
根据运营商不同,Android端和iOS端使用的协议也不一样
iOS端多用HLS协议,HLS苹果动态码率的自适应技术,主要用户PC端和苹果终端的音视频服务,包括m3u8的索引文件和key加密串文件
直播源代码模块划分种类:
视频录制端。一般是指电脑上的音视频输入设备或手机端摄像头、麦克风,目前以移动端的手机视频为主,技术:webRTC
视频播放端。可以是电脑上的播放器,手机端的Native播放器,还有就是H5的video标签等,目前还是以手机端的Native播放器为主。技术:HLS协议或RTMP协议(用途:视频播放)、ffmpeg(用途:使用RTMP协议时负责移动端视频的解码)
视频服务器端。一般是一台nginx服务器,用来接受视频录制端提供的视频源,同时提供给视频播放端流服务。技术:RTMP协议(用途:上传视频流)、nginx rtmp-module或SRS(simple-rtmp-server)(用户:留服务器)
以上直播源代码的模块分类和播放协议仅为部分,具体选择还要看运营商的需求和平台搭建的需求。
本文已声明云豹原创,转载请注明出处。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
iOS 定位服务与地图
CoreLocation(定位与地理编码等) 使用步骤: 导入CoreLocation库 创建CLLocationManager对象 请求用户授权 --- 需要在Info.plist中加入 NSLocationWhenInUseUsageDescription 这个键 设置代理 --- 并实现相应代理方法 调用开始定位方法 调用结束定位方法 import UIKit import CoreLocation class ViewController: UIViewController { // 1. 创建CLLocationManager对象 lazy var locationManger = CLLocationManager() override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. // 2. 请求用户授权 locationManger.requestWhenInUseAuthorization() // 3. 设置代理 location...
- 下一篇
面试官:你对Redis缓存了解吗?面对这11道面试题你是否有很多问号?
前言 关于Redis的知识,总结了一个脑图分享给大家 1、在项目中缓存是如何使用的?为什么要用缓存?缓存使用不当会造成什么后果? 面试官心理分析 这个问题,互联网公司必问,要是一个人连缓存都不太清楚,那确实比较尴尬。 只要问到缓存,上来第一个问题,肯定是先问问你项目哪里用了缓存?为啥要用?不用行不行?如果用了以后可能会有什么不良的后果? 这就是看看你对缓存这个东西背后有没有思考,如果你就是傻乎乎的瞎用,没法给面试官一个合理的解答,那面试官对你印象肯定不太好,觉得你平时思考太少,就知道干活儿。 面试题剖析 项目中缓存是如何使用的? 这个,需要结合自己项目的业务来。 为什么要用缓存? 用缓存,主要有两个用途:高性能、高并发。 高性能 假设这么个场景,你有个操作,一个请求过来,吭哧吭哧你各种乱七八糟操作 mysql,半天查出来一个结果,耗时 600ms。但是这个结果可能接下来几个小时都不会变了,或者变了也可以不用立即反馈给用户。那么此时咋办? 缓存啊,折腾 600ms 查出来的结果,扔缓存里,一个 key 对应一个 value,下次再有人查,别走 mysql折腾 600ms 了,直接从缓存里...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Hadoop3单机部署,实现最简伪集群
- CentOS8编译安装MySQL8.0.19
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Mario游戏-低调大师作品
- CentOS6,CentOS7官方镜像安装Oracle11G