文档章节

ubuntu安装流媒体服务器(nginx+rtmp,rtsp转rtmp,rtsp转m3u8)

生气的代码
 生气的代码
发布于 2017/06/02 12:20
字数 689
阅读 2450
收藏 1

在 ubuntu server 14 安装流程

1.先下载安装  nginx 和 nginx-rtmp 编译依赖工具

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

2. 创建一个nginx目录,并切换到nginx目录

mkdir ~/nginx
cd ~/nginx

3. 下载 nginx 和 nginx-rtmp源码

wget http://nginx.org/download/nginx-1.9.9.tar.gz
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip

4. 安装unzip工具,解压下载的安装包

sudo apt-get install unzip

5.解压 nginx 和 nginx-rtmp安装包

tar -zxvf nginx-1.9.9.tar.gz
unzip master.zip

6. 切换到 nginx-目录

cd nginx-1.9.9

7.添加 nginx-rtmp 模板编译到 nginx

./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master

8.编译安装 

make
sudo make install

9. 安装nginx init 脚本

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

10. 启动和停止nginx 服务,生成配置文件

sudo service nginx start
sudo service nginx stop

11. 安装 FFmpeg

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

12. 配置 nginx-rtmp 服务器

打开 /usr/local/nginx/conf/nginx.conf

添加location

location /hls {
            types {
                application/vnd.apple.mpegurl m3u8;
                video/mp2t ts;
            }
            root ~/nginx/www;
            expires -1;
            add_header Cache-Control no-cache;
        }

文件末尾添加rtmp配置

rtmp {
      server {
              listen 1935; 
              publish_time_fix on;
              application myapp {
                      live on; #stream on live allow
                      allow publish all; # control access privilege
                      allow play all; # control access privilege
              }
              application hls {
                      live on;
                      hls on;  #这个参数把直播服务器改造成实时回放服务器。
                      hls_path ~/nginx/www/hls;        #切片视频文件存放位置。
                      wait_key on; #对视频切片进行保护,这样就不会产生马赛克了。 
                      hls_fragment 10s; #每个视频切片的时长。 
                      hls_playlist_length 60s; #总共可以回看的事件,这里设置的是1分钟。 
                      hls_continuous on; #连续模式。 
                      hls_cleanup on; #对多余的切片进行删除。 
                      hls_nested on; #嵌套模式。
              }
      }
}

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

sudo service nginx restart

14. ffmpeg将rtsp转码为rtmp

(后面的rtmp在其他地方的访问地址为:rtmp://ip:1935/myapp/stream-name,可用VLC media player打开)

ffmpeg -i "rtsp://xxxx" -f flv -r 15 -s 1280x960 -an "rtmp://localhost:1935/myapp/stream-name"

15. ffmpeg将rtsp转码为m3u8:

(m3u8的访问地址为:http://ip:port/hls/stream-name.m3u8,port为nginx的访问端口号)

ffmpeg -i "rtsp://xxxx" -strict -2 -c:v libx264 -c:a aac -f hls ~/nginx/www/hls/stream-name.m3u8

16. html中使用video.js访问流媒体服务器:

国人处理好的videojs包为:http://pan.baidu.com/s/1kVuU3PX,此包已经支持IE8的视频播放。

<!DOCTYPE html>
<html>
<head>
  <title>Video.js | HTML5 Video Player</title>

  <!-- Chang URLs to wherever Video.js files will be hosted -->
  <link href="video-js.css" rel="stylesheet" type="text/css">
  <!-- video.js must be in the <head> for older IEs to work. -->
  <script src="video.js"></script>

  <!-- Unless using the CDN hosted version, update the URL to the Flash SWF -->
  <script>
    videojs.options.flash.swf = "video-js.swf";
  </script>
</head>
<body>
  <video id="example_video_1" class="video-js vjs-default-skin" controls preload="none" width="640" height="264"
      poster="oceans-clip.png"
      data-setup="{}">
   <source src="rtmp://e.5iwf.cn:1935/myapp/video5" type="rtmp/flv">
    <!-- 如果上面的rtmp流无法播放,就播放hls流 -->
    <source src="http://e.5iwf.cn:9999/hls/video5.m3u8" type='application/x-mpegURL'>
  </video>
</body>
</html>

© 著作权归作者所有

共有 人打赏支持
生气的代码
粉丝 10
博文 12
码字总数 6503
作品 0
厦门
私信 提问
夏楚/ZLMediaKit

一个基于C++11简单易用的轻量级流媒体库 平台 编译状态 Linux macOS iOS Android Windows 已经完成移植 项目特点 基于C++11开发,避免使用裸指针,代码稳定可靠;同时跨平台移植简单方便,代...

夏楚
2017/04/18
0
0
EasyDSS流媒体服务器灵活地帮助用户实现摄像机RTSP转RTMP直播功能

版权声明:本文为EasyDarwin开源社区原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiejiashu/article/details/81008647 简要描述 今天突然接到国内某上市公司同事打来的技术咨询...

xiejiashu
07/11
0
0
利用Simple-RTMP-Server搭建RTMP和HLS直播服务(上)

SRS(Simple-RTMP-Server)定位是运营级的互联网直播服务器集群,追求更好的概念完整性和最简单实现的代码,在Github上人气颇高。本文是由王学投稿的SRS搭建直播的学习笔记,由LiveVideoStac...

livevideostack
2017/12/04
0
0
EasyPlayer.js H5播放器帮助我这种不会前端的普通用户也能轻松实现直播接入

版权声明:本文为EasyDarwin开源社区原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiejiashu/article/details/84841604 说到EasyPlayer.js,先得说一下EasyPlayer到底是啥, An...

xiejiashu
12/05
0
0
ffmpeg+EasyDSS流媒体服务器实现稳定的rtmp推流直播

本文转自EasyDarwin团队成员Alex的博客:http://blog.csdn.net/cai6811376/article/details/74783269 需求 在做EasyDSS开发时,总是在测试推流效果。 当然,可以使用libEasyRTMP进行推流测试...

xiejiashu
2017/07/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

java框架学习日志-7(静态代理和JDK代理)

静态代理 我们平时去餐厅吃饭,不是直接告诉厨师做什么菜的,而是先告诉服务员点什么菜,然后由服务员传到给厨师,相当于服务员是厨师的代理,我们通过代理让厨师炒菜,这就是代理模式。代理...

白话
今天
12
0
Flink Window

1.Flink窗口 Window Assigner分配器。 窗口可以是时间驱动的(Time Window,例如:每30秒钟),也可以是数据驱动的(Count Window,例如:每一百个元素)。 一种经典的窗口分类可以分成: 翻...

满小茂
今天
5
0
my.ini

1

architect刘源源
今天
7
0
docker dns

There is a opensource application that solves this issue, it's called DNS Proxy Server It's a DNS server that solves containers hostnames, if could not found a hostname that mat......

kut
今天
8
0
寻找数学的广度——《这才是数学》读书笔记2700字

寻找数学的广度——《这才是数学》读书笔记2700字: 文|程哲。数学学习方式之广:国内外数学教育方面的专家,进行了很多种不同的数学学习方式尝试,如数学绘本、数学游戏、数学实验、数学步道...

原创小博客
今天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部