本次搭建流媒体使用的环境是centos 7.0+nginx;让我们一起开始奇妙的流媒体之旅吧!

1、下载nginx-rtmp-module:

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

使用命令:

1

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

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

2、安装nginx:

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

1

2

3

4

5

wget http://nginx.org/download/nginx-1.8.1.tar.gz 

tar -zxvf nginx-1.8.1.tar.gz 

cd nginx-1.8.1 

./configure --prefix=/usr/local/nginx  --add-module=../nginx-rtmp-module  --with-http_ssl_module   

make && make install

注:这里的Nginx不需要修改路径名称。

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

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

1

yum -y install openssl openssl-devel

3、修改nginx配置文件:

1

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

加入以下内容:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

rtmp {   

    

    server {   

    

        listen 1935;  #监听的端口 

    

        chunk_size 4000;   

          

           

        application hls {  #rtmp推流请求路径 

            live on;   

            hls on;   

            hls_path /usr/share/nginx/html/hls;   

            hls_fragment 5s;   

        }   

    }   

hls_path需要可读可写的权限。

修改http中的server模块:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

server { 

    listen       81; 

    server_name  localhost; 

  

    #charset koi8-r; 

  

    #access_log  logs/host.access.log  main; 

  

    location / { 

        root   /usr/share/nginx/html

        index  index.html index.htm; 

    

  

    #error_page  404              /404.html; 

  

    # redirect server error pages to the static page /50x.html 

    

    error_page   500 502 503 504  /50x.html; 

    location = /50x.html { 

        root   html; 

    }

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

1

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

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

如果本机看不到虚拟机正确的Nginx访问页面,需要按照如下方式处理一下:

1

2

3

[root@localhost html]# /sbin/iptables -I INPUT -p tcp --dport 81 -j ACCEPT 

[root@localhost html]# /etc/init.d/iptables save 

[root@localhost html]# /etc/init.d/iptables restart

你还可以修改服务器监听的端口和服务器名称:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

server {

        listen       1990;

        server_name  172.16.20.10;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {

            root   html;

            index  index.html index.htm;

        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html

        #

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80

        #

        #location ~ \.php$ {

        #    proxy_pass   http://127.0.0.1;

        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

        #

        #location ~ \.php$ {

        #    root           html;

        #    fastcgi_pass   127.0.0.1:9000;

        #    fastcgi_index  index.php;

        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

        #    include        fastcgi_params;

        #}

        # deny access to .htaccess files, if Apache's document root

        # concurs with nginx's one

        #

        #location ~ /\.ht {

        #    deny  all;

        #}

    }

4、开始推流

做好以上的配置后,就可以开始推流了,我们可以使用obs(或者访问http://www.obsapp.net/)来推流。(截图同款请到http://www.pc6.com/mac/410309.html)

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

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

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

5、观看直播(拉流)

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

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

1

2

3

4

<video>   

    <source src="http://xxx:81/hls/test.m3u8"/>   

    <p class="warning">Your browser does not support HTML5 video.</p>   

</video

  

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

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

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

写在最后

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

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

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

(m3u8文件内容)

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

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

centos搭建流媒体服务器相关推荐

  1. ffmpeg libx264_nginx+ffmpeg搭建流媒体服务器(直播流)

    这里实现了简单nginx+ffmpeg 推本地mp4视频文件的功能,以后将会继续更新 环境 系统环境:CentOS release 6.7 (Final) 需求 利用nginx和ffmpeg搭建流媒体 ...

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

    这里实现了简单nginx+ffmpeg 推本地mp4视频文件的功能,以后将会继续更新 环境 系统环境:CentOS release 6.7 (Final) 需求 利用nginx和ffmpeg搭建流媒体 ...

  3. srs服务器播放文件,使用SRS+ffmpeg搭建流媒体服务器播放m3u8格式视频

    1.简介 srs是一个简单的流媒体开源直播软件,ffmpeg是完整的跨平台解决方案,用于记录,转换和流传输音频和视频. 2.相关 官网下载页面:点击我到达 在线演示播放页面:点击我到达 Git页面:点 ...

  4. [记录]CentOS搭建SVN服务器(主从同步)

    CentOS搭建SVN服务器(主从同步) 1.安装步骤如下: 1)安装: #yum install subversion 2)查看安装位置: #rpm -ql subversion 3)查看版本: # ...

  5. ngrok linux开机自启动,CentOS 搭建ngrok服务器

    原标题:CentOS 搭建ngrok服务器 1一.前提条件 1. 准备好一台主机,带公网IP 2. 准备一个一级域名,做好泛解析(二级域名的没有配置成功,汗...) 切记 一定要做好域名泛解析 二.安 ...

  6. 音视频开发(8)---nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器

    nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/redstarofsle ...

  7. CentOS搭建Terraria服务器

    CentOS搭建Terraria服务器 最近和好兄弟一起玩泰拉瑞亚,steam的服务器太卡了,总结了一些教程,自己搭建一个,记录一下过程,起飞. 准备工作 1.在系统中安装必要的软件 yum inst ...

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

    欢迎大家来此浏览,希望大家一块在此学习,共同交流进步. 接下来我就简单跟大家介绍一下利用nginx来搭建流媒体服务器. 我选择的是腾讯云服务器 1.下载nginx-rtmp-module: nginx ...

  9. 用vlc搭建流媒体服务器

    用vlc搭建流媒体服务器 作者:axu82119 来源:CSDN知识库 VLC是一种开源的播放器,同时也可以用作流媒体服务器.今天试验了几种搭建流媒体服务器的方法,这里做一个归纳总结. 本文使用的VL ...

最新文章

  1. 02. 值类型和引用类型的传递
  2. 【Python】Python基础
  3. @RequestBody如何使用
  4. Android—Binder+AIDL
  5. 【转】企业网站建设方法论
  6. python可见图算法_基于自适应显着性的图像分割(源码开放)
  7. 页面跳转_PyQt5多页面跳转
  8. 标号1-n的n个人首尾相接,1到3报数,报到3的退出,求最后一个人的标号
  9. 台式计算机开关电源原理图,计算机开关电源基本结构及原理
  10. php codesniffer 安装,Centos6.6安装PHP_CodeSniffer
  11. 中央空调和普通空调区别
  12. k8s入坑之报错(4)报错:repomod.xml signature could not be verified
  13. Disable access to external entities in XML parsing
  14. 使用Python在图片上增加文字
  15. 卷王指南,大学计算机专业,面临分专业,计科,软工,大数据,物联网,网络工程,该选什么?
  16. 车间生产管理系统(工厂数字化管理系统软件)
  17. 好人?坏人?做真实的人
  18. 微信热文捕手使用说明
  19. 分词器以及ik中文分词器
  20. C++ 数据结构(三)列表(3)有序列表

热门文章

  1. 美团:后端开发工程师(实习生)面试
  2. 最好的降噪蓝牙耳机有哪些?目前最好的降噪蓝牙耳机推荐
  3. java小游戏超级玛丽:07.第三关的设计
  4. WordPress自带TinyMCE编辑器增强技巧大全
  5. 如何删除电脑浏览记录
  6. 微信公众号的开发和使用注意事项有哪些?
  7. 分形吧matlab,使用matlab画分形图.pdf
  8. BERT模型--transflow转为pytorch
  9. 漫画|望京和西二旗全解读:最美互联网人
  10. 电容式液晶屏可实现多点触控