阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Ubuntu下用nginx和nginx-rtmp-module搭建流媒体服务器

407次阅读
没有评论

共计 2486 个字符,预计需要花费 7 分钟才能阅读完成。

前言:

公司要新开一个与视频直播相关的游戏的坑。首先需要解决的问题就是:如何实现流媒体直播,是采用现在比较成熟的各种云直播方案,还是自己搭建视频服务器。由于后续运营可能面对国外市场,采用国内的云,意味着前期需要学习相关的 sdk 接入,然后在此基础上进行的开发最后却可能完全用不上。因此决定先自己搭建一个流媒体服务器进行前期开发,最后再决定实际运营采用哪一个云,或者干脆就用自己的服务器也未可知。总之,我们需要快速搭建一个流媒体服务器以便迅速展开开发工作。

1. 下载 nginx-rtmp-module:

nginx-rtmp-module 的官方 github 地址:https://github.com/arut/nginx-rtmp-module
使用命令:

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

下载的内容放到~/prog 目录下。

2. 安装 nginx:

机器原来已经用 sudo apt install 装好了 nginx。

nginx -v
nginx version: nginx/1.10.0 (Ubuntu)

因为要配置增加模块,安装好的版本没法玩,卸载了吧。

sudo apt remove nginx

nginx 的官方网站为:http://nginx.org/en/download.html

下载最新的稳定版本 1.12.0,解压到~/prog 下面。
进入到 nginx 1.12.0 的目录下,配置一下:

./configure –add-module=../nginx-rtmp-module –with-http_flv_module –with-http_mp4_module

考虑后期可能有需要播放 flv,mp4 的需求,加上相关模块。
吐槽: 起先用配置 –prefix=/home/myfolder 把 nginx 安装到本地用户目录下,以为可以避开一些权限问题,少用几次 sudo。没想到开启 80 端口,记录 log 什么的还是要权限,所以还是安装到默认的系统目录下吧。sudo 是 debian 和 ubuntu 的特点,习惯就好。

报了这样一个错:

./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using –without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using –with-pcre=<path> option.

意思就是 HTTP rewrite 模块需要 PCRE 库,要么你加个不要这个模块的选项重新配置 nginx,要么就安装 PCRE。当然必须选择安装 PCRE。

sudo apt install libpcre3 libpcre3-dev

系统报告 libpcre3 早就装好了,其实只需要装开发库 libpcre3-dev。
重新配置,这次报告是需要 OpenSSL,继续装:

sudo apt install openssl libssl-dev

系统报告 openssl 早就装好了,已经是最新版本了,想来还是跟 PCRE 一样,只需要装个开发库。

再次配置,成功。接下来就是编译安装。因为要装到系统目录下,make install 前面要加 sudo

make
sudo make install

修改配置项后,为安全起见,记得用 make clean 清理一下,然后再 make

3. 配置 nginx:

sudo vim /usr/local/nginx/conf/nginx.conf

在最后加入:

rtmp {server {listen 1935;  # 监听的端口 

        chunk_size 4000;

        application hls {#rtmp 推流请求路径  
            live on;
            hls on;
            hls_path /usr/local/nginx/html/hls;
            hls_fragment 5s;
         }    
    }    
}

这里的视频流目录 hls_path 设置为 /usr/local/nginx/html/hls,这个目录的权限用 chmod 设置为 775。

原来的 http 中加入下面配置的 server 部分:

http {  

    server {listen  8080;  

        location /stat {    
            rtmp_stat all;    
            rtmp_stat_stylesheet stat.xsl;    
        }    

        location /stat.xsl {root /usr/local/src/nginx-rtmp-module/;}    

        location /control {rtmp_control all;}    

        location /hls {# Serve HLS fragments  
            types {  
                application/vnd.apple.mpegurl m3u8;  
                video/mp2t ts;  
            }  
            root html;  
            expires -1;  
        }  

        location ~\.flv {flv;}
        location ~\.mp4$ {mp4;}
    }  
}

进入 /usr/local/nginx 目录下,键入 sudo ./sbin/nginx 就可以启动。相关命令用 - s 参数发信号,- s 后跟 stop,quit,reopen,reload 等可以停止 / 推出 / 重新开启 / 重新加载

推流测试

Windows 或者 linux 都可以用 OBS 做直播推流测试,一款非常好的免费开源直播软件。
官网:https://obsproject.com/。

现在最新版本 18.0.1,有官方中文版,自动识别的。视频来源可以选显示器捕获或者窗口捕获,以本机屏幕上的内容推送到先前配置好的流媒体服务器上。

可以看到服务器上的 hls 目录下有一个以你指定名字命名的后缀为 m3u8 的文件和其他不断实时生成流媒体文件。用 safari 浏览器可以直接打开这个 m3u8 文件观看直播视频。其他浏览器需要插件,下文再谈。

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-06/145286.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2486字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7996905
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...
星哥带你玩飞牛NAS-1:安装飞牛NAS

星哥带你玩飞牛NAS-1:安装飞牛NAS

星哥带你玩飞牛 NAS-1:安装飞牛 NAS 前言 在家庭和小型工作室场景中,NAS(Network Atta...
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...
星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

  星哥带你玩飞牛 NAS-16:不再错过公众号更新,飞牛 NAS 搭建 RSS 对于经常关注多个微...
星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的 NAS 中! 大家对「数据安全感」的需求越来越高 ...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare 也瘫了连监控都挂,根因藏在哪? 最近两天的互联网堪称“故障...
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...
星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定! 前言 作为 NAS 玩家,你是否总被这些...
多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞...
安装并使用谷歌AI编程工具Antigravity(亲测有效)

安装并使用谷歌AI编程工具Antigravity(亲测有效)

  安装并使用谷歌 AI 编程工具 Antigravity(亲测有效) 引言 Antigravity...