nginx与nginx-rtmp-module搭建流媒体服务器

转载自my student 克明zhang

现在,一起学习一下如何自己搭建一个流媒体服务器吧!

本次搭建流媒体使用的环境是centos 7.0+nginx;

让我们一起开始奇妙的流媒体之旅吧!


1、下载nginx-rtmp-module:

nginx-rtmp-module的官方github地址:https://github.com/arut/nginx-rtmp-module

使用命令:

[php] view
plain
 copy

  1. git clone https://github.com/arut/nginx-rtmp-module.git

将nginx-rtmp-module下载到linux中。

2、安装nginx:

nginx的官方网站为:http://nginx.org/en/download.html

[php] view
plain
 copy

  1. wget http://nginx.org/download/nginx-1.8.1.tar.gz
  2. tar -zxvf nginx-1.8.1.tar.gz
  3. cd nginx-1.8.1
  4. ./configure --prefix=/usr/local/nginx  --add-module=../nginx-rtmp-module  --with-http_ssl_module
  5. make && make install

本次默认安装目录为:/root, add-module为下载的nginx-rtmp-module文件路径。

安装时候可能会报错没有安装openssl,需要执行命令:

[php] view
plain
 copy

  1. yum -y install openssl openssl-devel

3、修改nginx配置文件:

[php] view
plain
 copy

  1. vi /usr/local/nginx/conf/nginx.conf

加入以下内容:

[php] view
plain
 copy

  1. rtmp {
  2. server {
  3. listen 1935;  #监听的端口
  4. chunk_size 4000;
  5. application hls {  #rtmp推流请求路径
  6. live on;
  7. hls on;
  8. hls_path /usr/share/nginx/html/hls;
  9. hls_fragment 5s;
  10. }
  11. }
  12. }

hls_path需要可读可写的权限。
修改http中的server模块:

[php] view
plain
 copy

  1. server {
  2. listen       81;
  3. server_name  localhost;
  4. #charset koi8-r;
  5. #access_log  logs/host.access.log  main;
  6. location / {
  7. root   /usr/share/nginx/html;
  8. index  index.html index.htm;
  9. }
  10. #error_page  404              /404.html;
  11. # redirect server error pages to the static page /50x.html
  12. #
  13. error_page   500 502 503 504  /50x.html;
  14. location = /50x.html {
  15. root   html;
  16. }

当然了,root可以跟据自己的需求来改的。
然后启动nginx:

自己手动创建路径mkdir -p /usr/share/nginx/html/hls

[php] view
plain
 copy

  1. /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

关于更多rtmp的参数可以参考:https://github.com/arut/nginx-rtmp-module/wiki

4、开始推流

做好以上的配置后,就可以开始推流了,我们可以使用obs来推流。

在设置->串流 中填写信息:URL为 rtmp://xxx:1935/hls,xxx为你的服务器的IP地址,hls是用来存放流媒体的。

秘钥可以随便填写一个,用来播放的时候识别播放哪个流媒体的,例如填写test等。

填写完毕后,点击开始串流,就说明我们的流媒体服务器搭建成功了。

5、观看直播(拉流)

观看直播就比较简单了,可以简单的使用h5的vedio标签就可以观看了。

可以访问http://xxx:81/hls/mystream.m3u8来观看直播,其中xxx为你的服务器IP地址,

或者使用

[php] view
plain
 copy

  1. <video>
  2. <source src="http://xxx:81/hls/test.m3u8"/>
  3. <p class="warning">Your browser does not support HTML5 video.</p>
  4. </video>

同上, xxx写的是你服务器IP地址。

然后使用手机访问这个网站就能够观看直播了。延迟大概在20S左右。

(在IOS的safari浏览器中可以正常观看)

写在最后

为什么延迟 那么高呢?这是因为服务器将视频流切断成一个个小的以.ts结尾的文件。

(hls文件夹内容。即推流到该文件夹了)

而我们访问的是.m3u8文件,这个文件内容是将一个个ts文件串联起来的,这就达到了一个播放的效果,所以看起来会有很大的延迟。

(m3u8文件内容)

如果降低延迟也不是没有方法,可以设置切片生成的大小以及访问的速度,但是这样大大增加了服务器的压力。

当然,我们也可以用rtmp拉流工具(VLC等)来看该直播,延迟大概在2-5S左右,拉流地址与推流地址一致。

时间: 2024-11-05 12:24:43

nginx与nginx-rtmp-module搭建流媒体服务器的相关文章

(转)Nginx+rtmp+ffmpeg搭建流媒体服务器

(1)下载第三方扩展模块nginx-rtmp-module # mkdir module && cd module //创建一个存放模块的目录 # wget https://github.com/arut/nginx-rtmp-module/archive/master.zip //下载模块 # unzip master.zip //解压 # ls nginx-rtmp-module-master/ //查看模块目录 (2)编译安装nginx(说明:此处由于我这边已有lnmp运行项目的环境

nginx + rtmp 搭建流媒体服务器

一.安装nginx服务器 1.路径说明: 路径:/usr/local/src 2.下载nginx-rtmp-module (我这里的目录是在/usr/local/src/下面) cd /usr/local/src nginx-rtmp-module的官方github地址:https://github.com/arut/nginx-rtmp-module git clone https://github.com/arut/nginx-rtmp-module.git ( 如果没有git进行安装,yu

nginx搭建支持http和rtmp协议的流媒体服务器之一

实验目的: 让Nginx支持flv和mp4格式文件,支持RTMP协议的直播和点播: 同时打开RTMP的HLS功能 ?资料: HTTP Live Streaming(缩写是 HLS)是一个由苹果公司提出的基于HTTP的流媒体网络传输协议. HLS只请求基本的HTTP报文,与实时传输协议(RTP)不同,HLS可以穿过任何允许HTTP数据通过的防火墙或者代理服务器. 它也很容易使用内容分发网络来传输媒体流. 使用ffmpeg来完成对flv.mp4.mp3等格式的转化(点播实验暂时不测试) 一.准备工作

一步步安装nginx搭建流媒体服务器

先安装: apt-get install g++ apt-get install g++ apt-get install build-essential 一般已经安装了 在网上下载以下的包.后面我把这些包上传到csdn资源里,以后就不用找了. nginx-1.2.3.tar.gz      :应用服务器主程序 nginx_mod_h264_streaming-2.2.7.tar.gz      :MP4流媒体支持模块. openssl-1.0.1c.tar.gz                

obs nginx-rtmp-module搭建流媒体服务器实现直播 ding

接下来我就简单跟大家介绍一下利用nginx来搭建流媒体服务器. 我选择的是腾讯云服务器 1.下载nginx-rtmp-module: nginx-rtmp-module的官方github地址:https://github.com/arut/nginx-rtmp-module 使用命令: [php] view plain copy git clone https://github.com/arut/nginx-rtmp-module.git 将nginx-rtmp-module下载到linux中.

nginx-rtmp-module搭建流媒体服务器

nginx搭建流媒体服务器 进入新建的文件夹prog 1.下载nginx-rtmp-modulegit clone https://github.com/arut/nginx-rtmp-module.git 2.下载nginxwget http://nginx.org/download/nginx-1.14.0.tar.gz 3.下载nginx依赖模块gzip模块需要 zlib 库.rewrite模块需要 pcre 库.ssl 功能需要openssl库 ①安装pcre,只需要装开发库libpcr

Linux---nginx+ffmpeg搭建流媒体服务器

原帖地址:https://blog.csdn.net/loyachen/article/details/50907828 这里实现了简单nginx+ffmpeg 推本地mp4视频文件的功能,以后将会继续更新 环境 系统环境:CentOS release 6.7 (Final) 需求 利用nginx和ffmpeg搭建流媒体服务器 步骤 安装ffmpeg 安装过程可以参考:centos编译安装ffmpeg:http://blog.csdn.net/loyachen/article/details/5

ffmpeg+ffserver搭建流媒体服务器

http://blog.chinaunix.net/uid-9688646-id-3399113.html ffmpeg和ffserver配合使用可以实现实时的流媒体服务. 一.理解 里边主要有如下四个东西,搞清楚他们之间的关系就差不多明白了. 1. ffmpeg 2. ffserver 3. ffserver.conf 4. feed1.ffm 1. ffmpeg,负责媒体文件的transcode工作,把你服务器上的源媒体文件转换成要发送出去的流媒体文件. 2. ffserver,负责响应客户

用VLC搭建流媒体服务器

VLC开元项目相当强大,我们既可以将其作为播放核心用于二次开发,又可以将其作为高性能的流媒体服务器.今篇博客主要讲用VLC搭建流媒体服务器. VLC搭建流媒体服务器步骤很简单:选择输入数据.选择输出格式.选择编码器.选择流通量.输入数据来源很多,可以是本地文件,可以是网络流,可以是音频,甚至图片:编码器选择主要是选择音频编码器.视频编码器用以确定声音输出质量和图像质量:输出格式较多,可以是本地文件,可以是网络流,也可以是组播:流通量目前保留,实际没有多少用处.下面我用摄像头的RTSP流作为输入,

Linux 下搭建流媒体服务器

http://blog.csdn.net/huangtaishuai/article/details/9836581 本文说明如何在 CentOS 6 服务器(无图形界面)搭建以 VLC 为核心的直播流媒体服务器. 第一步,安装第三方 yum 源.因为官方 yum 源中是不包含 VLC 安装包的,为了不用考虑安装包之间的依赖关系,使用第三方yum源的 yum 安装方式,能极大地简化 vlc 的安装过程,将主要精力集中到如何使用 VLC 功能来搭建流媒体服务器.(如果不想使用 yum 安装的,请自