Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >网页全终端视频流媒体播放器EasyPlayer之使用 nginx 和 rtmp 插件

网页全终端视频流媒体播放器EasyPlayer之使用 nginx 和 rtmp 插件

作者头像
EasyNVR
发布于 2020-05-20 15:10:51
发布于 2020-05-20 15:10:51
2.5K00
代码可运行
举报
文章被收录于专栏:EasyNVREasyNVR
运行总次数:0
代码可运行

使用 nginx 和 rtmp 模块 ,可以很容易地搭建一个视频直播和点播服务器出来。下面我们来看一下具体实施步骤:

1. 安装 nginx 和 rtmp 模块

有关 nginx 的编译和安装比较简单,这里就不介绍了,看参考文献。这里提示以下几点:

(1) 安装好 nginx 后,配置文件在这里:

/usr/local/nginx/conf/nginx.conf (2) 启动 nginx 的命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ sudo /usr/local/nginx/sbin/nginx -s stop
$ sudo /usr/local/nginx/sbin/nginx

2. 配置 nginx 视频直播和点播服务

先看一下完整的 nginx 配置文件里有关视频点播和直播的配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rtmp {
	server {
		listen 1935;
		chunk_size 4096;
		application live {
			live on;
			record off;
		}
		application live2 {
			live on;
			record off;
		}
		# video on demand
		application vod {
			play /var/flvs;
		}
		application vod_http {
			play http://192.168.31.185/vod;
		}
		application hls {
			live on;
			hls on;
			hls_path /tmp/hls;
		}
	}
}
# HTTP can be used for accessing RTMP stats
http {
    server {
	listen      8080;
	# This URL provides RTMP statistics in XML
	location /stat {
	    rtmp_stat all;
	    # Use this stylesheet to view XML as web page
	    # in browser
	    rtmp_stat_stylesheet stat.xsl;
	}
	location /stat.xsl {
	    # XML stylesheet to view RTMP stats.
	    # Copy stat.xsl wherever you want
	    # and put the full directory path here
	    root /path/to/stat.xsl/;
	}
	location /hls {
	    # Serve HLS fragments
	    types {
		application/vnd.apple.mpegurl m3u8;
		video/mp2t ts;
	    }
	    root /tmp;
	    add_header Cache-Control no-cache;
	}
	location /dash {
	    # Serve DASH fragments
	    root /tmp;
	    add_header Cache-Control no-cache;
	}
    }
}

现在来解释一下里面各行代码的含义。对于视频直播服务,如果需要支持多路流输入的话,很简单,在 nginx 配置文件里多配几个 Application 就只可以了,像下面这样:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
application live {
	live on;
	record off;
}
application live2 {
	live on;
	record off;
}

这样就可以通过下面的地址来推送直播流,其它观众端也可以通过下面的地址来访问直播流:

rtmp://192.168.31.185/live/test rtmp://192.168.31.185/live2/test 后面紧跟的 test 关键字,可以随便更换,只要你的推送流和访问流的地址一样就可以了。

rtmp 模块也可以直接支持 VOD 这种视频点播服务 ,只需要在配置文件里添加如下内容即可:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# video on demand
application vod {
    play /var/flvs;
}

application vod_http {
    play http://myserver.com/vod;
}

然后把一个 mp4 或是 flv 文件扔到 /var/flvs 目录下,对于 /var/flvs/dir/file.flv 这个视频文件,就可以通过下面的网址来访问了:

http://myserver.com/vod//dir/file.flv

这样直接在浏览器里就可以通过网页观看视频。对于 mp4 文件,也可以实现 VOD 服务,不过需要的是采用 H.264 和 AAC 格式编码的 mp4 文件。

3. HLS 直播流的配置

如果需要使用 HLS 来视频直播,可以直接像配置文件那样,写上下面这一段:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
application hls {
        live on;
        hls on;
        hls_path /tmp/hls;
}

同时把后面有关 http 访问的内容写上:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# HTTP can be used for accessing RTMP stats
http {
	server {
		listen	  8080;
		# This URL provides RTMP statistics in XML
		location /stat {
			rtmp_stat all;
			# Use this stylesheet to view XML as web page
			# in browser
			rtmp_stat_stylesheet stat.xsl;
		}
		location /stat.xsl {
			# XML stylesheet to view RTMP stats.
			# Copy stat.xsl wherever you want
			# and put the full directory path here
			root /path/to/stat.xsl/;
		}
		location /hls {
			# Serve HLS fragments
			types {
				application/vnd.apple.mpegurl m3u8;
				video/mp2t ts;
			}
			root /tmp;
			add_header Cache-Control no-cache;
		}
		location /dash {
			# Serve DASH fragments
			root /tmp;
			add_header Cache-Control no-cache;
		}
	}
}

配好以后,推流可以使用下面的地址:

rtmp://192.168.31.185/hls/movie movie 关键字可以任何替换。对于观众端来说,可以有几种播放方式:

(1) 用 rtmp:

rtmp://192.168.31.185/hls/movie (2) 用 hls 播放:

http://192.168.31.185:8080/hls/movie.m3u8 这样就可以看到主播端推出来的流。注意,如果使用 http 方式,则是监听的 8080 端口,这个是在配置文件里写的。

4. 网页播放器播放

在第二步里,除了可以直接在浏览器里打开网址来观看视频,还可以写一个网页,实现像优酷那样的视频点播业务。通过使用第三方的播放器,在网页里植入该播放器来实现这个功能,比如说使用 EasyPlayer播放器。

EasyPlayer是一款流媒体播放器系列项目, 支持RTSP、RTMP、HTTP、HLS、UDPRTP、File等多种流媒体协议播放、 支持本地文件播放,支持本地抓拍、本地录像、播放旋转、多屏播放、 倍数播放等多种功能特性,核心基于ffmpeg,稳定、高效、可靠、可控。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-05-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
利用nginx搭建RTMP视频点播、直播、HLS服务器「建议收藏」
配置并编译nginx 使用nginx的默认配置,添加nginx的rtmp模块。
全栈程序员站长
2022/07/01
4.9K0
利用nginx搭建RTMP视频点播、直播、HLS服务器「建议收藏」
windows下使用Nginx搭建Rtmp流媒体服务器,实现视频直播功能
Linux下搭建Nginx搭建Rtmp流媒体服务器方法请看这里:https://blog.csdn.net/xiaolong1126626497/article/details/105378894
DS小龙哥
2022/01/12
9.1K0
windows下使用Nginx搭建Rtmp流媒体服务器,实现视频直播功能
Nginx 搭建RTMP视频点播 直播 HLS服务器
安装Nginx --下载nginx-rtmp-module模块 git clone https://github.com/arut/nginx-rtmp-module.git --安装依赖 yum install -y wget gcc gcc-c++ make pcre pcre-deve zilib zlib-devel openssl-devel --下载Nginx源码包并解压 wget http://nginx.org/download/nginx-1.18.0.tar.gz tar zxvf
剧终
2020/12/15
5.5K0
Nginx 搭建RTMP视频点播 直播 HLS服务器
Nginx搭建视频点播和视频直播服务器[通俗易懂]
一·、环境: Centos 7,(推荐,Ubuntu不是很好用,经常会有一些莫名其妙的报错) Nginx1.10.1 二、系统环境搭建 首先,我是不建议自己一个个去安装这些软件的,耗时耗力,而且,容易出错,所以,最好使用yum install ***命令安装,出错的概率小。
全栈程序员站长
2022/07/01
5.3K0
Nginx搭建视频点播和视频直播服务器[通俗易懂]
搭建nginx rtmp流媒体服务器(超详细)_nginx rtmp 集群
本微博在借鉴其他大牛之后,觉得应该写一个直播的完整流程,虽然简单,但是会有一个宏观感受:
全栈程序员站长
2022/09/27
5.7K0
搭建nginx rtmp流媒体服务器(超详细)_nginx rtmp 集群
简单的 H5 视频推流解决方案
作者:周超 导语 随着直播平台爆发式增长,直播平台从 PC 端转战移动端,紧跟着直播的潮流,自己学习实现了一套简单的 H5 视频推流的解决方案,下面就给小伙伴们分享一下自己学习过程中的经验。 环境部署 1、 配置、安装 Nginx; # ./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-pcre=/usr/local/src/
腾讯云开发者社区
2018/01/15
10.1K5
简单的 H5 视频推流解决方案
Ubuntu中使用Nginx+rtmp搭建流媒体直播服务.md
本篇文章是继上一篇文章《Ubuntu中使用Nginx+rtmp模块搭建流媒体视频点播服务》文章而写,在上一篇文章中我们搭建了一个点播服务器,在此基础上我们再搭建一个直播服务器,
汤青松
2019/12/04
1.9K0
搭建直播系统并实现h5播放rtmp
推流只能用rtmp协议,拉流可以使用rtmp协议和hls协议。rtmp协议时adobe公司开发的开放协议,hls是苹果公司推出的直播协议。我们使用nginx的rtmp插件来搭建推流服务器
我的小熊不见了丶
2020/07/09
8.4K0
搭建直播系统并实现h5播放rtmp
工具系列 | 视频监控RTSP转HLS解决方案
由于公司业务,需要实现基于WEB访问监控摄像头实时流的预览,经过各种百度,补充了不少相关知识,了解到了很多大神的实现方法,也因为很多过时的帖子,而踩了不少的坑。
Tinywan
2020/07/23
6.5K0
工具系列 | 视频监控RTSP转HLS解决方案
一文搞定Nginx配置RTMP!
在这篇教程中,我们将详细介绍如何在云服务器上配置 Nginx 服务器和 Nginx-RTMP 模块,并使用 FFmpeg 实现视频推流。通过这些步骤,你将能够轻松地在自己的服务器上搭建一个视频推流服务。
Echo_Wish
2024/09/07
1.2K0
一文搞定Nginx配置RTMP!
openresy+nginx-rtmp-module搭建点播直播服务器
一般点播或者直播服务器都是使用nginx-rtmp-module作为服务器,然后使用ffmpeg或者obs来进行推流,客户端使用rtmp、http-flv、hls或者dash协议拉取转码后的数据,进行播放。
golangLeetcode
2024/04/10
7150
openresy+nginx-rtmp-module搭建点播直播服务器
HTTP-FLV详解及分析
传统的直播协议要么使用 Adobe 的基于 TCP 的 RTMP 协议, 要么使用 Apple 的基于 HTTP 的 HLS 协议。本文介绍另外一种结合了 RTMP 的低延时, 以及可以复用现有 HTTP 分发资源的流式协议 HTTP-FLV。
Gnep@97
2023/11/12
2.4K0
HTTP-FLV详解及分析
Nginx学习之配置RTMP模块搭建推流服务
写在开始 小程序升级实时音视频录制及播放能力,开放 Wi-Fi、NFC(HCE) 等硬件连接功能。同时提供按需加载、自定义组件和更多访问层级等新特性,增强了第三方平台的能力,以满足日趋丰富的业务需求。 为更高效地连接用户与商家,小程序提供了实时音视频录制及播放组件。符合类目要求的小程序自助开通后,可自建或使用云服务,实现单向、双向甚至多向的音视频功能,如在线授课、远程咨询、视频客服,以及多人会议等。 2017-12-26微信小程序推送了这样一条消息,文档,代码也是简单的一笔带过,用户需要自建或使用云服务,实
小柒2012
2018/04/13
3.8K0
Nginx学习之配置RTMP模块搭建推流服务
搭建流媒体服务器 PingOS 平台搭建
近期由于工作原因需要更换公司原有 RTMP 协议推流,由于 Flash 插件今年年底就淘汰使用,并且一直在寻找一种并发好、延时低、同时便于回放功能的应用,在网上找到了基于Nginx + FFmpeg 推流的解决方案,可以实现 HLS 协议推流,看项目介绍可以实现 HLS+ 协议,这个工具安装比较便捷。
Meng小羽
2020/04/08
5K0
教你如何搭建自己的直播服务器-简易
 在项目中有没有遇见过要对接直播接口的需求?我想大家都是有的。但是怎么说呢,对接第三方的缺点也很明显,除去那不可避免的一些事故。最大的缺点就是要钱!!!要钱!!!要钱!!!
全栈程序员站长
2022/09/07
3.3K0
教你如何搭建自己的直播服务器-简易
FFmpeg推流到Nginx并使用播放器播放
如今直播很火,下面就简单分享下我是如何直播的。必备工具:FFmpeg,Nginx,还有一个播放器。之前在实例解析中分享过如何用FreeSWITCH来做直 播,这次分享下如何用FFmpeg配合Nginx做直播。
杜金房
2020/12/21
2K0
nginx rtmp server搭建
mkdir nginx wget http://nginx.org/download/nginx-1.12.2.tar.gz tar -zxvf nginx-1.12.2.tar.gz apt-get install libpcre3-dev git clone https://github.com/arut/nginx-rtmp-module.git cd nginx-1.12.2 ./configure --add-module=/nginx/nginx-rtmp-module make make in
_gongluck
2018/03/08
2.3K1
NGINX如何实现rtmp推流服务--鉴权篇
最近直播大火,直播推流软件遍地开花,那么用NGINX如何进行推流呢?下面我们就简单的介绍一下用NGINX的rtmp模块如何实现视频推流,我们主要从一下几点介绍:
大话swift
2020/03/31
4.4K0
从零到1搭建流媒体服务器
我在实际开发过程中遇到这样的需求,将摄像头采集的画面信息传输到Linux服务器上,然后传输到windows11端进行播放。基于此需求,所以我们需要在Linux环境下搭建一台类似"中转站"的流媒体服务器,摄像头将采集的数据信息推流到"流媒体服务器",然后windows环境下的播放器从流媒体服务器进行"拉流"。这就是我们常见的推拉流动作。
破晓的历程
2025/04/04
2860
从零到1搭建流媒体服务器
HLS推流的实现(iOS和OS X系统)
前言 使用VideoToolbox硬编码H.264 使用VideoToolbox硬解码H.264 使用AudioToolbox编码AAC 使用AudioToolbox播放AAC HLS点播实现(H.264和AAC码流) 在前面我们介绍了从麦克风采集声音并用AudioToolbox编码成AAC码流和从摄像头采集图像并用VideoToolbox编码成H.264码流,也尝试了把这两个格式的文件打包成TS流,并用通过HLS协议在浏览器播放,这一篇是在HLS点播实现(H.264和AAC码流)基础上的延续,进行
落影
2018/04/27
3.3K0
HLS推流的实现(iOS和OS X系统)
相关推荐
利用nginx搭建RTMP视频点播、直播、HLS服务器「建议收藏」
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验