Why
路由器是离用户最近的一个服务器,如果能推流到路由器(192.168.1.1)会怎样?
•高带宽推流:提高传输带宽,数据通过多网卡传输到服务器。目前有些聚合路由器已经实现,还没有开源的方案。请关注 #2637[1]•直播推流不卡:提高抗抖动能力,路由器同时拷贝到不同服务器。和聚合路由器不同,路由器会拷贝成多路流发送到服务器。请关注 #2637[2]•企业媒体网关,降低企业网络出口压力。如果播放的是同一路流,那么路由器可以只从CDN取一路流,拷贝多份流给不同的播放器。
Note: 高带宽推流,目前有聚合路由器方案,不过目前貌似没有开源方案,另外无法做多流冗余热备。
SRS已经支持了OpenWRT/MIPS[3],可以将路由器变成一个媒体服务器,可以直接推流到路由器,从路由器上播放流。
How
SRS可以在OpenWRT中运行,参考Build package srs-server[4]。
ST(state-threads)支持MIPS,参考#21[5]。
启动SRS服务器:
代码语言:javascript复制/usr/bin/srs-server -c /etc/srs/conf/openwrt.conf
推流到SRS:
代码语言:javascript复制ffmpeg -re -i doc/source.flv -c copy -f flv rtmp://192.168.1.1/live/livestream
观看HTTP-FLV:http://192.168.1.1:8080/live/livestream.flv[6]
Next
聚合路由器是物理层方案,走不同网卡,在服务器聚合,然后转发到服务器。这个方案可以同时用多张网卡,会比单张网卡效果更好。
基于SRS的聚合路由器方案,是应用层的传输,比物理层更可控一些。
详细对比,请关注 #2637[7]。
References
[1]
#2637: https://github.com/ossrs/srs/issues/2637
[2]
#2637: https://github.com/ossrs/srs/issues/2637
[3]
OpenWRT/MIPS: https://openwrt.org
[4]
Build package srs-server: https://github.com/winlinvip/openwrt-docker#build-package-srs-server
[5]
#21: https://github.com/ossrs/state-threads/issues/21
[6]
http://192.168.1.1:8080/live/livestream.flv: http://ossrs.net/trunk/research/players/srs_player.html?autostart=true&app=live&stream=livestream.flv&server=192.168.1.1&port=8080&vhost=192.168.1.1&schema=http
[7]
#2637: https://github.com/ossrs/srs/issues/2637