ubuntu14.04 nginx-rtmp-module 配置

前端之家收集整理的这篇文章主要介绍了ubuntu14.04 nginx-rtmp-module 配置前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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


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

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

01 安装 NginxNginx-rtmp 编译依赖工具

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

02 创建工作目录

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

    03 下载NginxNginx-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页面

    猜你在找的Ubuntu相关文章