博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
搭建nginx rtmp直播服务器,ffmpeg模拟推流
阅读量:4184 次
发布时间:2019-05-26

本文共 3268 字,大约阅读时间需要 10 分钟。

原文:http://cxuef.github.io/linux/%E3%80%90%E7%BD%AE%E9%A1%B6%E3%80%91%E6%90%AD%E5%BB%BAnginx-rtmp%E7%9B%B4%E6%92%AD%E6%9C%8D%E5%8A%A1%E5%99%A8%EF%BC%8Cffmpeg%E6%A8%A1%E6%8B%9F%E6%8E%A8%E6%B5%81/

Nginx本身是一个非常出色的HTTP服务器,FFMPEG是非常好的音视频解决方案。这两个东西通过一个nginx的模块nginx-rtmp-module,组合在一起即可以搭建一个功能相对比较完善并可支持RTMP和HLS的流媒体服务器。

nginx配合ffmpeg做流媒体服务器的原理是:nginx通过rtmp模块提供rtmp服务,ffmpeg推送一个rtmp流到nginx,然后客户端通过访问nginx来收看实时视频流。HLS也是差不多的原理,只是最终客户端是通过HTTP协议来访问的,但是ffmpeg推送流仍然是rtmp的。

好啦,现在开始进入主题吧~

1. 从github下载nginx-rtmp-module

eirot@ubuntu64:~/MyDev$ git clone 

2. 下载nginx压缩包并解压

3. 解压nginx-1.11.1.tar.gz并进入查看

eirot@ubuntu64:~/MyDev$ tar -xvf nginx-1.11.1.tar.gz

4. 配置nginx

eirot@ubuntu64:~/MyDev/nginx-1.11.1$ ./configure –prefix=/usr/local/nginx –add-module=/home/eirot/MyDev/nginx-rtmp-module –with-http_ssl_module –with-debug

【注意】如果安装失败,请检查系统是否有PCRE、OpenSSL、zlib 等library

5. 直接开始make nginx-rtmp-module

eirot@ubuntu64:~/MyDev/nginx-1.11.1$ make

6. 然而出错啦!好吧,修改/home/eirot/MyDev/nginx-rtmp-module/ngx_rtmp_core_module.c中的memcpy函数参数类型

7. 修改后再次make,没有报错得到*.o编译输出

eirot@ubuntu64:~/MyDev/nginx-1.11.1$ make

8. OK之后,执行make install

eirot@ubuntu64:~/MyDev/nginx-1.11.1$ sudo make install

9. 检查/usr/local/nginx/sbin/下是否有生成nginx

10. 修改nginx.conf,添加rtmp配置项(端口和服务名可以自己修改)

1       
2
3
4
5
6
7
8
9
10
11
12
13
14
15
rtmp {       
server {
listen 1935;
chunk_size 4096;
application myapp {
live on;
}
application hls {
live on;
hls on;
hls_path /tmp/hls;
}
}
}

别忘了执行sudo ./nginx -c nginx.conf使配置生效!

11. 启动nginx

eirot@ubuntu64:/usr/local/nginx/sbin$ sudo ./nginx

12. 检查端口是否占用

eirot@ubuntu64:/usr/local/nginx/sbin$ netstat -ntlp

13. 在浏览器输入localhost,看是否能成功进入nginx的欢迎页面

14. 用ffmpeg产生一个模拟直播源,向rtmp服务器推送

eirot@ubuntu64:~/MyDev/video$ ffmpeg -re -i test.flv -f flv rtmp://192.168.242.172/myapp/test1

eirot@ubuntu64:~/MyDev/video$ ffmpeg -re -i Caminandes.mp4 -vprofile baseline -vcodec copy -acodec copy -strict -2 -f flv rtmp://192.168.242.172/myapp/test2

15.使用ffplayer或者vlc播放rtmp流

eirot@ubuntu64:~/MyDev/video$ ffplay rtmp://192.168.242.172/myapp/test1

参考blog

转载地址:http://ynzoi.baihongyu.com/

你可能感兴趣的文章
Spring Data JPA |自定义非实体类的映射
查看>>
SpringBoot | 常用注解记录
查看>>
JavaBean对象转换EntityUtils工具类
查看>>
Maven常用命令
查看>>
SpringBoot | 运行报错,无法加载oracle连接驱动
查看>>
为什么阿里巴巴禁止在 foreach 循环里进行元素的 remove/add 操作
查看>>
AWS EC2如何从普通用户切换为root用户
查看>>
click方法不生效的
查看>>
mysql排行榜并列与不并列
查看>>
SpringBoot | Mybatis申明为Mapper文件
查看>>
JPA主键生成策略
查看>>
byte数组和InputStream的相互转换
查看>>
InputStream,InputStreamReader和Reader之间的区别与关系
查看>>
Java中System.arraycopy方法的使用
查看>>
tk.mybatis的使用记录
查看>>
遍历获取目录下的所有文件
查看>>
从指定服务器路径下载文件
查看>>
EasyExcel读取和写入java model数据
查看>>
《C编译原理》共享库的动态加载和静态加载
查看>>
《Android系统学习》第二章:如何制作OTA U盘升级包
查看>>