前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >网页全终端视频流媒体播放器EasyPlayer之使用 nginx 和 rtmp 插件

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

作者头像
EasyNVR
发布2020-05-20 23:10:51
2.1K0
发布2020-05-20 23:10:51
举报
文章被收录于专栏:EasyNVREasyNVR

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

1. 安装 nginx 和 rtmp 模块

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

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

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

代码语言:javascript
复制
$ sudo /usr/local/nginx/sbin/nginx -s stop
$ sudo /usr/local/nginx/sbin/nginx

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

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

代码语言:javascript
复制
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
复制
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
复制
# 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
复制
application hls {
        live on;
        hls on;
        hls_path /tmp/hls;
}

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

代码语言:javascript
复制
# 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、UDP、RTP、File等多种流媒体协议播放、 支持本地文件播放,支持本地抓拍、本地录像、播放旋转、多屏播放、 倍数播放等多种功能特性,核心基于ffmpeg,稳定、高效、可靠、可控。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 安装 nginx 和 rtmp 模块
  • 2. 配置 nginx 视频直播和点播服务
  • 3. HLS 直播流的配置
  • 4. 网页播放器播放
相关产品与服务
云直播
云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档