该文章首发于微信公众号“字节流动”。

本博客 NDK 开发系列文章:

  • NDK 编译的三种方式
  • NDK 开发中引入第三方静态库和动态库
  • NDK 开发中 Native 与 Java 交互
  • NDK POSIX 多线程编程
  • NDK Android OpenSL ES 音频采集与播放
  • NDK FFmpeg 编译
  • NDK FFmpeg 音视频解码
  • NDK 直播流媒体服务器搭建
  • NDK 直播推流与引流
  • NDK 开发中快速定位 Crash 问题

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 协议正逐渐成为主流。

直播框架

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

安装 Nginx

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

安装 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 :

安装 FFmpeg:

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


配置 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 直播流媒体服务器搭建相关推荐

  1. 树莓派使用nginx+rtmp搭建音频直播流媒体服务器

    前言 想使用树莓派连接usb音频采集卡实时采集收音机接收到的音频,树莓派上运行着由nginx+RTMP 搭建的直播流媒体服务器,这样就可以在客户端上通过支持rtmp串流协议的播放器就可以正常接收到音频 ...

  2. 【Android RTMP】RTMP 直播推流服务器搭建 ( Ubuntu 18.04.4 虚拟机 )

    文章目录 安卓直播推流专栏博客总结 一. Android RTMP 直播推流简介 二. Nginx.RTMP Module 编译环境源码准备 三. pcre.OpenSSL.zlib 函数库安装 四. ...

  3. 1.RTMP流媒体服务器搭建

    RTMP流媒体服务器搭建 目录 安装srs流媒体服务器 测试srs流媒体服务器 使⽤OBS推流 1. 安装srs流媒体服务器(参考:RTMP分发) srs官⽹:https://github.com/o ...

  4. linux vlc流媒体服务器,vlc media server rtsp 流媒体服务器搭建成功经验分享

    vlc 由videolan.org 出品,开源免费的一款本地和网络播放器,支持个音视频格式非常多,还可以用来搭建 rtsp 流媒体服务器,非常好用,支持的平台很多:windows.mac.linux都 ...

  5. ios(苹果)设备直播流媒体 服务搭建

    OS设备上要用原生的浏览器或者播放器来跑直播流媒体,确实是有点费周折,不过找对了软件和方法就相对容易许多.收集了一下关于iOS设备上搭建直播流媒体服务器的一些解决方案,如下: 1.凤雨小城,HLS 简 ...

  6. SRS流媒体服务器搭建流程-简单实用版

    #SRS流媒体服务器搭建流程-简单实用版 经过查阅很多博客,讲述的都不是很完善而且还把我搞的晕头转向,经过查阅20多篇文章特整理出简单的,SRS流媒体服务器搭建以及推流和拉流的一整套流程. #安装环境 ...

  7. nginx+nginx-rtmp-module的流媒体服务器搭建(记录)

    搭建nginx+nginx-rtmp-module的流媒体服务器 第一步: 下载 nginx 1.7.11.3 Gryphon.zip 版本nginx:(此版本不用编译 nginx-rtmp-modu ...

  8. 本地RTMP流媒体服务器搭建拉流简易版

    本地RTMP流媒体服务器搭建. 一.火力牛摄像头配置 ip 为服务器的ip 二.本地搭建rtmp服务器 https://blog.csdn.net/szydwy/article/details/786 ...

  9. 流媒体服务器搭建亲测有效(srs)

    流媒体服务器搭建流程 第一步 去官网下载srs的源码文件官网地址:[https://github.com/ossrs/srs#usage] 说明:建议下载4.0版本,3.0的需要flash的支持.目前 ...

最新文章

  1. python手机版怎么运行项目或脚本-python可以在手机上运行吗
  2. 计算机组装维护的概念,实用计算机组装与维护库及概念.doc
  3. python bytes()函数
  4. 利用深度学习方法进行情感分析以及在海航舆情云平台的实践
  5. Android进阶篇之引导页系列之ViewPager实现Animation动画引导页
  6. 大数据 就业 缺口_大数据人才缺口大!乌兰察布从政策激励等方面吸引人才
  7. Linux修改密码后不能SSH远程登录了
  8. ? SegmentFault Hackathon 文艺复兴上海站作品集 - 获奖篇
  9. 外部函数能修改闭包内的变量_Python函数式编程,Python闭包
  10. 截网页全屏图的方法-截网页全屏软件-Web2Pic Pro
  11. 乐华娱乐前训练生黄智博卖口罩诈骗案宣判:获刑三年三个月
  12. 2022年3月Python小屋编程比赛获奖名单
  13. Transfer-Encoding: chunked
  14. C语言在线词典项目—Linux
  15. php股票量化交易接口有什么优势?
  16. 【Android取证篇】三星手机开启开发者模式
  17. python爬虫影评_Python爬虫(二十)_动态爬取影评信息
  18. 字符叠加器 视频叠加器模块
  19. 阿里OCR-图像文字的识别和理解
  20. 开源~新款装机神器!启动 U盘 告别格式化,直接挂载多 ISO

热门文章

  1. 早安心语/2017-6-28
  2. mysql myisam和innodb区别_MySQL 万字精华总结 + 面试100 问,吊打面试官绰绰有余
  3. 8.opengl-矩阵总结(平移、缩放、旋转)
  4. 【Leetcode】 LCP 18. 早餐组合(简单)
  5. detour(detoured)
  6. LaTeX中的浮动体
  7. HDU - 2066 一个人的旅行 (floyd/dijkstra)
  8. VS2019 显示行号
  9. php 反斜杠详解_php关于反斜杠转义字符
  10. 基于PageObject模式设计的web自动化测试示例