今日(きょう)(さわ)がしく(たわむ)れ生きる人々の漫画映画(まんがえいが)

直播服务器搭建笔记

有同学在搭直播服务器,我也顺便稍微试了一下。大概比较容易搭建的是 RTMP 推流,然后在服务器分发 RTMP 流或者转换为 HTTP-FLVHLS 流。网络上基本认为,服务器分发的流的延迟大小大概是:RTMP < HTTP-FLV < HLS。 服务器端软件我了解到的有两个: * SRS * nginx-http-flv-module

SRS 搭建

SRS现在主要用法就是 RTMP 推流,然后根据不同配置可以实现 RTMPHTTP-FLV 或者 HLS 的分发。似乎在 SRS 4.0 里(当前版本是 3.0 )可以实现 WebRTC 的推流以及分发,感兴趣的也可以去试一下。

非Ubuntu/CentOS系统下的编译

编译流程在官方文档里有说:https://github.com/ossrs/srs/blob/3.0release/README.md 但是在 ./configure && make 这一步可能需要加点参数修改一下,比如(未测试): ./configure --cubie --use-sys-ssl && make CPPFLAGS='-fpermissive' 我个人是直接修改 objs/Makefile,修改 CXXFLAGS = -ansi -Wall -g -O0 这一行,变成 CXXFLAGS = -ansi -Wall -g -O0 -fpermissive,命令用的是 用的是 ./configure --cubie --with-ssl --use-sys-ssl && make -j 4。 之后和官方步骤一致。

OBS 推流

OBS Stream Setting

因为我不了解直播,所以不明白 OBS 设置里的术语。总而言之,如图上的配置: * Service: Custom… * Server: rtmp://127.0.0.1:1935/live * Stream Key: livestream 最后的 RTMP 播放地址为:rtmp://127.0.0.1:1935/live/livestreamHTTP-FLV 地址为 http://127.0.0.1:8080/live/livestream.flv但是不能OBS 设置里不填 Stream Key 而把 Server 填成 rtmp://127.0.0.1:1935/live/livestream

低延时配置

如果测试的延迟比较高,可以尝试用 v2_CN_SampleRealtime 里的配置优化一下延迟(也即 conf/realtime.conf 文件里的配置)。 我在自己电脑上跑的时候大概 RTMP -> RTMP 延迟 2s,RTMP -> HTTP-FLV 延迟 5s。

WebRTC 服务器

WebRTC 的延迟一般认为是很低的。但是之前找的时候易搭建的解决方案挺少的。了解到大概有 Janus 以及上面提到的 SRS

评论