nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器
来源:互联网 发布:淘宝刷到单软件免费吗 编辑:程序博客网 时间:2024/05/23 22:27
Nginx本身是一个非常出色的HTTP服务器,FFMPEG是非常好的音视频解决方案.这两个东西通过一个nginx的模块nginx-rtmp-module,组合在一起即可以搭建一个功能相对比较完善的流媒体服务器.
这个流媒体服务器可以支持RTMP和HLS(Live Http Stream)
从安装开始
Nginx的安装参照我之前的这个: http://blog.csdn.net/redstarofsleep/article/details/45092127
不同的是在configure的时候需要增加nginx-rtmp-module的支持,下载好nginx-rtmp-module后解压,然后nginx安装时增加这个模块(--add-module),其它都是一样的.
FFMPEG的安装参照上一篇: http://blog.csdn.net/redstarofsleep/article/details/45092145
nginx配合ffmpeg做流媒体服务器的原理是: nginx通过rtmp模块提供rtmp服务, ffmpeg推送一个rtmp流到nginx, 然后客户端通过访问nginx来收看实时视频流. HLS也是差不多的原理,只是最终客户端是通过HTTP协议来访问的,但是ffmpeg推送流仍然是rtmp的.
安装完成后,打开Nginx的配置文件nginx.conf进行配置
首先在里面加入rtmp的配置
然后,针对hls,还需要在http里面增加一个location配置
这是一个最简单,最基础的配置, rtmp监听1935端口,如果是hls的话用hls on开启hls,并且为hls设置一个临时文件目录hls_path /tmp/hls; 其它更高级的配置可以参看nginx-rtmp-module的readme,里面有比较详细的介绍其它的配置,并且它还提供了一个通过JWPlayer在网页上播放的例子.
保存完配置文件后,启动nginx,通过netstat -ltn命令可以看到增加了一个1935端口的监听.8080是nginx默认的http监听端口.
然后用ffmpeg推流到nginx:
第一个是推到了上面配置的myapp上:
第二个推送到hls上:
现在我们的流媒体服务器有两个实时流了,一个是rtmp的,另一个是hls的,用流媒体播放器播放一下,流媒体播放器可以用vlc也可以用ffmpeg带的ffplay.手机也是可以播放的.
上面这两个流的地址分别是:
第一个就是推送的地址: rtmp://serverIp:1935/myapp/test1
第二个是HTTP地址: http://serverIp:8080/hls/test2.m3u8
- nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器
- nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器
- nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器
- 使用nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器
- nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器
- nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器
- nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器
- nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器
- nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器
- nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器
- nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器
- nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器【转】
- nginx-rtmp-module和ffmpeg搭建流媒体服务器
- 使用nginx与nginx-rtmp-module搭建 rtmp 流媒体服务器
- 基于nginx和nginx-rtmp-module搭建rtmp流媒体服务器
- 使用nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器笔记(一)
- 使用nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器笔记(二)
- 使用nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器笔记(三)
- CSS动画
- Java 遍历HashMap并修改(remove)
- php函数method_exists()与is_callable()的区别
- 从VB来看-QuickSort(VB快速排序)
- Activemq学习
- nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器
- 欢迎使用CSDN-markdown编辑器
- 面试准备
- 正值表达式
- OpenCV学习笔记(五十六)——InputArray和OutputArray的那些事core
- 设计模式总结之Flyweight Pattern(享元模式)
- oracle历史jdk版本下载地址
- TabHost的布局
- PHP自定义函数: 下载远程文件