网页全终端视频流媒体播放器EasyPlayer之使用 nginx 和 rtmp 插件搭建视频直播和点播服务器

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

1. 安装 nginx 和 rtmp 模块

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

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

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

$ sudo /usr/local/nginx/sbin/nginx -s stop
$ sudo /usr/local/nginx/sbin/nginx

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

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

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 就只可以了,像下面这样:

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 这种视频点播服务 ,只需要在配置文件里添加如下内容即可:

# 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 来视频直播,可以直接像配置文件那样,写上下面这一段:

application hls {
        live on;
        hls on;
        hls_path /tmp/hls;
}

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

# 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,稳定、高效、可靠、可控。

原文地址:https://www.cnblogs.com/TSINGSEE/p/12424874.html

时间: 2024-10-12 12:32:43

网页全终端视频流媒体播放器EasyPlayer之使用 nginx 和 rtmp 插件搭建视频直播和点播服务器的相关文章

使用 nginx 和 rtmp 插件搭建视频直播和点播服务器

使用 nginx 和 rtmp 模块 ,可以很容易地搭建一个视频直播和点播服务器出来. 首先,看一下最经典的参考文献: How to set up your own private RTMP server using nginx 1. 安装 nginx 和 rtmp 模块 有关 nginx 的编译和安装比较简单,这里就不介绍了,看参考文献.这里提示以下几点: (1) 安装好 nginx 后,配置文件在这里: /usr/local/nginx/conf/nginx.conf (2) 启动 ngin

支持8K播放且低延时高并发全功能的流媒体播放器EasyPlayerPro如何播放H.265视频?

需求分析 一般对于一个播放器,应该支持如下几种显示模式: 等比例,最大化区域显示,不裁剪 等比例,最大区域显示,裁剪 拉伸显示,铺满全屏 要实现这几种显示模式.其实只要对播放控件的布局进行些许调整即可. 那EasyPlayer是怎么实现的呢?EasyPlayerPro是一款全功能的流媒体播放器,支持RTSP.RTMP.HTTP.HLS.UDP.RTP.File等多种流媒体协议播放.支持本地文件播放,支持本地抓拍.本地录像.播放旋转.多屏播放.倍数播放等多种功能特性,核心基于ffmpeg,稳定.高

HLS播放器RTSP播放器支持8K播放且低延时高并发全功能流媒体播放器EasyPlayer搭建之HTML中 px,em,rem该如何区别?

EasyPlayer是一款流媒体播放器系列项目,支持RTSP.RTMP.HTTP.HLS.UDP.RTP.File等多种流媒体协议播放. 支持本地文件播放,支持本地抓拍.本地录像.播放旋转.多屏播放.倍数播放等多种功能特性,核心基于ffmpeg,稳定.高效.可靠.可控. 随着多年不断的发展和迭代,不断基于成功的实践经验,发展出包括有: EasyPlayer-RTSP.EasyPlayer-RTMP.EasyPlayerPro 和EasyPlayer.js 等播放器.目前支持Windows. An

校园视频直播建点播建设方案——Sewise流媒体平台

近些年来,因为信息技术的发展,大数据时候的到来,数字校园受到教育行业.政府.投资人等相关人士的关注.为什么呢?在这个大数据的时代,如果一个国家不能让自己的教育得到很好的提高和创新,跟上时代的步伐,哪么将是一件多么可怕的事情.所以,在提高学校的教师的整体水平的同时,还应该提高学校的硬件和软件实力.建设一个校园视频直播--Sewise流媒体平台是什么?它又有哪些功能应用? Sewise流媒体平台应用方案--校园视频直播点播是什么? 校园视频直播点播平台组成: 1.直播软件服务器:sewise直播服务

网页上嵌入Flash播放器(2)

接着上一篇博客,下面介绍另一种flash播放器的嵌入,这个是公司内部用的的一款flash播放器,支持的格式比较多,还能支持swf格式的视频播放. 下面是页面嵌入代码: <link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/flash/history/history.css" /> <script type="te

网页上嵌入Flash播放器(1)

最近做的项目里涉及到了Flash播放器的使用,网页上需要播放视频,不同的视频资源需要不同的播放器,根据使用的稳定性.嵌入的复杂程度以及性能的优劣总结了两种嵌入方式(不同的播放器),支持的视频资源也略有不同,其中第一种方式比较简单,支持的视频格式要少一些(支持flv,mp4,mov,f4v,3gp等视频格式),下面是官网上的一张截图介绍: (官网:http://www.cuplayer.com/Cu/CuPlayerMiniV4/) 页面嵌入代码: <script type="text/ja

一个全终端的消息推送解决方案

全终端消息推送解决方案 项目介绍 这是一个全终端的消息推送解决方案,实现类似微博的消息发布模式,用户可在移动端,网页端或是PC端发布消息,相应的,其他用户可在上述平台上接收并查看这个用户发送的消息.预计实现基础的注册,登录验证以及发布消息与接收消息功能. 竞争性需求分析框架 N--need,需求 该项目主要面向中小企业开发,大多数小型公司或团队内部交流和资料共享都在使用一些大众化的社交工具,由于这些工具都是面向普通用户开发,在保密要求上完全不能满足需求,通过转发和截屏就能轻松的将内部资料泄露到外

乐影音下载器(视频下载器) 官方主页2

乐影音下载器6.6(2019-3-21)能下载国内视频网站上面的视频. 你只需要复制视频网址就能自动帮你下载视频,这是你唯一需要做的! 下载:官方下载?????????????百度网盘 ????????????????????????????????????????????????????Linux版 ??????????(360可能会将本软件误判为病毒,性命担保绝对无毒,绝对人畜无害!!!) 最新版增加了中等清晰度视频的下载选择,不过默认仍然是下载最清晰的视频. 下载网页里正在播放的音视频?也

[KISSY5系列]淘宝全终端框架 KISSY 5--从零开始使用

KISSY 是淘宝一个开源的 JavaScript 库,包含的组件有:日历.图片放大镜.卡片切换.弹出窗口.输入建议等 一.简介 KISSY 是一款跨终端.模块化.高性能.使用简单的 JavaScript 框架. 除了完备的工具集合如 DOM.Event.Ajax.Anim 等它还提供了经典的面向对象.动态加载.性能优化解决方案作为一款全终端支持的 JavaScript 框架 KISSY 为移动终端做了大量适配和优化,让你的程序在全终端均能流畅运行 二.目录 1.KISSY5安装使用(一) 2.