最近想做一个简单的视频直播系统,场景为本地视频推流,采集摄像头、桌面或视频的输入,传输到远端手机上或网页上进行播放。
但有一个要求是本地有可能有两台以上的设备,若显示的视频时延很大,不可行。
基于此需求进行调研。
系统的核心是推流和视频流的转发。
推流这端,是大家忽略的软件,在调研的过程中,主要推荐都是OBS。easyPusher推流软件也是常见的推荐,但这不是开源的软件,若要使用,涉及费用的问题,因此跳过。
其他的软件如live555,是拉流模式,不符合使用的场景。
再有一些软件,没有开发完成,典型的如枚举设备,采集桌面这些操作都没有实现。
因此在推流这端,参考了众多方案之后,决定采用ffmpeg自行开发推流软件,首期实现功能包括枚举设备及将视频流推到远端,采用rtmp推流,后续在此基础上迭代开发。
在视频转发这端,可选项实际上比较多,最后选择了开源的SRS软件,这符合我们的需求。