当前位置: 首页 > news >正文

流媒体之推流和拉流

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

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

什么是推流?

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

要想用于推流还必须把音视频数据使用传输协议进行封装,变成流数据。常用的流传输协议有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地址都是这种结构组成,基本同一个平台不同直播的地址前两部分是不变的。

http://www.lryc.cn/news/156305.html

相关文章:

  • 浏览器中怎样查看前后端传值
  • 计算机竞赛 基于深度学习的人脸表情识别
  • 虹科分享 | MKA:基于先进车载网络安全解决方案的密钥协议
  • jmeter 常数吞吐量定时器
  • 【大数据Hive】hive 加载数据常用方案使用详解
  • 计及电池储能寿命损耗的微电网经济调度(matlab代码)
  • DP读书:鲲鹏处理器 架构与编程(十四)ACPI与软件架构具体调优
  • 4.正则提取html中的img标签的src内容
  • 安装对应版本pytorch和torchvision
  • 酷克数据与华为合作更进一步 携手推出云数仓联合解决方案
  • 若依 MyBatis改为MyBatis-Plus
  • docker-ubuntu
  • Mock 基本使用
  • MySql学习笔记08——事务介绍
  • AMEYA360:思瑞浦推出汽车级超低静态功耗高压LDO—TPL8031Q
  • 保留 N 条数据功能 实现方案
  • SOME/IP TTL 在各种Entry 中各是什么意思?有什么限制?
  • CSS中如何实现元素的旋转和缩放效果?
  • Unity通过偏移UV播放序列帧动画
  • 无涯教程-Android - List fragments函数
  • 【图解RabbitMQ-3】消息队列RabbitMQ介绍及核心流程
  • jmeter源码二次开发
  • 深入实现 MyBatis 底层机制的任务阶段4 - 开发 Mapper 接口和 Mapper.xml
  • 分享一下在微信上有哪些微信活动可以做
  • 视频监控/视频汇聚/视频云存储EasyCVR平台接入国标GB协议后出现断流情况,该如何解决?
  • 没有软件怎么管理固定资产
  • 几种反序列化漏洞
  • 华为OD机试 - 找出符合要求的字符串子串(Java 2023 B卷 100分)
  • 深度学习环境搭建笔记(二):mmdetection-CPU安装和训练
  • Ubuntu18.04安装cuDNN