nginx搭建rtmp协议流媒体服务器

论坛 期权论坛 脚本     
匿名网站用户   2020-12-21 09:07   64   0

前几篇是利用ffmpeg实现录屏数据的推流和流媒体的播放,但一个前提是要搭建流媒体服务器。

开源的而流媒体服务器很多,本人初次使用,搭建了几款可以实现点播,但无法实现多路直播;后来用nginx搭建,发现效果、功能都不错,重点是搭建十分简单。

以下都是抄的:

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

这个流媒体服务器可以支持RTMPHLS(Live Http Stream)。

虽然我不用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播放器进行播放。








分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1136255
帖子:227251
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP