流媒体之从零实现搭建简单流媒体服务器,推流,拉流播放全景视频

article/2025/9/19 16:10:29

一、直播与点播

  • 直播:在我的理解中是实时录制的内容,类似各个晚会的实时直播过程,在现场采集图像的同时传输影像到网络上。
  • 点播:是提前录制完成的内容,类似某些直播平台上根据观众的需求播放某些电影或经典电视剧。终端看到的内容是编辑好的视频文件,不是实时录制的。

本篇文章实现的功能就类似是点播,将本地的全景视频通过服务器传输到各个客户端。

二、实现直播或点播的关键步骤

1、搭建及配置流媒体服务器 ;
2、推流,将本地视频或直播视频以流媒体的形式推送给流媒体服务器 (可能会涉及格式转换);
3、拉流 ,从服务器中将流媒体下载到本地并播放,一般是边下载边播放的过程。

三、具体实现步骤

在搭建流媒体服务器之前需要了解在拉流时我们需要用到哪种协议;目前比较主流的流协议有:RTMP、RTSP及HLS ,其中前两种协议多用于PC,HLS可以很好的支持Android、IOS端。
为了更好的支持手机端观看,我选择的是HLS协议,该协议规定 视频的封装格式为TS,除了TS视频文件本身,还定义了用来控制播放的m3u8文件。
而流媒体做推流时一般会用到RTMP协议,由此本文中推流使用RTMP协议,拉流使用HLS协议。

1. 搭建Windows系统下的nginx流媒体服务器。

网上很多资料是基于linux搭建流媒体服务器,由于本人对服务器相关技术一窍不通,所以选择了尝试在windows系统下直接搭建流媒体服务器。
此处参考如下大神整理的步骤:
Windows下的nginx流媒体服务器搭建过程

2、推送本地视频到流媒体服务器

目前有两种比较主流的推流应用程序:FFmpeg 及 OBS statio

  1. FFmpeg推流 :在大神整理的流媒体服务器搭建过程中有涉及到使用 ffmpeg 中的相关
    命令对本地视频进行推送;
    ①ffmpeg.exe -re -i “a.mp4” -acodec aac -ar 32000 -vcodec copy -f flv “rtmp://193.156.0.56/live/test1”
    以上命令,是需要将本地视频放置在ffmpeg的安装路径之下的,且输入命令时需要定位到该路径下,如下图所示。
    在这里插入图片描述
    在这里插入图片描述

② ffmpeg -re -i C:\Users\15248\Desktop\a.mp4 -c copy -f flv rtmp://193.156.0.56/live/test1
以上命令适用于为ffmpeg 配置好了系统环境,且视频放在对应路径(将视频拖到命令窗口即可)。

(2)OBS 推流
OBS是免费且开源的视频录制以及直播推流的软件,广泛使用于视频采集,直播等领域,且支持多种不同的语言界面,操作非常直观方便。
在这里插入图片描述

该软件功能强大,我只是用于本地视频推流,将本地视频添加至工作台,配置好服务器开始推流即可;
在这里插入图片描述
更多关于OBS软件的功能可以自行了解。

以上两种方法都可以实现将本地视频以流媒体的形式推送到流媒体服务器,且都使用了RTMP协议。

三、拉流及本地视频播放

本地的拉流的实现我是在unity中使用AVPro插件实现的,由于目前AVPro支持HLS协议,且将会应用于手机端,因为拉流选用HLS协议,具体设置如图所示:
在这里插入图片描述
之后发布安卓端,PC端,均测试成功,实现了边拉流边播放的功能。

写在最后

个人理解,无论是直播还是点播的过程,并不存在真正意义上的暂停操作,只存在直播时长的问题,点播可以通过OBS控制本地视频暂停播放的操作实现推流画面的暂停,看起来好像是视频播放暂停了,但其实推流及拉流一直在进行,只不过一直推流和拉流的画面在暂停画面时,一直是一样的。


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

相关文章

阿里云搭建流媒体服务器

最近不少人问是否能够将云视睿博流媒体服务器NTV Media Server G3搭建在阿里云服务器上,答案是肯定的,而且我们大部分客户都是这样用的,利用流媒体服务器的视频处理和播出能力,以及阿里云的基础计算能力和可扩展性,构建…

流媒体视频服务:快速搭建一个简单的流媒体视频服务(一)

快速搭建一个简单的流媒体视频服务 前言系统组成RTMP协议简介Red5 概述Red5 服务器搭建 前言 最近自己在研究有关于流媒体播放的技术,网上资料甚少。出于开源精神以及在查阅资料得到各位大佬的帮助,故将自己的心得写下记录,便于分享以及日后…

用VLC搭建简单的流媒体服务器

在做视频传输客户端开发的时候,经常需要用到流媒体服务,VLC有着非常强大的流媒体处理能力,同时它也可以搭建流媒体服务器。这里介绍一种使用图形化界面搭建RTSP流媒体服务的应用。 (1)打开一个本地的流文件 &#xff…

Linux下视频流媒体服务器搭建详解

目标用于搭建内网流媒体服务器支持视频的点播。 背景 用于支持培训网站中视频点拨功能,在培训网站总体方案中需要加入流媒体服务器,用于存储和传输视频资源。 相关概念 流媒体流媒体(Streaming Media)是一种新兴的网络传输技术…

流媒体服务器搭建亲测有效(srs)

流媒体服务器搭建流程 第一步 去官网下载srs的源码文件官网地址:[https://github.com/ossrs/srs#usage] 说明:建议下载4.0版本,3.0的需要flash的支持。目前谷歌浏览器已经停止了flash的使用。 第二步 按照官网的步骤进行操作 1.进行解压文…

搭建自己的流媒体服务器-(1)服务器搭建篇

搭建自己的流媒体服务器-(1)服务器搭建篇 http://download.csdn.net/download/katdriver/3272133 http://blog.csdn.net/haolipengzhanshen/article/details/50810066 标签: ios流媒体服务器服务器 2016-02-19 15:09 121人阅读 评论(0) 收藏 举报 分…

监控流媒体服务器的搭建和使用

需求的提出 海康、大华、宇视等视频监控系统,都有自己的流媒体服务器平台,为什么要还需要通用的流媒体服务器产品呢? 这个问题可以从几个方面回答:1)经济性: 传统监控厂商的流媒体服务器,由于主…

学着搭建流媒体服务器

操作系统:NAME"openEuler",架构:aarch64,CPU 运行模式:64-bit 目前有多个开发源代码可以搭建流媒体服务,但要先依赖gcc和cmake,所以首先安装gcc和cmake,查了一通资料&…

js逆向工具-初学AST解混淆

目录 一、AST简单了解二、babel环境安装三、快速入门例子1、入门例子讲解:修改变量值2、入门案例代码:修改变量值 四、实际案例1-ob混淆之ast还原1、数组 移位自执行函数 解密字符串函数 还原2、定义的对象Object有规律的key和value 还原3、while swi…

推荐.Net、C# 逆向反编译四大工具利器

转:https://blog.csdn.net/kongwei521/article/details/54927689 在项目开发过程中,估计也有人和我遇到过同样的经历:运行环境出现了重大Bug亟需解决、或者由于电脑挂了、旧代码覆盖新代码,而在这种情况下,我们不能直接…

某科技js逆向

分析 地址->https://qimingp*.cn/fino*a/project/ 捕获ajax请求,发现返回的数据是加密的,如下图: 打开搜索,定位如下: 经过查找,定位到11058行,如下: 分析代码,发现首…

BUUCTF 逆向工程(reverse)之内涵的软件

用IDA32位打开 一看到这个就是知道这里是获取flag的关键(因为花括号{})。一开始以为是用了某种加密方式需要转换一下。结果它显示的:{49d3c93df25caad81232130f3d2ebfad}这部分就是flag。 所以这题的flag为:flag{49d3c93df25caa…

010Editor逆向分析

主要内容: 010Editor介绍 16进制编辑器:16进制修改、文本修改、模板解析各种文件格式、对比文件 010暴力破解分析 1、找到注册的窗口 2、测试注册窗口的反应 3、根据反应做出下一步分析 猜测API,API下断点动态调试 敏感字符串,程序…

Web前端——CSS伪类和伪元素

CSS伪类: 1.伪类的概念: 可以理解为描述元素的某种状态,用于当已有元素处于的某个状态时,为其添加对应的样式,这个状态是根据用户行为而动态变化的。 2.伪类的语法: 标签:伪类{设置的样式,伪类…

CSS伪类

CSS中伪选择器有两种分别是伪元素选择器和伪类选择器。为了向后续版本兼容,伪元素选择器常用"::"开头,而伪类选择器用“:”开头。本篇主要讲解以下伪类选择器: :first-child:last-childonly-childonly-of-type:nth-child(n)nth-la…

【JavaScript 逆向】AST 技术反混淆

前言 通过浏览器工具可以清楚的看到网站正在运行的 HTML 和 JavaScript 代码,所以对 JavaScript 代码进行混淆处理是一些网站常用的反爬措施,例如下文介绍到的字符串混淆、控制流平坦化等,这使得 JavaScript 的可读性变得很差,难以…

Css预编译神器

最近,有靓仔吐槽在编译css代码时,每次写选择器都会变成CV大神,虽说有CV加持但是呢依然会觉得很麻烦,毕竟手速不像年轻时候那样为所欲为 在这里呢给推荐大家用一款神级插件,也是小编参与完成的轻量级插件–sass&#x…

CSS 伪类

CSS 伪类 CSS 伪类是添加到选择器的关键字,用于指定所选元素的特殊状态。例如,伪类 :hover 可以用于选择一个按钮,当用户的指针悬停在按钮上时,设置此按钮的样式。 举例说明: button:hover {color: blue; }伪类由冒号&#xff…

逆向分析并修改Hello World程序《逆向工程核心原理》《软件逆向工程原理与实践》

文章目录 OllyDbg窗口及快捷键步骤1:VS生成需逆向的文件步骤2:OllyDbg中打开该程序的exe文件,找到需修改的位置步骤3:修改修改1:修改指令修改2:修改字符串修改3:输出任意英文 软件逆向工程原理与…

js逆向案例-css字体反爬

目录 一、反爬点二、反爬分析1、js逆向解密响应参数2、css字体伪元素分析一、反爬点 案例网站响应参数js加密, css字体伪元素隐藏,以及style取值等逻辑判断 二、反爬分析 1、js逆