【流媒体】推流与拉流简介

article/2025/9/26 16:56:35

本文目录

一、概念

1.1 推流

1.2 拉流

二、示意图

三、RTMP传输协议

四、流媒体协议与格式


一、概念

话不多说,先了解概念,再看示意图更直观:

1.1 推流

推流:将直播的内容推送至服务器的过程。即指的是把采集阶段封包好的内容传输到服务器的过程。其实就是将现场的视频信号传到网络的过程。“推流”对网络要求比较高,如果网络不稳定,直播效果就会很差,观众观看直播时就会发生卡顿等现象,观看体验很是糟糕。要想用于推流还必须把音视频数据使用传输协议进行封装,变成流数据。常用的流传输协议有RTSP、RTMP、HLS等,使用RTMP传输的延时通常在1–3秒,对于手机直播这种实时性要求非常高的场景,RTMP也成为手机直播中最常用的流传输协议。最后通过一定的Qos算法将音视频流数据推送到网络断,通过CDN进行分发。

1.2 拉流

拉流:指服务器已有直播内容,用指定地址进行拉取的过程。即是指服务器里面有流媒体视频文件,这些视频文件根据不同的网络协议类型(如RTMP、RTSP、HTTP等)被读取的过程,称之为拉流,说的简单点,你观看优酷视频就可以看成是拉流,视频文件存储在优酷的服务器上面,你通过HTTP(或者RTMP/RTSP)协议,也就是网页的形式去获取视频观看,这就是拉流的过程,在这个过程中有三个要素:1-服务器【提供视频文件存储的地方】 2-传输协议【就是你要通过什么方式传输视频】3-读取终端【就是通过什么播放出来】

二、示意图

以下是从网络上搜寻到的有关推流与拉流的示意图,

推流与拉流示意图(1)

一张示意图没有看明白,没有关系,再来一张示意图:

 推流与拉流示意图(2)

其实可以简要的理解为推流就是直播端,而拉流就是客户端哦。

三、RTMP传输协议

流媒体中的传输协议有很多种,以下先介绍一种,其他可以参照此协议方便理解。

RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。一种设计用来进行实时数据通信的网络协议。

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

协议构成

四、流媒体协议与格式

各种流媒体协议与格式示意图

后续再写各种流媒体协议之间的区别。

完结!


http://chatgpt.dhexx.cn/article/vZyti0t7.shtml

相关文章

OBS推流直播软件安装教程

OBS推流直播软件安装教程 一、安装推流软件 1.双击运行 OBS-Studio-21.1-Full-Installer.exe 安装包程序 2.点击 Next 3.点击I Agree (不知道为啥显示图片了 可以复制里面的连接到浏览器打开) 4.点击Next 5.点击Install 6.点击Finish&#xff0…

四款好用的免费直播编码推流软件

现代生活已经离不开互联网,离不开软件了。 这说法毫不夸张。 比如手机上各种 APP 眼花缭乱 ,各种行业, 各种功能, 各种 Logo, 各种的各种。 没有良好的整理力,是真 的不好意思让别人看到啊。 这些功能各异的 APP 程序大多数是免费 APP。今天我们来谈谈…

Android手机屏幕RTMP推流工具

Android手机屏幕RTMP推流工具是基于ffmpegopencv开发的C(eclipse、androidstudio)程序,是一款可以将安卓手机屏幕上的任何内容推送到任意一款rtmp服务器上的工具,不仅可以分享手机屏幕内容,还可以分享手机上正在播放的…

三款免费的直播推流软件介绍

三款免费的直播推流软件介绍: 1. Adobe Flash Media Encoder 2. Open Broadcaster Software 3. iAVcast 1)Flash Media Live Encoder 3.2 由著名的Adobe公司出品,值得信赖,Adobe好长时间已经停止更新了&…

tensorflow中的sess.run()

1.feed_dict feed_dict的作用是给使用placeholder创建出来的tensor赋值,feed使用一个值临时替换一个op的输出结果。 2.sess.run() 构建完图后,需要在一个会话中启动图,启动的第一步是创建一个Session对象。在执行sess.run()时,te…

tensorflow sess.run()

函数参数run( fetches, feed_dictNone, optionsNone, run_metadataNone) feed_dict参数的作用是替换图中的某个tensor的值。例如: a tf.add(2, 5) b tf.multiply(a, 3) with tf.Session() as sess: sess.run(b) 21 replace_dict {a: 1…

sess.run()自我理解

import tensorflow as tf a tf.constant([[1,2],[3,4]]) print(a) matrix2 tf.placeholder(float32,[2,2]) matrix1 matrix2#浅拷贝 sess tf.Session() print(sess.run(a)) print(a) asess.run(a) print(a) print(sess.run(matrix2 ,feed_dict{matrix2:a})) #只要是sess.…

Oracle视图学习DBA_HIST_ACTIVE_SESS_HISTORY

dba_hist_active_sess_history:这个视图是用来生成 ASH report 的, 但是 ASH report 并没有充分的利用这个视图的强 大之处,我们通过分析这个视图的详细数据,往往可以找到问题发生的原因. 可以从宏观和微观两个维度来分析这个视图(用 11gR2 的 dba_hist_active_sess_history 做…

tensorflow的sess.run的参数执行顺序

sess.run的多个参数执行 是将整个计算图中所有需要计算的节点,计算完全后一次行输出, 两次print顺序不同,结果不同 import tensorflow as tf# 基础数据 state1 tf.Variable(0, dtypetf.int8,name mi) state tf.Variable(0, dtypetf.int8…

sess.run()

函数:run(fetches, feed_dictNone, optionsNone, run_metadataNone) 当构建完图后,需要在一个session会话中启动图,第一步是创建一个Session对象。 为了取回(Fetch)操作的输出内容, 可以在使用 Session 对象…

Paper Reading:SESS(Self-Ensembling Semi-supervised3D ObjectDetction)

BackGround 虽然3D点云的目标检测当前运用十分广泛,但是当前大部分3D目标检测的方法强依赖于带有标注的数据。这些带有标注的数据往往是需要付出昂贵的代价,在2021年的水平大概是¥0.1一个框,那么一帧数据也就是对应的&#xffe5…

SESS: Self-Ensembling Semi-Supervised 3D Object Detection论文阅读及理解

SESS: Self-Ensembling Semi-Supervised 3D Object Detection Abstract 3d检测通常以来目标的标签和注释,然而获得这些注释是十分困难的。 SESS一种自集成的半监督三维目标检测框架。 设计了一种扰动方案,加强对未标记数据和新的为可见数据的泛化。 …

Elasticsearch——》ngram分词器

推荐链接: 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 总结——》【Linux】 总结——》【MongoD…

Elasticsearch 的 NGram 分词器使用技巧

一、什么是NGram 分词器? NGram分词器是ES自带的具有前缀匹配搜索功能的一个文本分词器。它能根据文本的步长逐步对写入的文本内容进行约束切割; 二、NGram和index-time搜索推荐原理 搜索的时候,不用再根据一个前缀,然后扫描整个倒排索引了…

Ngram模型

N-Gram是大词汇连续语音识别中常用的一种语言模型,对中文而言,我们称之为汉语语言模型(CLM, Chinese Language Model)。汉语语言模型利用上下文中相邻词间的搭配信息,在需要把连续无空格的拼音、笔划,或代表字母或笔划的数字&…

ElasticSearch之ngram分词器

一、什么是NGram 分词器? edge_ngram和ngram是ElasticSearch自带的两个分词器,一般设置索引映射的时候都会用到,设置完步长之后,就可以直接给解析器analyzer的tokenizer赋值使用。 二、怎么使用 完整的索引结构: {&…

MySql的Ngram全文索引

前言 在我们日常开发中,很多时候会遇到对数据库中某个字段模糊查询的需求,也就是like某个字段,但是很多公司像阿里,京东都禁止使用like来对数据库进行模糊查询,原因是啥呢? 我们先来看下面三条语句 其中t…

语言模型-Ngram

总结工作中用到和学习的知识,也算自己的一个笔记。 语言模型 语言模型简单来讲,就是计算一个句子的概率,更确切的说是计算组成这个句子一系列词语的概率。 举个简单的例子,我们知道“武松打死了老虎”相比于“老虎了死武松打”,更像是一句正常的话,这是因为前者出…

N-gram算法

语言模型 语言模型起源于语音识别(speech recognition),输入一段音频数据,语音识别系统通常会生成多个句子作为候选,究竟哪个句子更合理?就需要用到语言模型对候选句子进行排序。 语言模型:对于任意的词序列&#xf…

N-Gram语言模型

一、n-gram是什么 wikipedia上有关n-gram的定义: n-gram是一种统计语言模型,用来根据前(n-1)个item来预测第n个item。在应用层面,这些item可以是音素(语音识别应用)、字符(输入法应用)、词&am…