一、直播与点播

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

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

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

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控制本地视频暂停播放的操作实现推流画面的暂停,看起来好像是视频播放暂停了,但其实推流及拉流一直在进行,只不过一直推流和拉流的画面在暂停画面时,一直是一样的。

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

  1. 局域网中搭建EasyDarwin流媒体服务器后,使用vlc拉流播放失败的解决方法

    一.问题描述 根据EasyDarwin官网上的教程<ffmpeg推送,EasyDarwin转发,vlc播放 实现整个RTSP直播>操作,在同一台电脑上部署EasyDarwin流媒体服务器, ...

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

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

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

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

  4. linux做m3u8推流服务器,linux搭建nginx流服务器,OBS推流,VCL拉流播放

    所需软件工具: 1.centos6.5 2.nginx1.16.0.tar.gz .nginx-rtmp-module-master.zip .nginx_mod_h264_streaming.tar ...

  5. 搭建流媒体推流/拉流服务(RTMP/RTSP/HLS/HTTP-FLV)

    一.什么是流媒体 流媒体(streaming media)是指将一连串的媒体数据压缩后,经过网上分段发送数据,在网上即时传输影音以供观赏的一种技术与过程,此技术使得数据包得以像流水一样发送:如果不使用 ...

  6. SRS流媒体服务器在windows平台上搭建RTMP的推拉流案例

    问题背景 SRS作为一款出色的流媒体服务器,想在windows上做开发测试,以前是不支持的,到了srs4的版本,配合windows版本的docker是可以实现在windows上进行SRS的安装与调试的 ...

  7. linux下使用FFmpeg搭建视频推流拉流测试

    1.概述 公司内部用的是rtmp推流,前端页面展示用webrtc方式拉流展示,基于srs构建的视频体系.之前不是负责视频模块的,为了更熟悉项目,自己大概有了个概念之后,先选取用ffmpeg方式构建一个 ...

  8. 计算机网络④-③/④:流媒体协议:编码/推流/拉流、 P2P协议:.torrent/DHT

    应用层(OSI 模型的第七层, TCP 模型的第四层, 即应用层,)还有RTMP.P2P等协议. 1 流媒体协议 视频流中的图片存在:空间冗余.时间冗余.视觉冗余.编码冗余.可以通过编码来压缩视频. ...

  9. NGINX-RTMP直播服务器搭建-OBS录制推流-VLC视频流播放

    转载地址:https://blog.csdn.net/boonya/article/details/78663675 网上关于视频直播的资料还是挺多的,看了一些文章,自己也动手实践了下.主要有三个步骤 ...

最新文章

  1. 人工智能的产业落地经验!
  2. 算法----Excel 表中相对应的列名称
  3. 一天一个知识点 - 浅谈 JavaScript 的数据类型
  4. SSM-Spring+SpringMVC+MyBatis整合案例从0到1
  5. 关于ASP.NET MVC的业务逻辑验证(validation)
  6. android8.1启动前台服务,Android - 保活(1)前台服务保活
  7. 学习 jQuery下拉框,单选框,多选框整理
  8. mysql记录相互关系查询_MySQL关系表查询两个表的数据
  9. 将旧版本从Java EE 5减少到7
  10. 限定概率抽奖_守护星已点亮,内测皮肤得到没?从天美抽奖概率分析:地址什么梗...
  11. ios 10.3 汉字的中划线
  12. python wms_webGIS实践:4_2_python django整合geoserver wms服务
  13. hadoop hbase java_Hadoop、Hbase伪分布式安装
  14. CDC::GetDeviceCaps()物理长度与屏幕像素间的转换
  15. 【zz】matlab 直方图匹配
  16. 拿来即用的 Python LDAP 实现类
  17. Python机器学习算法基础概述
  18. Linux 信号量及其操作函数
  19. 爬虫python下载电影_python爬虫--爬取某网站电影下载地址
  20. Vue3实现将页面转成PDF并下载或直接打印

热门文章

  1. HTTP 返回码详解
  2. warning: in the working copy of ‘App.vue‘, LF will be replaced by CRLF the next time Git touches it
  3. 高层管理者核心学习曲线
  4. MATLAB中nchoosek的用法
  5. 斗鱼主播陈一发彻底“凉”了:直播间被彻底取消
  6. linux应用程序开发_开发应用程序
  7. 刚入行大数据的海归分享他的工作经历
  8. DMIPS/MHZ的解释
  9. 还敢开车玩手机?AI“警察”来抓你!
  10. ubuntu20.04如何安装i3wm?