http://blog.csdn.net/longji/article/details/54865358


00 ubuntu14.04 ecs 配置Nginx-rtmp-module

参考:http://www.cnblogs.com/cocoajin/p/4353767.html

01 安装 Nginx 和 Nginx-rtmp 编译依赖工具

   
   
  • 1
sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev

02 创建工作目录

1
    
    
  • 2
  • mkdir ~/Nginx-rtmp cd ~/Nginx-rtmp

    03 下载Nginx 和Nginx-rtmp源码

    2
       
       wget http://Nginx.org/download/Nginx-1.10.3.tar.gz
    wget https://github.com/arut/Nginx-rtmp-module/archive/v1.1.10.gz

    04 解压

    2
       
       tar -zxvf Nginx-.gz
    tar -zxvf v1.gz

    05 切换目录

    1
       
       cd Nginx-1.10.3

    06 编译Nginx-rtmp模块到Nginx

    ./configure --with-http_ssl_module --add-module=../Nginx-rtmp-module-1.1.10

    07 编译安装

    2
       
       make
    sudo make install

    08 安装Nginx init脚本

    2
        
        
  • 3
  • sudo wget https://raw.github.com/JasonGiedymin/Nginx-init-ubuntu/master/Nginx -O /etc/init.d/Nginx sudo chmod +x /etc/init.d/Nginx sudo update-rc.d Nginx defaults

    09. 启动和停止Nginx 服务,生成配置文件

    sudo service Nginx start
    sudo service Nginx stop

    10. 安装 FFmpeg

    3
       
       sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next
    sudo apt-get update
    sudo apt-get install ffmpeg

    11. 配置 Nginx-rtmp 服务器

    打开 /usr/local/Nginx/conf/Nginx.conf
    在末尾添加如下 配置

    3
        
        
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • rtmp { server { listen 1936; # 1935已被占用 chunk_size 4096; application live { live on; record off; # 可以使用类似下面的语句转换视频格式为新的视频播放源 #exec ffmpeg -i rtmp://localhost/live/$name -threads 1 -c:v libx264 -profile:v baseline -b:v 350K -s 640x360 -f flv -c:a aac -ac 1 -strict -2 -b:a 56k rtmp://localhost/livep/$name; } application livep { live on; record off; } } }

    12. 保存上面配置文件,然后重新启动Nginx服务

    sudo service Nginx restart

    13. 如果你使用了防火墙,请允许端口 tcp 1936

    14 配置obs-studio

    本测试中的obs-studio是自己从源码编译的,并且修改了图标等资源。

    设置->串流->
    串流类型->自定义流媒体服务器
    URL rtmp://118.178.128.20:1936/live
    流密钥:test01

    点击[开始串流]按钮,开始串流,该按钮变成[停止串流]

    15 使用vlc播放推流

    本测试中的vlc是自己从源码编译的,并且修改了部分资源。

    注意播放地址是:rtmp://118.178.128.20:1936/live/test01
    不带文件名称后缀.m3u8

    播放效果

    16 android上 vlc播放

    vlc下载地址:http://www.videolan.org/vlc/download-android.html
    在网络地址输入:rtmp://118.178.128.20:1936/live/test01
    播放效果如图:

    17 Nginx上配置对hls的支持

    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
  • 46
  • 47
  • 48
  • 49
  • 50
  • sudo vim /usr/local/Nginx/conf/Nginx.conf #在server里面加入如下内容 server { listen 8080; location /hls { types { application/vnd.apple.mpegurl m3u8; video/mp2t ts; } root html; expires -1; } location /stat { rtmp_stat all; rtmp_stat_stylesheet stat.xsl; } location /stat.xsl { root /usr/local/Nginx/html/; } location /control { rtmp_control all; } } # 在rtmp里加入对hls的支持 rtmp { server { listen 1936; chunk_size on; record off; } application hls { live on; hls on; hls_path /usr/local/Nginx/html/hls; hls_fragment 5s; } }

    使用hls方式推流
    推流URL:rtmp://118.178.128.20:1936/hls
    流密钥:test01

    18 在android上使用vlc播放

    vlc地址栏输入:http://118.178.128.20:8080/hls/test01.m3u8
    或者 rtmp://118.178.128.20:1936/hls/test01
    可以直接播放。

    19 在android上使用html5播放

    用自己编译的chromium浏览器直接访问test01.m3u8可以正常播放。
    http://118.178.128.20:8080/hls/test01.m3u8

    小米note自带的浏览器不行。能正常显示,不能连续播放。

    在服务端测试hls的html5播放方式,没有成功。

    14
       
       sudo vim /usr/local/Nginx/html/html5.html
    <!DOCTYPE html>
    <html>
    head>
        Meta http-equiv="content-type" content="text/html; charset=utf-8">
        title>HLS Player</title>
    head>
    body>
    video poster="poster.png" height="720" width="1280" controls>
        source src="/hls/test01.m3u8" type="application/vnd.apple.mpegurl" />
        p class="warning">Your browser does not support HTML5 video.p>
    video>
    html>

    然后在android上面用浏览器打开http://118.178.128.20:8080/html5.html
    无法正常播放。

    20 浏览器播放

    默认android或者苹果系统的浏览器可以播放。PC浏览器机会不支持hls方式。可以采用js库处理hls视频播放。jwplayer、flowplayer、HLSPlayer、video-js等库都可以处理。

    20.01 jwplayer

    把jwplayer的基本库文件上传到服务端/usr/local/Nginx/html目录下。
    jwplayer/jwplayer.flash.swf
    jwplayer/jwplayer.html5.js
    jwplayer/js
    jwplayer/player-tools-license.txt
    jwplayer/README.txt

    编写使用jwplayer访问hls流的html文件。

    27
       
       sudo vim /usr/local/Nginx/html/jwplayer.html
    title>
        script "text/javascript" "jwplayer/jwplayer.js">script>
    body>
    
    div id="test01player">test01player....div>
    "text/javascript"> jwplayer("test01player").setup({ playlist: [{ sources: [{ file: 'rtmp://118.178.128.20:1936/hls/test01' },{ file: 'http://118.178.128.20:8080/hls/test01.m3u8' }] }],height: 360,primary: "flash",width: 640 }); html>

    用pc客户端浏览器访问,IE能正常访问直播流。
    可以看到直播时,右上角有JWPlayer透明字样,应该是非授权版本带的水印。
    IE:

    chrome:(安装了flash的ppapi插件)

    firefox:(不安装flash插件,无法播放,安装后可以)

    android浏览器没有开启flash支持的,不能播放jwplayer.html页面。

    ubuntu14.04 nginx-rtmp-module 配置的更多相关文章

    1. iOS AVPlayer未加载大多数HLS流

      解决方法我使用的HTTPURL因此不受保护,它不允许设备或模拟器播放它.我在info.plist中添加了一个异常,允许不安全的协议让iOS顺利地流式传输HLS.

    2. iOS上的HLS AVPlayer – 返回现场直播

      我有一个AVPlayer,它正在流式传输实时HLS流.当用户多任务应用程序时,我看到播放速率下降到0.0(暂停),当用户返回时它返回到1.0(播放),但从暂停点开始播放.在不重新启动流的情况下强制播放器恢复生存的最佳方法是什么?是否有seektotime方法处理最接近的实时时间参数?

    3. 在Android上玩HLS(比较替代方案)

      您在Android上玩HLS的经历是什么?谢谢..解决方法Uplynk.com有一个,但你必须使用他们的流媒体服务.我成功地在少数姜饼设备上试了一下.我的一个较旧的姜饼模型在切换分辨率时会出现黑框,但它在大多数情况下都有效.

    4. Vue项目打包并部署nginx服务器的详细步骤

      vue项目开发好之后需要部署到服务器上进行外网访问,下面这篇文章主要给大家介绍了关于Vue项目打包并部署nginx服务器的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

    5. ubuntu中利用nginx部署vue项目的完整步骤

      Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行,下面这篇文章主要给大家介绍了关于ubuntu中利用nginx部署vue项目的相关资料,需要的朋友可以参考下

    6. 使用Node.js配合Nginx实现高负载网络

      这篇文章主要介绍了使用Node.js配合Nginx实现高负载网络,Node的异步加上Nginx的反向代理在性能上实在是给力!需要的朋友可以参考下

    7. CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法详解(mini版本)

      这篇文章主要介绍了CentOS 7.2 mini版本下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

    8. Symfony2在Nginx下的配置方法图文教程

      这篇文章主要介绍了Symfony2在Nginx下的配置方法,结合图文形式较为详细的分析了Symfony2在Nginx下的配置方法与具体操作步骤,需要的朋友可以参考下

    9. windows7配置Nginx+php+mysql的详细教程

      这篇文章主要介绍了windows7配置Nginx+php+mysql的详细教程 的相关资料,需要的朋友可以参考下

    10. 一文教会你用nginx+uwsgi部署自己的django项目

      uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议,下面这篇文章主要给大家介绍了关于用nginx+uwsgi部署自己的django项目的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

    随机推荐

    1. crontab发送一个月份的电子邮件

      ubuntu14.04邮件服务器:Postfixroot收到来自crontab的十几封电子邮件.这些邮件包含PHP警告.>我已经解决了这些警告的原因.>我已修复每个cronjobs不发送电子邮件(输出发送到>/dev/null2>&1)>我删除了之前的所有电子邮件/var/mail/root/var/spool/mail/root但我仍然每小时收到十几封电子邮件.这些电子邮件来自cronjobs,

    2. 模拟两个ubuntu服务器计算机之间的慢速连接

      我想模拟以下场景:假设我有4台ubuntu服务器机器A,B,C和D.我想在机器A和机器C之间减少20%的网络带宽,在A和B之间减少10%.使用网络模拟/限制工具来做到这一点?

    3. ubuntu-12.04 – 如何在ubuntu 12.04中卸载从源安装的redis?

      我从源代码在Ubuntu12.04上安装了redis-server.但在某些时候它无法完全安装,最后一次makeinstallcmd失败.然后我刚刚通过apt包安装.现在我很困惑哪个安装正在运行哪个conf文件?实际上我想卸载/删除通过源安装的所有内容,只是想安装一个包.转到源代码树并尝试以下命令:如果这不起作用,您可以列出软件自行安装所需的步骤:

    4. ubuntu – “apt-get source”无法找到包但“apt-get install”和“apt-get cache”可以找到它

      我正在尝试下载软件包的源代码,但是当我运行时它无法找到.但是当我运行apt-cache搜索squid3时,它会找到它.它也适用于apt-getinstallsquid3.我使用的是Ubuntu11.04服务器,这是我的/etc/apt/sources.list我已经多次更新了.我尝试了很多不同的debs,并没有发现任何其他地方的错误.这里的问题是你的二进制包(deb)与你的源包(deb-src)不

    5. ubuntu – 有没有办法检测nginx何时完成正常关闭?

      &&touchrestarted),因为即使Nginx没有完成其关闭,touch命令也会立即执行.有没有好办法呢?这样的事情怎么样?因此,pgrep将查找任何Nginx进程,而while循环将让它坐在那里直到它们全部消失.你可以改变一些有用的东西,比如睡1;/etc/init.d/Nginx停止,以便它会休眠一秒钟,然后尝试使用init.d脚本停止Nginx.你也可以在某处放置一个计数器,这样你就可以在需要太长时间时发出轰击信号.

    6. ubuntu – 如何将所有外发电子邮件从postfix重定向到单个地址进行测试

      我正在为基于Web的应用程序设置测试服务器,该应用程序发送一些电子邮件通知.有时候测试是使用真实的客户数据进行的,因此我需要保证服务器在我们测试时无法向真实客户发送电子邮件.我想要的是配置postfix,以便它接收任何外发电子邮件并将其重定向到一个电子邮件地址,而不是传递到真正的目的地.我正在运行ubuntu服务器9.10.先感谢您设置本地用户以接收所有被困邮件:你需要在main.cf中添加:然后

    7. ubuntu – vagrant无法连接到虚拟框

      当我使用基本的Vagrantfile,只配置了两条线:我看到我的虚拟框打开,但是我的流氓日志多次显示此行直到超时:然后,超时后的一段时间,虚拟框框终于要求我登录,但是太久了!所以我用流氓/流氓记录.然后在我的物理机器上,如果我“流氓ssh”.没有事情发生,直到:怎么了?

    8. ubuntu – Nginx – 转发HTTP AUTH – 用户?

      我和Nginx和Jenkins有些麻烦.我尝试使用Nginx作为Jenkins实例的反向代理,使用HTTP基本身份验证.它到目前为止工作,但我不知道如何传递带有AUTH用户名的标头?}尝试将此指令添加到您的位置块

    9. Debian / Ubuntu – 删除后如何恢复/ var / cache / apt结构?

      我在ubuntu服务器上的空间不足,所以我做了这个命令以节省空间但是现在在尝试使用apt时,我会收到以下错误:等等显然我删除了一些目录结构.有没有办法做apt-getrebuild-var-tree或类似的?

    10. 检查ubuntu上安装的rubygems版本?

      如何查看我的ubuntu盒子上安装的rubygems版本?只是一个想法,列出已安装的软件包和grep为ruby或宝石或其他:)dpkg–get-selections

    返回
    顶部