【环境搭建】在Ubuntu16.04上搭建Nginx-rtmp流媒体服务器

  • 关于流媒体
  • 搭建Nginx-rtmp流媒体服务器
  • 使用obs将本地视频推流到Nginx-rtmp流媒体服务器
  • 在Nginx-rtmp流媒体服务器上使用VLC media player测试获取到的视频流
  • 结语

关于流媒体

流媒体(streaming media)是指将一连串的媒体数据压缩后,经过网上分段发送数据,在网上即时传输影音以供观赏的一种技术与过程,此技术使得数据包得以像流水一样发送;如果不使用此技术,就必须在使用前下载整个媒体文件。流式传输可传送现场影音或预存于服务器上的影片,当观看者在收看这些影音文件时,影音数据在送达观看者的计算机后立即由特定播放软件播放

搭建Nginx-rtmp流媒体服务器

  • Nginx:Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。
  • rtmp:RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。
  • 安装依赖
sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev
  • 下载Nginx源码包和Nginx-rtmp源码包
wget http://nginx.org/download/nginx-1.7.5.tar.gz
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
  • 解压两个源码包后,进入到Nginx源码包目录内
./configure --with-http_ssl_module --add-module=解压后的Nginx-rtmp源码包路径
  • 编译、编译安装
make
sudo make install
  • 下载Nginx初始化脚本,并更改权限,设置Nginx开机自启动
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

移除开机自启动的方法:
sudo update-rc.d -f nginx remove

  • 安装ffmpeg
    从源码编译安装ffmpeg的方法在【环境搭建】在ubuntu16.04上编译安装ffmpeg和opencv中
  • 更改nginx配置文件
sudo cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak
sudo rm /usr/local/nginx/conf/nginx.conf
sudo vim /usr/local/nginx/conf/nginx.conf

添加内容如下:

#user  nobody;
worker_processes  1;
error_log  logs/rtmp_error.log debug;
pid        logs/nginx.pid;
events {worker_connections  1024;
}
http {server {listen       80;server_name  localhost;location /hls {# Serve HLS fragments# CORS setupadd_header 'Access-Control-Allow-Origin' '*' always;add_header 'Access-Control-Expose-Headers' 'Content-Length';# allow CORS preflight requestsif ($request_method = 'OPTIONS') {add_header 'Access-Control-Allow-Origin' '*';add_header 'Access-Control-Max-Age' 1728000;add_header 'Content-Type' 'text/plain charset=UTF-8';add_header 'Content-Length' 0;return 204;}types {application/vnd.apple.mpegurl m3u8;video/mp2t ts;}root /tmp;add_header Cache-Control no-cache;}}
}
rtmp {server {listen 1935;chunk_size 8192;application hls {live on;meta copy;hls on;hls_path /tmp/hls;}}
}
  • 添加crossdomain.xml文件
sudo vim /usr/local/nginx/html/crossdomain.xml

添加内容如下:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*"/>
</cross-domain-policy>
  • 启动nginx服务
cd /etc/init.d
./nginx start

  • 查看nginx运行状态
systemctl status nginx.service

  • 停止nginx服务
cd /etc/init.d
./nginx stop

使用obs将本地视频推流到Nginx-rtmp流媒体服务器

为了便于测试,在一台windows电脑下载obs客户端
https://obsproject.com/



  • 服务选择自定义
  • 服务器地址填写为让rtmp://nginx服务器的ip地址:1935/hls/
  • 串流密钥自定义任意值


在Nginx-rtmp流媒体服务器上使用VLC media player测试获取到的视频流

下载VLC media player

sudo apt-get install vlc



串流密钥和obs端设置的串流密钥一致

结语

如果您有修改意见或问题,欢迎留言或者通过邮箱和我联系。
如果我的文章对您有帮助,转载请注明出处。

【环境搭建】在Ubuntu16.04上搭建Nginx-rtmp流媒体服务器相关推荐

  1. Ubuntu16.04下配置nginx + RTMP流媒体服务器

    目录 前言 1.安装nginx需要的环境 1.1 查看gcc版本 gcc -v 1.2 pcre.pcre-devel安装 1.3 zlib安装 1.4 安装openssl 2.开始安装 2.1 创建 ...

  2. ubuntu16.04上搭建stm32f4开发环境

    ubuntu16.04上搭建stm32f4开发环境 工程源码的地址 https://github.com/txson/ubuntu-stm32 欢迎大家参与修改 搭建交叉编译环境 stm32 属于ar ...

  3. 在ubuntu16.04上搭建svn服务器

    本文介绍在如何在ubuntu16.04 的系统上搭建svn服务器以及可能遇到的问题.下面的操作都以root用户进行. 1.安装svn服务器软件subversion. // 安装完成后的svn版本为 1 ...

  4. 宝塔 搭建 nginx rtmp 流媒体服务器

    宝塔 搭建 nginx rtmp 流媒体服务器 安装环境说明 系统环境: Centos 7 机型: DELL R540 准备工作 nginx 添加模块,编译安装 nginx ,下载 nginx-rtm ...

  5. 如何在Ubuntu 18.04上使用Nginx与MySQL服务器一起部署ASP.NET Core应用程序

    The author selected the Open Source Initiative to receive a donation as part of the Write for DOnati ...

  6. ubuntu上搭建php,ubuntu10.04上搭建php网站运行环境

    ubuntu 10.04下搭建php网站运行环境 ubuntu 10.04下搭建php网站运行环境 前提: 要打开root权限 sudo password [这里填写root密码] 1.第一步安装ub ...

  7. hadoop搭建在Ubuntu16.04上

    一.环境 Ubuntu16.04.Hadoop2.7.3.java8 系统安装完成后建议先更新一下 apt源 1.复制原文件备份 sudo cp /etc/apt/source.list /etc/a ...

  8. 在ubuntu16.04上搭建samba文件共享服务器

    需求: 有两个用户abo和abu; 有三个文件夹: /samba_workspace/abo/ : 用户abo可访问,拥有读写权限 /samba_workspace/abu/ : 用户abu可访问,拥 ...

  9. Windows nginx + rtmp 流媒体服务器搭建(uniapp可用)

    准备: 所有文件目录请不要中文命名,请使用英文 nginx服务 官网下载 niginx服务 视频推流版 3. 配置文件 nginx-rtmp-module 4. 推流文件 ffmpeg 5. 拉流工具 ...

  10. win7系统搭建流媒体服务器,windows7 下 搭建 nginx + rtmp 流媒体服务器

    成果分享:https://github.com/ziq358/Nginx-Rtmp 材料准备: 1.Microsoft Visual Studio 2010 下载安装. 2.MinGW 安装. 3.下 ...

最新文章

  1. 如何对正在运行的进程,进行heap profile
  2. Asp.Net MVC2.0 Url 路由入门---实例篇
  3. HTML在线编辑器控件
  4. 为没有源码的DLL文件添加强名称
  5. 数据类型,隐式类型转换
  6. 【数据结构与算法】之深入解析“二叉树的最小深度”的求解思路与算法示例
  7. SDNU 1103.买彩票(水题)
  8. 【LiveVideoStack线上分享】— FreeSWITCH核心架构与流程控制
  9. linux tr命令完整,linux tr命令详解
  10. oracle安装后新建数据库实例及配置
  11. springmvc整合mybatis之准备阶段与文件配置
  12. SQL——联接分类和本质
  13. Java Web学习总结(10)——Session详解
  14. 如何计算虚拟化vcpu_【科普】CPU和内存虚拟化
  15. 查看ip命令 linux centos7,如何centos7查看ip(地址)命令?
  16. 菜鸟写Python-Scrapy:Spider源码分析
  17. 红外遥控风扇改手机APP远程控制杂记
  18. mavlink协议从入门到放弃(二)
  19. 一个外包仔的自我救赎,偷偷写了10万行代码的电商系统,横扫offer!
  20. 创维30周年庆典举行,中国制造业标杆向千亿目标加速冲刺

热门文章

  1. SoundPool概述
  2. 【Nokia5800xm软件资源】
  3. 虚拟机连接本地sql服务器,如何从Mac连接到虚拟机上的本地数据库?(平行线)...
  4. pdf页面倒序如何调整?
  5. js中的几种随机排序方案
  6. 内存映射文件(专门读写大文件)
  7. 使用PE破解Windows电脑密码
  8. Resnet 网络结构的理解以及论文
  9. 罗技鼠标键盘没法使用,可以尝试安装此驱动
  10. PMP课程笔记:第10章 项目沟通管理