全网最新整理覆盖全平台电脑、手机的7个开源免费流媒体直播平台以及完整源码和文档

发布时间:2023年12月25日

全网最新整理覆盖全平台电脑、手机的7个开源免费流媒体直播平台以及完整源码和文档。

在这里插入图片描述

如今上到太空站、下到在家养猪,各行各业都在直播。直播之所以如此盛行,就是因为其能够给粉丝观众亲临现场的感受,以及直播过程中所附带着巨大的经济效益。这种方式可以为无法亲自到场的人表演、分享知识、与粉丝互动,在这个过程中人们对知识、商品等内容深入地了解,提升了分享者或者相关商品的知名度,产生了消费欲望。

从技术角度讲,直播是一种通过互联网实时播放视频和音频的方式。其核心正是流媒体服务器。流媒体服务器就是处理流媒体的服务器。直播过程需要使用流媒体服务器,一个完整的直播过程,包括采集、处理、编码、封包、推流、传输、转码、分发、解码、播放等过程,流媒体服务器主要负责采集,传输和播放等过程。

流媒体服务的传输方式有两种:顺序流传输和实时流传输。其中顺序流传输是在下载文件的同时用户可观看在线媒体。实时流传输是实时传送,特别适合用于直播。

主流的流媒体协议有:HLS、RTSP、RTMP、WebRTC等。HLS是Apple的动态码率自适应技术,主要用于PC和Apple终端的音视频服务。HLS 延迟大,适合视频点播;RTSP虽然实时性最好,但是实现起来比较复杂,适合视频聊天和视频监控;RTMP主要用于互联网音视频传输,它使用的是TCP传输,因为互联网环境相对较差,采用RTMP保证了视频的传输质量,但是其传输延迟相对较高,传输效率相对较低。WebRTC目前更多用在视频会议等场景,但各厂商也在逐渐向更广阔场景发力。

在这里插入图片描述


以下是一些开源免费的直播平台,可以作为流媒体系统或者直播平台私有化部署。

01 OwnCast
https://github.com/owncast/owncast

Owncast是一个开源直播视频流和聊天服务器,风格类似于大型主流选项。通常,Owncast与任何使用RTMP向远程服务器广播的软件兼容。OBS、Streamlabs、Restream等工具都与Owncast一起使用。后端是用Go编写的,前端是React写的。

Docker安装:

docker run -v pwd/data:/app/data -p 8080:8080 -p 1935:1935 -it owncast/owncast:latest

02 Ant Media Server

https://github.com/ant-media/Ant-Media-Server

Ant Media Server是一款实时流媒体引擎,通过WebRTC技术提供网络自适应的超低延迟流媒体服务,延迟约为0.5秒。Ant Media Server具备较高可扩展性,可以在本地服务器或云上运行。

功能特性:

超低延迟流:Ant Media Server基于WebRTC的流媒体技术提供超低延迟流媒体,非常适合游戏和实时通信等应用。

自适应比特率流:Ant Media Server支持自适应网络速度,这意味着它可以根据观众的连接速度自动调整流的质量。

多协议支持:Ant Media Server支持一系列流媒体协议,包括RTMP、HLS和WebRTC,使其与各种设备和平台兼容。

点播流媒体:除了流媒体直播,Ant Media Server还支持点播流媒体,允许观众在自己方便的时候观看预先录制的内容。

03 Monibuca
https://github.com/langhuihui/monibuca

Monibuca是一个用Go编写的开源流媒体服务开发框架。它没有任何外部依赖,并支持任何流协议。该框架由引擎、插件和实例项目三部分组成。引擎提供了一个通用的流数据缓存和转发机制;而插件提供了可以无限扩展的附加功能;实例项目使用了引擎和插件,并且可以根据需求进行自定义扩展。

功能特性:

引擎方面
提供插件机制,对插件的启动,配置解析,事件派发等进行统一管理

提供H264、H265、AAC、G711格式的转发

提供可复用的AVCC格式、RTP格式、AnnexB格式、ADTS格式等预封装机制

提供多Track机制,支持大小流,加密流扩展

提供DataTrack机制,可用于实现房间文字聊天等功能

提供时间戳同步机制,限速机制

提供RTP包乱序重排机制

提供订阅者追帧跳帧机制(首屏秒开)

提供发布订阅对外推拉的基础架构

提供鉴权机制的底层架构支持

提供内存复用机制

提供发布者断线重连机制

提供按需拉流机制

提供HTTP服务端口

提供HTTP API接口自动注册机制

提供HTTP接口中间件机制

提供结构化日志

提供流信息统计和输出

提供事件总线机制,可以对所有插件广播事件

提供配置热更新机制

插件方面
提供RTMP协议的推拉流,对外推拉流(支持RTMPS)

提供RTSP协议的推拉流,对外推拉流

提供HTTP-FLV协议的拉流,对外拉流,读取本地FLV文件

提供WebSocket协议的拉流

提供HLS协议的拉流,对外拉流

提供WebRTC协议的推拉流

提供GB28181协议的推流,提供dump回放分析能力

提供Onif协议的支持

提供WebTransport协议的拉流

提供fmp4协议的拉流

提供边缘服务器功能,实现级联拉流

提供录像功能,支持flv、mp4、hls、raw格式

提供日志持久化功能,支持按天、按小时、按分钟、按秒、按大小、按文件数等多种方式

提供截屏功能

提供HTTP回调功能

提供预览功能(集成Jessibuca Pro)

提供房间功能(可实现视频会议)

提供对接Prometheus的功能

远程控制台
提供多实例管理功能

提供流媒体详情

提供配置可视化编辑

提供日志可视化显示

提供插件可视化管理

提供GB设备管理

提供动态添加远程推拉流界面

提供WebRTC背景墙功能

提供多人视频演示

docker安装:

docker run -id -p 1935:1935 -p 8080:8080 -p 8443:8443 -p 554:554 -p 58200:58200 -p 5060:5060/udp -p 8000:8000/udp -p 9000:9000 langhuihui/monibuca:latest

04 SRS

https://github.com/ossrs/srs

SRS视频服务器是一款可靠、高效的工具,可用于实时传输高质量视频内容。它支持RTMP、WebRTC、HLS、HTTP-FLV、SRT、MPEG-DASH和GB 28181等多种协议,为跨各种平台和跨设备的流媒体视频内容提供了全面的解决方案。SRS在设计时考虑到了简单性和效率,使其非常易于使用且高效。

其实时功能可确保视频内容以最小的延迟进行流式传输,为观众提供无缝体验。此外,SRS内置了高质量和高级功能,使用户能够优化其视频流体验。它支持多种协议,确保用户根据自己的需求和偏好有广泛的选择。总的来说,SRS是任何希望实时传输高质量视频内容的人的优秀工具,其多功能性和可靠性使其成为视频流媒体行业的杰出解决方案。

使用方式

docker安装/运行:

docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080
-p 8000:8000/udp -p 10080:10080/udp ossrs/srs:5
使用ffmpeg推流:

ffmpeg -re -i ./doc/source.flv -c copy -f flv -y rtmp://localhost/live/livestream
使用VLC Player 播放:

RTMP:rtmp://localhost/live/livestream
http-flv : http://localhost:8080/live/livestream.flv
HLS:http://localhost:8080/live/livestream.m3u8.

05 LiveGo

https://github.com/gwuhaolin/livego

LiveGo是一款高效且友好的直播服务器,旨在满足现代直播的需求。它基于纯Golang框架,兼容各种平台,易于使用。

该服务器支持RTMP、AMF、HLS、HTTP-FLV、FLV、TS、H264、AAC和MP3等常用传输协议,是寻求通用性和灵活性的用户的理想选择。此外,LiveGo的先进编码格式确保您的广播具有高质量,并且没有任何延迟。

LiveGo还为用户提供各种工具和资源,以增强直播体验。例如,可以通过添加覆盖层、徽标和其他视觉元素来自定义广播。此外,服务器提供了一系列的分析工具,使您能够跟踪您的观众参与和其他重要指标.

总的来说,LiveGo是一个特殊的直播服务器,旨在满足现代流媒体的需求。凭借其令人印象深刻的功能,用户友好的界面和高性能的功能,它是任何寻找可靠和高效的直播解决方案的人的理想选择。

docker启动方式:

docker run -p 1935:1935 -p 7001:7001 -p 7002:7002 -p 8090:8090 -d gwuhaolin/livego
使用方式:

(1)访问 http://localhost:8090/control/get?room=movie

获取一个房间的 channelkey(channelkey用于推流,movie用于播放)。

(2)推流

通过RTMP协议推送视频流到地址

rtmp://localhost:1935/{appname}/{channelkey} (appname默认是live),

例如:

ffmpeg -re -i demo.flv -c copy -f flv rtmp://localhost:1935/{appname}/{channelkey}
(3)播放

支持多种播放协议,播放地址如下:

RTMP:rtmp://localhost:1935/{appname}/movie

FLV:http://127.0.0.1:7001/{appname}/movie.flv

HLS:http://127.0.0.1:7002/{appname}/movie.m3u8

06 pingos

https://github.com/pingostack/pingos

PingOS依赖NGINX构建,并且继承arut和AlexWoo的nginx-rtmp-module模块。修复arut和AlexWoo版本存在的部分问题外,PingOS在编码和直播协议以及其他方面做了多项功能扩展。

功能特性:

直播协议:RTMP、HTTP(S)-FLV、HTTP(S)-TS、HLS(支持HTTPS)、HLS+(支持HTTPS)、DASH(支持HTTPS)。

音视频编码:H264、H265、MP3、AAC。

直播录像:FLV文件格式和TS文件格式。

GOP缓存: 实现秒开和内存复用。

application支持通配符: “ * ”号通配符实现自动匹配推拉流时使用的application名字,无需累赘的配置。

VHOST功能: 支持配置多个server域名。

控制台接口: 通过HTTP API接口控制推流、拉流以及录像过程。

配置动态加载: 修改配置文件后无需对nginx做任何操作就可读取最新配置。

流量计费: 通过配置自定义流量日志。

变量参数配置: 配置文件中使用变量。

进程间拉流: 进程间相互拉流,解决了原生nginx-rtmp-module模块多进程拉流失败的问题。

集群化功能: 服务器间推拉流功能(http-flv、rtmp协议)。

html5网页播放器:pingos-player播放器将持续兼容各浏览器平台,以及多种直播协议。

Docker安装部署:

# 添加可执行权限
chmod +x run.sh
# 编译镜像, 可选操作(./run.sh up -d时若镜像不存在则自动编译)
./run.sh build
# 默认以同目录docker-compose.yml文件作为配置文件启动容器
# 使用docker/compose容器启动容器
./run.sh up -d
# 或
docker-compose up -d

推流地址:rtmp://ip/live/流名

播放地址:

rtmp 播放:rtmp://ip/live/流名

http(s)-flv 播放:http(s)😕/ip/flv/流名

hls 播放:http(s)😕/ip/hls/流名.m3u8

hls+ 播放:http(s)😕/ip/hls2/流名.m3u8

http(s)-ts 播放:http(s)😕/ip/ts/流名
直播流监控后台:
访问地址:http://ip/rtmp_stat 。通过该页面可以查看当前正在执行的推流和播放记录。
html5播放器:
访问地址:http://ip/h5player/flv 这个播放器是基于flv.js的网页播放器,可以实现无插件播放http-flv直播流。 一旦你能够访问这个页面,说明你的直播服务器已经成功搭建起来了。

07 LiveKit
https://github.com/livekit/livekit

LiveKit是一个可用于提供WebRTC多用户会议服务的开源项目。该项目旨在帮助开发人员实现实时视频音频功能。

通过利用LiveKit的强大功能,开发人员可以创建无缝、可扩展、可靠的会议解决方案,例如在线教育平台、商业通信工具等等。LiveKit能够处理多个用户并提供高质量的会议体验,是应用程序开发的视频音频功能首选。

功能特征:

可扩展的分布式WebRTC SFU(选择性转发单元)

现代、功能齐全的客户端SDK

专为生产环境而构建,支持JWT身份验证

强大的网络和连接,UDP/TCP/TURN

易于部署:单个二进制文件、Docker或Kubernetes

高级功能包括:说话人检测、联播、端到端优化、开发人员友好的API、webhooks、分布式多区域。

提供多个客户端,包括JavaScript、Swift UI、Flutter、React Native、科特林、Rust和Unity WebGL。

丰富的生态系统

MacOS安装:
brew install livekit
Linux安装:

curl -sSL https://get.livekit.io/cli | bash
windows安装下载地址:

https://github.com/livekit/livekit-cli/releases/latest

文章来源:https://blog.csdn.net/u014374009/article/details/135203448
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。