NDK 直播流媒体服务器搭建
该文章首发于微信公众号“字节流动”。
本博客 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 直播流媒体服务器搭建相关推荐
- 树莓派使用nginx+rtmp搭建音频直播流媒体服务器
前言 想使用树莓派连接usb音频采集卡实时采集收音机接收到的音频,树莓派上运行着由nginx+RTMP 搭建的直播流媒体服务器,这样就可以在客户端上通过支持rtmp串流协议的播放器就可以正常接收到音频 ...
- 【Android RTMP】RTMP 直播推流服务器搭建 ( Ubuntu 18.04.4 虚拟机 )
文章目录 安卓直播推流专栏博客总结 一. Android RTMP 直播推流简介 二. Nginx.RTMP Module 编译环境源码准备 三. pcre.OpenSSL.zlib 函数库安装 四. ...
- 1.RTMP流媒体服务器搭建
RTMP流媒体服务器搭建 目录 安装srs流媒体服务器 测试srs流媒体服务器 使⽤OBS推流 1. 安装srs流媒体服务器(参考:RTMP分发) srs官⽹:https://github.com/o ...
- linux vlc流媒体服务器,vlc media server rtsp 流媒体服务器搭建成功经验分享
vlc 由videolan.org 出品,开源免费的一款本地和网络播放器,支持个音视频格式非常多,还可以用来搭建 rtsp 流媒体服务器,非常好用,支持的平台很多:windows.mac.linux都 ...
- ios(苹果)设备直播流媒体 服务搭建
OS设备上要用原生的浏览器或者播放器来跑直播流媒体,确实是有点费周折,不过找对了软件和方法就相对容易许多.收集了一下关于iOS设备上搭建直播流媒体服务器的一些解决方案,如下: 1.凤雨小城,HLS 简 ...
- SRS流媒体服务器搭建流程-简单实用版
#SRS流媒体服务器搭建流程-简单实用版 经过查阅很多博客,讲述的都不是很完善而且还把我搞的晕头转向,经过查阅20多篇文章特整理出简单的,SRS流媒体服务器搭建以及推流和拉流的一整套流程. #安装环境 ...
- nginx+nginx-rtmp-module的流媒体服务器搭建(记录)
搭建nginx+nginx-rtmp-module的流媒体服务器 第一步: 下载 nginx 1.7.11.3 Gryphon.zip 版本nginx:(此版本不用编译 nginx-rtmp-modu ...
- 本地RTMP流媒体服务器搭建拉流简易版
本地RTMP流媒体服务器搭建. 一.火力牛摄像头配置 ip 为服务器的ip 二.本地搭建rtmp服务器 https://blog.csdn.net/szydwy/article/details/786 ...
- 流媒体服务器搭建亲测有效(srs)
流媒体服务器搭建流程 第一步 去官网下载srs的源码文件官网地址:[https://github.com/ossrs/srs#usage] 说明:建议下载4.0版本,3.0的需要flash的支持.目前 ...
最新文章
- python手机版怎么运行项目或脚本-python可以在手机上运行吗
- 计算机组装维护的概念,实用计算机组装与维护库及概念.doc
- python bytes()函数
- 利用深度学习方法进行情感分析以及在海航舆情云平台的实践
- Android进阶篇之引导页系列之ViewPager实现Animation动画引导页
- 大数据 就业 缺口_大数据人才缺口大!乌兰察布从政策激励等方面吸引人才
- Linux修改密码后不能SSH远程登录了
- ? SegmentFault Hackathon 文艺复兴上海站作品集 - 获奖篇
- 外部函数能修改闭包内的变量_Python函数式编程,Python闭包
- 截网页全屏图的方法-截网页全屏软件-Web2Pic Pro
- 乐华娱乐前训练生黄智博卖口罩诈骗案宣判:获刑三年三个月
- 2022年3月Python小屋编程比赛获奖名单
- Transfer-Encoding: chunked
- C语言在线词典项目—Linux
- php股票量化交易接口有什么优势?
- 【Android取证篇】三星手机开启开发者模式
- python爬虫影评_Python爬虫(二十)_动态爬取影评信息
- 字符叠加器 视频叠加器模块
- 阿里OCR-图像文字的识别和理解
- 开源~新款装机神器!启动 U盘 告别格式化,直接挂载多 ISO
热门文章
- 早安心语/2017-6-28
- mysql myisam和innodb区别_MySQL 万字精华总结 + 面试100 问,吊打面试官绰绰有余
- 8.opengl-矩阵总结(平移、缩放、旋转)
- 【Leetcode】 LCP 18. 早餐组合(简单)
- detour(detoured)
- LaTeX中的浮动体
- HDU - 2066 一个人的旅行 (floyd/dijkstra)
- VS2019 显示行号
- php 反斜杠详解_php关于反斜杠转义字符
- 基于PageObject模式设计的web自动化测试示例