文档章节

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

生气的代码
 生气的代码
发布于 2017/06/02 12:20
字数 689
阅读 1189
收藏 1
点赞 0
评论 0

在 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

ffmpeg+EasyDSS流媒体服务器实现稳定的rtmp推流直播

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

xiejiashu ⋅ 2017/07/08 ⋅ 0

RTMP,RTSP,HLS比较与分析

考虑做一个手机直播系统,首先需要指定一个合理的技术方案。由于自己以前不是搞多媒体这块,对流媒体开发不熟悉,自己的理解思维总习惯用java web开发的惯性走,先指定一个大体的框架。不管对...

天下杰论 ⋅ 2015/07/31 ⋅ 2

跨平台的视频采集、直播SDK--SmarterStreaming

专注、极致、智慧,国内外为数不多不依赖开源框架、跨平台(windows/android/iOS)、公网推送(支持rtmp)-播放(支持rtmp/rtsp)业界真正靠谱的超低延迟。 适用于秀场直播、媒体移动直播、应急指挥...

大牛直播 ⋅ 2016/03/28 ⋅ 9

EasyDarwin/EasyDarwin

EasyDarwin EasyDarwin是由国内开源流媒体团队维护和迭代的一整套开源流媒体视频平台框架,从2012年12月创建并发展至今,包含有单点服务的开源流媒体服务器,和扩展后的流媒体云平台架构的开...

EasyDarwin ⋅ 2017/09/12 ⋅ 0

流媒体平台框架--EasyDarwin

EasyDarwin是由国内开源流媒体团队维护和迭代的一整套开源流媒体视频平台框架,从2012年12月创建并发展至今,包含有单点服务的开源流媒体服务器,和扩展后的流媒体云平台架构的开源框架,开辟...

EasyDarwin ⋅ 2015/01/02 ⋅ 22

关于公网摄像机直播公网视频直播的基本思考方法

前言 目前可以说EasyDarwin接收到的用户需求应该是国内最前沿的,当前视频风口是什么,我们收到的需求就会很多,作为第一手需求接入的我们,很明显感觉到对原理的熟悉、对流程的把握以及对需...

xiejiashu ⋅ 2017/12/27 ⋅ 0

更精炼更专注的RTMPClient客户端EasyRTMPClient,满足直播、转发、分析等各种需求

现状 EasyRTMPClient,熟悉的朋友就会联想到EasyRTSPClient项目(https://github.com/EasyDSS/EasyRTSPClient),EasyRTSPClient从14年中期开始发展,已经迭代发展历时3年多时间,可以说在R...

xiejiashu ⋅ 2017/11/22 ⋅ 0

视频播放系统

在三网融合的环境下,一云多屏正在成为视频行业重点布局的发展方向,以用户为核心,在包括移动终端在内的多种终端之间形成无缝的视频资讯传递、互动和可定制的统一服务,而视频网站多屏应用的...

点播直播云转码 ⋅ 2016/10/20 ⋅ 0

RTSP/RTMP 推送库 - Car-eye-pusher-android

Car-eye-pusher-android car-push-android 是car-eye开源团队开发的一个推送程序demo。程序分成RTSP和RTMP推送两个版本,是car-eye-device android版的简化版本,支持实时监控和远程回放,接口...

car_eye ⋅ 05/21 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

mysql5.7系列修改root默认密码

操作系统为centos7 64 1、修改 /etc/my.cnf,在 [mysqld] 小节下添加一行:skip-grant-tables=1 这一行配置让 mysqld 启动时不对密码进行验证 2、重启 mysqld 服务:systemctl restart mysql...

sskill ⋅ 15分钟前 ⋅ 0

Intellij IDEA神器常用技巧六-Debug详解

在调试代码的时候,你的项目得debug模式启动,也就是点那个绿色的甲虫启动服务器,然后,就可以在代码里面断点调试啦。下面不要在意,这个快捷键具体是啥,因为,这个keymap是可以自己配置的...

Mkeeper ⋅ 19分钟前 ⋅ 0

zip压缩工具、tar打包、打包并压缩

zip 支持压缩目录 1.在/tmp/目录下创建目录(study_zip)及文件 root@yolks1 study_zip]# !treetree 11└── 2 └── 3 └── test_zip.txt2 directories, 1 file 2.yum...

蛋黄Yolks ⋅ 21分钟前 ⋅ 0

聊聊HystrixThreadPool

序 本文主要研究一下HystrixThreadPool HystrixThreadPool hystrix-core-1.5.12-sources.jar!/com/netflix/hystrix/HystrixThreadPool.java /** * ThreadPool used to executed {@link Hys......

go4it ⋅ 40分钟前 ⋅ 0

容器之上传镜像到Docker hub

Docker hub在国内可以访问,首先要创建一个账号,这个后面会用到,我是用126邮箱注册的。 1. docker login List-1 Username不能使用你注册的邮箱,要用使用注册时用的username;要输入密码 ...

汉斯-冯-拉特 ⋅ 46分钟前 ⋅ 0

SpringBoot简单使用ehcache

1,SpringBoot版本 2.0.3.RELEASE ①,pom.xml <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.3.RELE......

暗中观察 ⋅ 47分钟前 ⋅ 0

监控各项服务

比如有三个服务, 为了减少故障时间,增加监控任务,使用linux的 crontab 实现. 步骤: 1,每个服务写一个ping接口 监控如下内容: 1,HouseServer 是否正常运行,所以需要增加一个ping的接口 ; http...

黄威 ⋅ 51分钟前 ⋅ 0

Spring源码解析(八)——实例创建(下)

前言 来到实例创建的最后一节,前面已经将一个实例通过不同方式(工厂方法、构造器注入、默认构造器)给创建出来了,下面我们要对创建出来的实例进行一些“加工”处理。 源码解读 回顾下之前...

MarvelCode ⋅ 51分钟前 ⋅ 0

nodejs __proto__跟prototype

前言 nodejs中完全没有class的这个概念,这点跟PHP,JAVA等面向对象的语言很不一样,没有class跟object的区分,那么nodejs是怎么样实现继承的呢? 对象 对象是由属性跟方法组成的一个东西,就...

Ai5tbb ⋅ 57分钟前 ⋅ 0

Ubuntu16.04 PHP7.0 不能用MYSQLi方式连接MySQL5.7数据库

Q: Ubuntu16.04 PHP7.0 不能用MYSQLi方式连接MySQL5.7数据库 A: 执行以下2条命令解决: apt-get install php-mysql service apache2 restart php -m 执行后会多以下4个模块: mysqli mysqlnd...

SamXIAO ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部