流媒体之推流和拉流

2023-11-19

推流:将直播内容推送至服务器的过程

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

什么是推流?

推流,指的是把采集阶段封包好的内容传输到服务器的过程。其实就是将现场的视频信号传到网络的过程。“推流”对网络要求比较高,如果网络不稳定,直播效果就会很差,观众观看直播时就会发生卡顿等现象,观看体验很是糟糕。

要想用于推流还必须把音视频数据使用传输协议进行封装,变成流数据。常用的流传输协议有RTSP、RTMP、HLS等,使用RTMP传输的延时通常在1–3秒,对于手机直播这种实时性要求非常高的场景,RTMP也成为手机直播中最常用的流传输协议。最后通过一定的Qos算法将音视频流数据推送到网络断,通过CDN进行分发。

在直播场景中,网络不稳定是非常常见的,这时就需要Qos来保证网络不稳情况下的用户观看直播的体验,通常是通过主播端和播放端设置缓存,让码率均匀。另外,针对实时变化的网络状况,动态码率和帧率也是最常用的策略。

直播中使用广泛的“推流协议”一般是RTMP(Real Time Messaging Protocol——实时消息传输协议)。该协议是一个基于TCP的协议族,是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。支持该协议的软件包括Adobe Media Server/Ultrant Media Server/red5等。

什么是拉流?

拉流是指服务器已有直播内容,根据协议类型(如RTMP、RTP、RTSP、HTTP等),与服务器建立连接并接收数据,进行拉取的过程。拉流端的核心处理在播放器端的解码和渲染,在互动直播中还需集成聊天室、点赞和礼物系统等功能。

拉流端现在支持RTMP、HLS、HDL(HTTP-FLV)三种协议,其中,在网络稳定的情况下,对于HDL协议的延时控制可达1s,完全满足互动直播的业务需求。RTMP是Adobe的专利协议,开源软件和开源库都支持的比较好,延时一般在1-3秒。HLS是苹果提出的基于HTTP的流媒体传输协议,优先是跨平台性比较好,HTML5可以直接打开播放,移动端兼容性良好,但是缺点是延迟比较高。

推流码:

RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。

一种设计用来进行实时数据通信的网络协议。

每一个推流码地址唯一指向单个的直播活动。它由rtmp://开头,包含了上传服务器地址,上传目录名和上传节点,三部分组成。所有的rtmp地址都是这种结构组成,基本同一个平台不同直播的地址前两部分是不变的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

流媒体之推流和拉流 的相关文章

随机推荐

  • 使用cpolar发布群晖NAS上的网页 上篇(7.X版)

    系列文章 使用cpolar发布群晖NAS上的网页 上篇 7 X版 使用cpolar发布群晖NAS上的网页 中篇 7 X版 使用cpolar发布群晖NAS上的网页 下篇 7 X版 随着网络科技和硬件设施的发展 人们对大容量数据存储的需求与日俱
  • STL——heap(heap并不属于STL容器组件)C++实现

    heap并不归属于STL容器组件 它是个幕后英雄 扮演priority queue的助手 priority queue允许用户以任何次序将任何元素放入容器内 但是取出时一定是从优先级最高的元素开始取 heap正是具有这样的特性 适合作为pr
  • linux ping不通本机(windows),而本机(windows)却能ping通linux

    如果本机可以ping通linux虚拟机 虚拟机的配置又没有其他问题 可以尝试关闭本机防火墙 关闭步骤也可以直接将防火墙关闭 找到两个Ipv4 linux可以ping通本机 外网也可以联了
  • vue中使用vuedraggable实现拖拽分组功能

    vue中实现拖拽分组功能 首先需要实现拖拽功能需要先了解一个组件 vue draggable 附上文档 vue draggable中文文档 先看效果 1 使用命令安装插件 yarn add vuedraggable或者 npm i S vu
  • ORA-01438处理方法

    我的学习过程 今天公司的同事告诉我生产系统出现了ORA 01438错误如下 ORA 01438 value larger than specified precision allowed for this column 由于定位不到具体的表
  • 从 Java 到 Go:构建一个博客系统后端

    目录 1 从 Java 到 Go 基本概念 1 1 包和导入 1 2 变量 常量和类型 1 3 函数和方法
  • C++PrimerPlus 第二章 开始学习C++(复习题含答案)

    C PrimerPlus 第二章 开始学习C 复习题含答案 1 C 程序的模块叫什么 它们叫作函数 2 下面的预处理器编译指令是做什么用的 include lt iostream gt 这将导致在最终的编译之前 使用iostream文件的内
  • unity木船模型,古代帆船模型,古船

    unity木船模型 模型如下图所示 下载链接在文末 点我下载资源 https download csdn net download weixin 43474701 64876331
  • Ant Design Pro 从零到一教程

    说在最前面的话 可是能全网唯一适合小白的antd教程 因为我找了接近一个周的教程 无论是视频 博客等等都没有比较完整的教程 所以才说这可能是唯一全网适合小白教程 文章末有相关学习链接 适用人群 喜欢看文字或者代码学习的人 学习的人掌握基本的
  • 大数据毕设项目 大数据旅游数据分析可视化系统 - python

    文章目录 0 前言 1 课题背景 2 数据处理 3 数据可视化工具 3 1 django框架介绍 3 2 ECharts 4 Django使用echarts进行可视化展示 mysql数据库 4 1 修改setting py连接mysql数据
  • PPT 生成整数序列字典序的r-组合算法

    生成整数序列字典序的r 组合算法 一 PPT效果展示 二 问题 2 1 简述 2 2 算法简述 2 3 例子 三 PPT实现 一 PPT效果展示 二 问题 2 1 简述 给定一个整数序列 1 2 3 n 输出其所有字典序的r 组合 注意事项
  • C# 参数按照ASCII码从小到大排序MD5加密

    region 1 获取参数GetSignParamSrc
  • c++汉诺塔蓝桥杯

    总时间限制 10000ms 单个测试点时间限制 1000ms 内存限制 262144kB 描述 小蓝很喜欢玩汉诺塔游戏 游戏中有三根柱子 开始时第一根柱子上有 n 个圆盘 从上到下圆盘的大小依次为 1 到 n 每次 可以将一个盘子从一根柱子
  • 网页引用Font Awesome图标

    方法一 demo html
  • 第二天:Struts2入门

    第一个Struts2入门案例 Struts2的下载与安装 源码下载地址 http struts apache org download cgi 源码目录结构说明 apps 框架本身提供一些案例 学习 docs 框架本身提供的文档 指南和AP
  • angular:ng build默认文件带hash值,可以防止cdn缓存导致用户文件不能刷新

    问题 如题 说明 cdn缓存了文件 如果是同一个名称文件 如果不手动清除cdn缓存 则用户获取的是旧的 而不是新的 因此如果前端打包在文件加上hash 这样文件有变动 用户会获取新文件
  • 自动驾驶数据闭环,要么被高估了,要么被低估了?

    在和身边的人沟通自动驾驶的数据闭环时 会碰到两类典型的人 第一类 当你给他讲数据闭环的时候 他的眼神是迷茫的 好像没有引起太多的重视和共鸣 甚至有人会反馈 嗯 这个没什么 我们以前干的差不多 第二类 他会觉得数据闭环 能解决一切问题 而且
  • mysql 新版本出现group by 语句不兼容问题

    原文地址 http www cnblogs com anstoner p 6414440 html 注 文中的方式 我只是用了修改sql mode 的方法 其它的未尝试 全文如下 目录 1 具体出错提示 1 1 1 查看sql mode 1
  • Java Web快速开发(1)Java 项目构建

    文章目录 Java 项目构建 1 Java 版本发展 2 集成开发环境 3 Java发布形式 1 扩展参数说明 2 JVM 内存回收机制 3 Java 程序分析调测工具 4 Maven Java 项目构建 1 Java 版本发展 EJB E
  • 流媒体之推流和拉流

    推流 将直播内容推送至服务器的过程 拉流 为服务器已有直播内容 用指定地址进行拉取的过程 什么是推流 推流 指的是把采集阶段封包好的内容传输到服务器的过程 其实就是将现场的视频信号传到网络的过程 推流 对网络要求比较高 如果网络不稳定 直播