热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在Ubuntu18.04上使用Nginx搭建RTMP流媒体服务器

本文详细介绍了如何在Ubuntu18.04上使用Nginx和nginx-rtmp-module模块搭建RTMP流媒体服务器,包括环境搭建、配置文件修改和推流拉流操作。适用于需要搭建流媒体服务器的技术人员。

本文详细介绍了如何在Ubuntu 18.04上使用Nginx和nginx-rtmp-module模块搭建RTMP流媒体服务器。通过本文,你可以学习到环境搭建、配置文件修改以及推流和拉流的具体操作。

环境搭建

1. 安装依赖库

首先,确保你的系统已经安装了必要的依赖库,包括OpenSSL、PCRE和Zlib。这些库对于Nginx的编译和运行至关重要。

# 安装OpenSSL依赖库
sudo apt-get install openssl libssl-dev
# 安装PCRE
sudo apt-get install libpcre3 libpcre3-dev
# 安装Zlib
sudo apt-get install zlib1g-dev

2. 下载并编译Nginx和nginx-rtmp-module

接下来,下载Nginx和nginx-rtmp-module的源码,并进行编译。

mkdir /home/rtmp
cd /home/rtmp
git clone https://github.com/nginx/nginx.git
git clone https://github.com/arut/nginx-rtmp-module.git

设置Nginx编译参数,确保包含RTMP模块。

./auto/configure --with-http_ssl_module --with-http_v2_module --with-http_flv_module --with-http_mp4_module --add-module=../nginx-rtmp-module

编译并安装Nginx。

make -j4
sudo make install

安装完成后,可以通过以下命令检查Nginx版本,确认安装成功。

/usr/local/nginx/sbin/nginx -v

配置RTMP服务

1. 修改Nginx配置文件

编辑Nginx配置文件,添加RTMP模块的相关配置。

vi /usr/local/nginx/conf/nginx.conf

在配置文件中添加以下内容,确保开启root权限并设置正确的播放路径。

user  root;
rtmp {
    server {
        listen 1935;  # RTMP服务器端口
        chunk_size 4096;  # 分块大小
        application vod {
            play /home/ffmpeg_learn/test_sources/test-av;  # 媒体文件路径
        }
    }
}

保存并退出编辑器,然后重启Nginx以应用新的配置。

/usr/local/nginx/sbin/nginx -s reload

2. 测试推流和拉流

确保播放路径正确,并且视频文件格式为H264编码的视频和AAC编码的音频。例如,添加一个名为test.mp4的文件。

使用VLC播放器测试RTMP流。

rtmp://your_ubuntu_ip/vod/test.mp4

视频效果如下所示:

Nginx搭建RTMP流媒体服务器(Ubuntu18.04) nginx rtmp flv

实时推流

1. 配置直播节点

修改Nginx配置文件,添加一个新的直播应用节点。

application live {
    live on;
}

保存并退出编辑器,然后重启Nginx。

/usr/local/nginx/sbin/nginx -s reload

2. 使用FFmpeg进行推流

使用FFmpeg将本地视频文件推送到RTMP服务器。

ffmpeg -re -i /home/ffmpeg_learn/test_sources/test-av/Titanic.mp4 -c copy -f flv rtmp://192.168.88.180/live/Titanic

使用VLC播放器查看推流效果。

Nginx搭建RTMP流媒体服务器(Ubuntu18.04) nginx rtmp flv

拉流操作

除了使用VLC播放器进行拉流外,还可以使用FFmpeg命令行工具进行拉流操作。

# 使用ffplay直接观看
ffplay rtmp://192.168.88.180/vod/Titanic.mp4
# 使用FFmpeg下载到文件
ffmpeg -i rtmp://192.168.88.180/vod/Titanic.mp4 test.mp4

本文《在Ubuntu 18.04上使用Nginx搭建RTMP流媒体服务器》版权归响箭零零一所有,引用时需遵循CC 4.0 BY-SA版权协议。


推荐阅读
  • 了解如何快速搭建属于自己的个人博客,无需编程基础,适合Mac和Windows用户。通过本文,您将学会使用GitHub Pages和Hexo构建一个完全自主的在线空间。 ... [详细]
  • Linux环境下Git安装及常见问题解析
    本文详细介绍了在Ubuntu系统中安装Git的过程,包括环境检查、软件安装、用户配置以及SSH密钥生成等步骤,并针对安装过程中可能出现的问题提供了有效的解决方案。 ... [详细]
  • 本文详细探讨了Xshell6评估版到期后无法使用的常见问题,并提供了有效的解决方案,包括如何合法购买授权以继续使用。 ... [详细]
  • cJinja:C++编写的轻量级HTML模板引擎
    本文介绍了cJinja,这是一个用C++编写的轻量级HTML模板解析库。它利用ejson来处理模板中的数据替换(即上下文),其语法与Django Jinja非常相似,功能强大且易于学习。 ... [详细]
  • 全能终端工具推荐:高效、免费、易用
    介绍一款备受好评的全能型终端工具——MobaXterm,它不仅功能强大,而且完全免费,适合各类用户使用。 ... [详细]
  • 在Win10上利用VS2015构建Caffe2环境
    本文详细介绍如何在Windows 10操作系统上通过Visual Studio 2015编译Caffe2深度学习框架的过程。包括必要的软件安装、环境配置以及常见问题的解决方法。 ... [详细]
  • 随着EOS主网的成功启动,众多开发者和投资者对其给予了高度关注。本文旨在介绍如何构建EOS开发环境,包括所需的基本硬件配置、软件安装步骤以及常见问题的解决方案。 ... [详细]
  • PHP调用Shell命令的多种方法及环境配置指南
    本文详细介绍了在PHP中调用Shell命令的不同方式及其应用场景,同时提供了在Ubuntu系统中配置PHP以支持Shell命令执行的具体步骤。此外,还涵盖了安装与配置Apache服务器及PHP环境的过程,以便于开发者能够顺利地在Web环境中执行Shell脚本。 ... [详细]
  • 本文介绍了如何在Ubuntu 16.04系统上配置Nginx服务器,以便能够通过网络访问存储在服务器上的图片资源。这解决了在网页开发中需要使用自定义在线图标的需求。 ... [详细]
  • 利用YAML配置Resilience4J的Circuit Breaker
    本文探讨了Resilience4j作为现代Java应用程序中不可或缺的容错工具,特别介绍了如何通过YAML文件配置Circuit Breaker以提高服务的弹性和稳定性。 ... [详细]
  • 在Linux系统上构建Web服务器的详细步骤
    本文详细介绍了如何在Linux系统上搭建Web服务器的过程,包括安装Apache、PHP和MySQL等关键组件,以及遇到的一些常见问题及其解决方案。 ... [详细]
  • 本文详细介绍了如何在 Java 中使用 com.badlogic.gdx.utils.JsonValue.iterator() 方法来遍历和解析 JSON 数据,并提供了多个实际应用中的代码示例。 ... [详细]
  • 任务,栈, ... [详细]
  • 本文详细介绍了如何在Linux系统中安装和配置GitLab Runner,包括添加YUM源、安装GitLab Runner以及注册Runner的具体步骤。 ... [详细]
  • 本文详细介绍了如何在Ubuntu系统上快速安装和配置Bitnami版本的GitLab,包括下载安装文件、执行安装过程以及设置邮件服务等步骤。 ... [详细]
author-avatar
喵喵方小幺
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有