先上图

推流,指的是把采集阶段封包好的内容传输到服务器的过程。介绍一下目前有主流的推送协议,以及各自的优缺点。

  • RTMP

RTMP是Real Time Messaging Protocol(实时消息传输协议)的缩写,是Adobe公司为Flash/AIR平台和服务器之间音、视频及数据传输开发的实时消息传送协议。RTMP协议基于TCP,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。

RTMP协议中,视频必须是H264编码,音频必须是AAC或MP3编码,且多以flv格式封包。RTMP是目前最主流的流媒体传输协议,对CDN支持良好,实现难度较低,是大多数的直播平台的选择。

不过RTMP有着一个最大的不足——不支持浏览器,且Adobe已不再更新。因此直播服务要支持浏览器的话,需要另外的推送协议支持。

  • HLS

Http Live Streaming是由Apple公司定义的基于HTTP的流媒体实时传输协议。它的原理是将整个流分为多个小的文件来下载,每次只下载若干个。服务器端会将最新的直播数据生成新的小文件,客户端只要不停的按顺序播放从服务器获取到的文件,就实现了直播。基本上,HLS是以点播的技术实现了直播的体验。因为每个小文件的时长很短,客户端可以很快地切换码率,以适应不同带宽条件下的播放。

分段推送的技术特点,决定了HLS的延迟一般会高于普通的流媒体直播协议。

传输内容包括两部分:一是M3U8描述文件,二是TS媒体文件。TS媒体文件中的视频必须是H264编码,音频必须是AAC或MP3编码。

由于数据通过HTTP协议传输,所以完全不用考虑防火墙或者代理的问题,而且分段文件的时长很短,不过HLS的 

  • WebRTC

WebRTC(Web Real-Time Communication),即“源自网页即时通信”。WebRTC是一个支持浏览器进行实时语音、视频对话的开源协议。WebRTC的支持者甚多,Google、Mozilla、Opera推动其成为W3C推荐标准。

WebRTC支持目前的主流浏览器,并且基于SRTP和UDP,即便在网络信号一般的情况下也具备较好的稳定性。

此外,WebRTC可以实现点对点通信,通信双方延时低,是实现“连麦”功能比较好的选择。

拉流是指服务器已有直播内容,用指定地址进行拉取的过程。

直播推流拉流概念介绍相关推荐

  1. java阿里云直播推流拉流工具类

    package com.core.common.utils;import com.alibaba.fastjson.JSONObject;import java.util.HashMap; impor ...

  2. video 拉流卡顿_【video】视频直播推流拉流慢、卡顿解决方案

    一.摘要 视频直播类App当前已经普遍采用CDN来实现访问加速,但还是经常遇到推拉流慢.卡顿的问题,一般是由于调度不精准.域名劫持.终端手机接入网络动态切换等因素导致.结合使用CDN和HTTPDNS可 ...

  3. 推流拉流RMTP方案:Nginx+ffmpeg/obs+vlc/h5

    RMTP方案:Nginx+ffmpeg/obs+vlc/h5 服务器安装 1.依赖 sudo apt-get update  sudo apt-get install libpcre3 libpcre ...

  4. 微信小程序推流拉流live-pusher/live-player示例,使用本地搭建RTMP服务

    适用读者: 对微信小程序已经有基本的了解. 例如:小程序账号申请. 常用组件.小程序开发工具 对nodejs已经有基本的了解. 对微信小程序流媒体/实时音视频组件感兴趣的童鞋. 对小鱼易联/小鱼在家, ...

  5. 【SRS】流媒体服务器(推流+拉流+转流)

    文章目录 前言 安装 推流 拉流 转流 前言 课程作业需要搭建一个视频流服务器,最初我采用的是HLS推流方式,发现那延迟卡的我一愣一愣的,这主要还是由于HLS需要等待切片完成.那行吧,那就换一个吧,一 ...

  6. Android 直播 直播测试拉流播放器和地址

    Android 直播 直播测试拉流播放器和地址 直播拉流播放器 直播拉流测试地址 测试类抖音视频 直播拉流播放器 推荐VLC 直播拉流测试地址 香港财经 *****:rtmp://202.69.69. ...

  7. 不止直播:腾讯云直播MLVB 插件除了推流/拉流还有哪些亮眼功能

    在之前几篇的文章中,我们介绍了腾讯云移动直播插件MLVB的一些基础概念()以及移动直播控件可以拓展的直播场景(),今天就来分享MLVB插件除了直播的基础推拉流功能以外还有哪些功能来帮助直播APP和小程 ...

  8. 直播系统(推流拉流) nginx+JavaCV+springboot

    nginx安装配置 1) 下载安装nginx,我下载的版本是nginx-1.7.11.3-Gryphon(提取码:xj6f),下载完成后解压 2) 下载服务器状态检查程序(提取码:i6hw),下载完成 ...

  9. 一个小时开发的直播推拉流软件来了

    一.简介 目前市面上直播推流的软件有很多,拉流也很常见.近期因为业务需要,需要搭建一整套服务端推流,客户端拉流的程序.随即进行了展开研究,花了一个小时做了个基于winfrom桌面版的推拉流软件.另外稍 ...

最新文章

  1. c++入门之初话结构体
  2. Qt下的OpenGL 编程(3)绘制平面几何体
  3. 索引中丢失IN或OUT
  4. JavaScript作用域学习笔记(ife2015spring学习心得)
  5. Linux 下Oracle11g 自动随系统启动
  6. global与nonlocal关键字
  7. (转)三大博弈定义+结论
  8. 测试MongoDB的自动分片
  9. 使用命令重定向操作符 (Redirection Operators)
  10. Java代码性能优化常用方法
  11. Java调用Lua脚本(热载实现)
  12. 毕设日志——linux服务器anaconda下安装caffe
  13. windows 搭建HTTP文件服务器(Nginx 方式)
  14. VS2012番茄助手安装破解教程
  15. 贪吃蛇c加加代码_c语言贪吃蛇代码
  16. jquery版本共存_多个jQuery版本共存的处理方案
  17. manjaro设置字体_Manjaro 常用配置
  18. wdr7660虚拟服务器设置,TP-LINK WDR7660用手机怎么设置?
  19. phpStudy2018中Apache启动失败
  20. ElasticSearch中 如何使用“group by“ 进行日 周 月 年统计呢?(ElasticsearchTemplate进行聚合查询)

热门文章

  1. 【Adrealm智库专栏】数字广告为何需要“去中心化”?
  2. 有没有一款好的在线报表编辑器?详解:FastReport Online Designer
  3. Android 客户端直播实现
  4. NPDP产品经理小知识:黄金圈法则
  5. 2017电子设计大赛-光电科技协会板球控制系统
  6. 最长公共子序列问题-----题目
  7. Python可视化库matplotlib.pyplot里contour与contourf的区别
  8. 数据结构各结构特点(数组、链表、栈、队列、树)
  9. BT下载的原理 和疑问
  10. Java中变量声明使用,内存分析,数据类型常见码表详解