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

微赞直播1年前 (2023-12-04)相关文章218

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

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

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

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

2b615528516f91ff32b13045316b1416.png

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


01
OwnCast


https://github.com/owncast/owncast

d9fcbd4a571f4785f410f05b108d6f89.png

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

a6645c125fe0a95d4d06488a613143ac.jpg

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

2580a34b22090d787efba17cf5fd4fd8.png

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在设计时考虑到了简单性和效率,使其非常易于使用且高效。


3f1d94bea6d412f1302a535869e6adc1.png


其实时功能可确保视频内容以最小的延迟进行流式传输,为观众提供无缝体验。此外,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

ae92ea54a47fb641d006a466567e9c42.png


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

d6aca71006c9c74eb3f641cbea99ecd3.png

4c1e523d9538c918f66c80a1f1fd03d6.png

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

3c0356afe745edbdfbcf2bc84cbe9d30.png

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


相关文章

科普:一场直播到底涉及哪些流量,怎么计算

科普:一场直播到底涉及哪些流量,怎么计算

流量的算法COMPUTING METHOD经常会有客户问,直播1个小时我要消耗多少4G流量?我一张64G或者128G的TF卡可以录多久?问的人多了,我觉得有必要给大家科普一下。直播典型的拓扑图如上图所...

线上年会直播SOP

线上年会直播SOP

全流程策划清单,一张图搞定云年会...

企业为什么要自己搭建直播平台?

企业为什么要自己搭建直播平台?

随着直播在各大平台的相继应用,不少企业也开始通过直播来做品牌推广、销售。如今直播已经成为大部分企业的标配,企业想要开展线上市场,企业直播或许是一个便捷有效的途径。那么企业做直播的目的是什么呢?11、品...

法拉利拖欠合作费用?摄影师直接将活动云相册“暂停展示”

法拉利拖欠合作费用?摄影师直接将活动云相册“暂停展示”

摄影师把“不高兴”写在了车主脸上。大写的尴尬,车主参加法拉利的品牌活动,做梦也没想到,在现场被拍的个人照片居然被摄影师拿去维权,打上了“拖欠摄影师费用暂停展示”11个大字的水印。这起维权事件发生在昨晚...

微赞直播平台怎么样?微赞直播平台费用价格多少?产品介绍来了!

微赞直播平台怎么样?微赞直播平台费用价格多少?产品介绍来了!

本公众号是SaaS点评网新推出的自媒体品牌,专注服务私域运营行业,帮助中国企业找到好工具,本篇将为大家介绍微赞直播软件~本篇为微赞直播的详细介绍,主要有以下7个部分:1、什么是微赞直播?2、微赞直播系...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。