NDK 直播流媒体服务器搭建

简介: 本文中的 Nginx 服务器只添加了一个 RTMP 模块,用作一个简单的流媒体服务器。

作者:字节流动

来源:https://blog.csdn.net/Kennethdroid/article/details/86418725


Nginx

Nginx 是由俄罗斯人 Igor Sysoev 编写的轻量级 Web 服务器,发音为 “engine x”,也可用作反向代理和负载均衡器,于 2004 年公开发布,遵循 BSD 开源许可,它以高稳定性、丰富的功能以及低系统开销而出名。Nginx 也是一种模块化的服务器,基于 Nginx 可以灵活添加各种功能模块,如 HTTP 模块、WebSocket 模块、RTMP 模块等,不同模块占用不同的端口,相互独立,如本文中要使用的 RTMP 模块默认端口为 1935 。

本文中的 Nginx 服务器只添加了一个 RTMP 模块,用作一个简单的流媒体服务器。

RTMP 协议

RTMP ( Real Time Message Protocol )协议是一种实时信息传输协议,由 Adobe 公司开发,用来解决多媒体数据传输流的多路复用( Multiplexing )和分包( packetizing )的问题,它是应用层协议,传输层通常基于 TCP 实现。RTMP 协议在前期并未受到太多的重视,近两年随着 VR 以及视频直播领域的火热,RTMP 协议正逐渐成为主流。

直播框架

image.png

搭建一个简易的直播框架需要三个角色:直播(推流)客户端,流媒体服务器和引流客户端。

安装 Nginx

环境: Ubuntu 16.04 ,注意:若使用阿里云主机需要配置安全组规则,开放 80 、1935 等端口。

image.png

安装 nginx 和 nginx-rtmp 编译依赖工具:

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

工作目录:

mkdir nginx
chmod +x -R nginx/
cd live

下载 nginx 和 nginx-rtmp 源码:

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

解压:

# 安装 unzip
# sudo apt-get install unzip
tar -zxvf nginx-1.8.1.tar.gz
unzip master.zip

添加 rtmp-nginx 模块:

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

编译、安装:

# 编译 nginx 源码
make
# 安装
sudo make install

启动 Nginx 服务:

sudo service nginx start
# sudo service nginx stop 停止

打开浏览器 http://127.0.0.1/ 或者输入阿里云主机的公网 ip :

image.png

安装 FFmpeg:

sudo apt-get install ffmpeg
# 查看版本信息
ffmpeg -v 

image.png

配置 nginx 服务器:

# 进入 nginx 安装目录
cd /usr/local/nginx
# 修改配置文件 /usr/local/nginx/conf/nginx.conf
# 在配置文件中添加以下代码
rtmp {
    server {
            listen 1935;
            chunk_size 4096;
            application live {
                    live on;
                    record off;
                    exec ffmpeg -i rtmp://localhost/live/$name -threads 1 -c:v libx264 -profile:v baseline -b:v 350K -s 640x360 -f flv -c:a aac -ac 1 -strict -2 -b:a 56k rtmp://localhost/live360p/$name;
            }
            application live360p {
                    live on;
                    record off;
        }
    }
}

重启 nginx 服务器:

sudo service nginx restart

到目前为止,一个简单的流媒体服务器搭建完成,接下来将实现服务器与客户端之间的推流和引流。


NDK 开发系列文章:


「视频云技术」你最值得关注的音视频技术公众号,每周推送来自阿里云一线的实践技术文章,在这里与音视频领域一流工程师交流切磋。

阿里云社区.png

相关文章
|
4月前
|
安全 Linux 网络安全
Windows本地搭建Emby媒体库服务器并实现远程访问「内网穿透」
Windows本地搭建Emby媒体库服务器并实现远程访问「内网穿透」
|
Web App开发 编解码 安全
CentOS7下利用SRS搭建直播流媒体服务器
CentOS7下利用SRS搭建直播流媒体服务器
753 0
CentOS7下利用SRS搭建直播流媒体服务器
|
2月前
|
安全 Linux 网络安全
【Windows】搭建Emby媒体库服务器,实现无公网IP远程访问
【Windows】搭建Emby媒体库服务器,实现无公网IP远程访问
204 0
|
9月前
|
编解码 网络协议 内存技术
实现输出h264直播流的rtmp服务器 flash直播服务器
实现输出h264直播流的rtmp服务器 flash直播服务器
139 0
媒体服务器(MS)抢救记
当媒体服务器发行故障后,先后通过分析SIP信令及媒体服务器抓包及服务器日志,定位媒体服务器网元出现故障。 通过abrt抓取进程异常的core文件,使用sipp模拟大呼进行故障场景复现。采用valgrind进行内存泄漏定位。最终定位问题并修复该问题。
|
JavaScript 前端开发 视频直播
利用Docker挂载Nginx-rtmp(服务器直播流分发)+FFmpeg(推流)+Vue.js结合Video.js(播放器流播放)来实现实时网络直播
众所周知,在视频直播领域,有不同的商家提供各种的商业解决方案,其中比较靠谱的服务商有阿里云直播,腾讯云直播,以及又拍云和网易云的有偿直播服务,服务包括软硬件设备,摄像机,编码器,流媒体服务器等。但是其高昂的费用以及较高的准入门槛让许多个人和小型企业望而却步,本文要讲解的是如何使用nginx-rtmp搭建直播服务器,配合FFmpeg推流,在网页端vue.js作为载体利用video.js作为流播放器,打造一套可用的在线视频直播方案。
利用Docker挂载Nginx-rtmp(服务器直播流分发)+FFmpeg(推流)+Vue.js结合Video.js(播放器流播放)来实现实时网络直播
|
人工智能 Linux
VOS 媒体转发开启后,如何计算各种编码所占用的带宽,以及如何修改服务器的时区
计算方法如下: 带宽 = 包长度 × 每秒包数 = 包长度 × (1 / 打包周期) =(Ethernet 头 + IP 头 + UDP 头 + RTP 头 + 有效载荷)× 每秒包数 =(112bit + 160bit + 64bit + 96bit + 有效载荷)× 每秒包数 =(112bit + 320bit + 有效载荷)× 每秒包数 =(432bit + 有效载荷)× 每秒包数 =(432bit × 每秒包数) + (有效载荷 × 每秒包数) =(432bit × 1000 / 打包周期) + 编码速率 =(432bit / 打包周期)Kbps + 编码速率 按照上面的计算公式: G
|
存储 缓存 对象存储
将 WordPress 媒体迁移全部迁移至对象存储,降低服务器存储压力
虽然自己的 WordPress 博客很早就云化了,用了云服务器、云数据库、OSS 和 CDN,不过在 WordPress 的附件的云化其实自己一直都是沿用的老思路就是 我爱水煮鱼 大佬之前发布的七牛云插件,用镜像的方式把源站的图片在七牛进行存储再加速,这样的好处就是兼容性比较广,但是WP网站的目录随着网站的成长会越来越大。
3115 0
|
Web App开发 计算机视觉
揭开webRTC媒体服务器的神秘面纱——WebRTC媒体服务器&开源项目介绍
揭开webRTC媒体服务器的神秘面纱——WebRTC媒体服务器&开源项目介绍 WebRTC生态系统是非常庞大的。当我第一次尝试理解WebRTC时,网络资源之多让人难以置信。本文针对webRTC媒体服务器和相关的开源项目(如kurento,janus,jitsi.org等)做一些介绍。
4643 0
|
Web App开发 应用服务中间件 PHP
使用nginx搭建媒体点播服务器
使用nginx搭建媒体点播服务器 最新由于兴趣,对ubuntu和安卓上的视频点播直播等应用比较感兴趣,所以在vmware的虚拟机里面搭建了一个视频点播网站,参考了fengzhanhai的文章Nginx搭建视频点播服务器(仿真专业流媒体软件)。
2415 0

热门文章

最新文章