nginx搭建rtmp协议流媒体服务器
来源:互联网 发布:用友软件操作流程 编辑:程序博客网 时间:2024/06/06 21:41
前几篇是利用ffmpeg实现录屏数据的推流和流媒体的播放,但一个前提是要搭建流媒体服务器。
开源的而流媒体服务器很多,本人初次使用,搭建了几款可以实现点播,但无法实现多路直播;后来用nginx搭建,发现效果、功能都不错,重点是搭建十分简单。
以下都是抄的:
Nginx本身是一个非常出色的HTTP服务器,FFMPEG是非常好的音视频解决方案.这两个东西通过一个nginx的模块nginx-rtmp-module,组合在一起即可以搭建一个功能相对比较完善的流媒体服务器.
虽然我不用HLS,但是有必要了解一下:
HTTP Live Streaming(HLS)是苹果公司(Apple Inc.)实现的基于HTTP的流媒体传输协议,可实现流媒体的直播和点播,相对于常见的流媒体直播协议,例如RTMP协议、RTSP协议、MMS协议等,HLS直播最大的不同在于,直播客户端获取到的,并不是一个完整的数据流。HLS协议在服务器端将直播数据流存储为连续的、很短时长的媒体文件(MPEG-TS格式),而客户端则不断的下载并播放这些小文件,因为服务器端总是会将最新的直播数据生成新的小文件,这样客户端只要不停的按顺序播放从服务器获取到的文件,就实现了直播。由此可见,基本上可以认为,HLS是以点播的技术方式来实现直播。由于数据通过HTTP协议传输,所以完全不用考虑防火墙或者代理的问题,而且分段文件的时长很短,客户端可以很快的选择和切换码率,以适应不同带宽条件下的播放。不过HLS的这种技术特点,决定了它的延迟一般总是会高于普通的流媒体直播协议。
即:hls实质还是点播,他把完整的流媒体做了ts切片,客户端下载这些小切片是很快的,然后不断下载不断播放,这就是所谓的伪直播。
开始搭建Nginx
一、从github下载nginx-rtmp-module-master并解压,如我解压在/works/nginx-rtmp-module-master/
二、从github或官网下载nginx-1.10.2(用最新版本即可),configure的时候需要增加nginx-rtmp-module的支持(--add-module)
./configure ----add-module=/works/nginx-rtmp-module-master 如需其他模块可自行安装比如zlib ssl我之前已经安装,我在fedora22上直接编译通过
make&make install 之后,会在/usr/local/下生产nginx目录
三、配置nginx.conf,主要是增加rtmp的配 置
进入/usr/local/nginx下
vi conf/ngnix.conf
增加rtmp的支持:
1
2 #user nobody;
3 worker_processes 10;
4
5 #error_log logs/error.log;
6 #error_log logs/error.log notice;
7 #error_log logs/error.log info;
8
9 #pid logs/nginx.pid;
10
11
12 events {
13 worker_connections 1024;
14 }
15
16 rtmp_auto_push on;
17 rtmp_auto_push_reconnect 1s;
18
19 rtmp {
20 server
21 {
22 listen 8811;
23 application myapp
24 {
25 live on;
26 }
27 access_log logs/rtmp_access.log;
28
29 }
30 }
31
32
33 http {............
即是增加对rtmp的支持,另外可增加对hls的支持;
四、运行及重启nginx
运行 /usr/local/nginx/sbin/nginx
重启/usr/local/nginx/sbin/ngixn -s reload
五:测试
ffmpeg命令推流:./ffmpeg -re -i /root/test.flv -vcodec copy -f flv "rtmp://127.0.0.1:8811/myapp/test1"
-re是按时间排序进行推流,不加此参数ffmpeg会一次性进行推流,流媒体服务器无法承受
-f flv指定推流格式
客户端播放:用ffplay:
ffpaly rtmp://192.168.80.31:8811/myapp/test1 进行播放,也可以用vlc播放器进行播放。
- nginx搭建rtmp协议流媒体服务器总结
- nginx搭建rtmp协议流媒体服务器总结
- nginx搭建rtmp协议流媒体服务器总结
- nginx搭建rtmp协议流媒体服务器总结
- nginx搭建rtmp协议流媒体服务器总结
- nginx搭建rtmp协议流媒体服务器总结
- nginx搭建rtmp协议流媒体服务器
- Nginx搭建rtmp流媒体服务器
- nginx + rtmp 搭建流媒体服务器
- nginx 搭建rtmp流媒体服务器
- nginx+RTMP搭建流媒体服务器
- 利用nginx搭建http和rtmp协议的流媒体服务器
- 利用Nginx搭建http和rtmp协议的流媒体服务器
- 利用nginx搭建http和rtmp协议的流媒体服务器
- 利用nginx搭建http和rtmp协议的流媒体服务器
- 利用nginx搭建http和rtmp协议的流媒体服务器
- 利用nginx搭建http和rtmp协议的流媒体服务器
- (Linux上)nginx搭建rtmp协议流媒体服务器
- C#中内存流MemoryStream至FTP网络流Stream的无缝传输
- Play2.5 scala 学习记录
- 【算法初级】排序 - “Bubble Sort”优化
- 消息摘要算法简介
- Java: Map里面的键和值可以为空吗?
- nginx搭建rtmp协议流媒体服务器
- studio 快捷建
- adb查看安卓手机日志
- C++中引用(&)的用法和应用实例
- 有关GetMemory()问题的思考
- HDU 2767 Proving Equivalences(待完善)
- LeetCode 141. Linked List Cycle
- Uva400 Unix ls 【排序+技巧】【例5-8】
- kafka简介、使用场景、设计原理、主要配置及集群搭建