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

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

时间:2024-01-02 13:38:07浏览次数:44  
标签:功能 流媒体 http 提供 平台 flv 直播 源码


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

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

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

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

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

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

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


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

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)

标签:功能,流媒体,http,提供,平台,flv,直播,源码
From: https://blog.51cto.com/u_12763213/9068230

相关文章

  • Xcode 15 beta 7 (15A5229h) - Apple 平台 IDE
    Xcode15beta7(15A5229h)-Apple平台IDEIDEforiOS/iPadOS/macOS/watchOS/tvOS/visonOS作者主页:sysin.orgvisonOS支持已更新。Xcode15使您能够为所有Apple平台开发、测试和分发应用程序。通过增强的代码完成、交互式预览和实时动画,更快地编写和设计您的应用程序。使用......
  • netty源码:(38)ByteToMessageDecoder类
    ByteToMessageDecoder是一个解码器,是一个ChannelInboundHandlerAdapter,它用来将ByteBuf中的字节流解析成另外的消息格式。它的核心方法是decode,decode方法的in参数表示接收字节的来源,out参数表示节码之后输出的目的地。比如,StringDecoder继承了ByteToMessageDecoder,它的decod......
  • netty源码:(40)ReplayingDecoder
    ReplayingDecoder是ByteToMessageDecoder的子类,我们继承这个类时,也要实现decode方法,示例如下:packagecn.edu.tju;importio.netty.buffer.ByteBuf;importio.netty.channel.ChannelHandlerContext;importio.netty.handler.codec.ReplayingDecoder;importjava.nio.charset.C......
  • 什么是流媒体
    所谓的流媒体是指将一连串的媒体数据压缩后,经过网络分段发送数据,在网上即时传输音视频以供观赏的一种技术。如果没有流媒体技术,那么在观赏前必须下载整个媒体文件。常见流媒体协议:RTSPRTPHTTPHLSRTMPHTTP-FLV等目前应用流媒体技术就多的场景就是直播场景。完整的直播系统包括以下这......
  • 记录 | ubuntu源码编译python3.7.3(指定版本)
    一、安装依赖包sudoapt-getinstall-ymakebuild-essentiallibssl-devzlib1g-devsudoapt-getinstall-ylibbz2-devlibreadline-devlibsqlite3-devwgetcurlllvmsudoapt-getinstall-ylibncurses5-devlibncursesw5-devxz-utilstk-dev二、从Python网页中找......
  • Python 爬虫,eccoid 网站作品信息采集爬虫源码!
    一个比较简单的爬虫,适合练手学习使用,主要是爬取和采集网站的作品信息,包括标题、内容及图片,其中图片采用了多线程爬取,算是比较简单的参考和学习案例,协议头的获取也做了随机处理,如果你正在找练手网站,不妨尝试爬取下载数据。考虑到外网爬取,存在访问超时以及出错的情况发生,所以采用了三......
  • Bmwgroupdesignworks爬虫,网站作品信息多线程采集爬虫源码!
    一个比较简单国外设计站点,作品信息采集爬虫源码,比较简单,采集的内容包括标题、内容及图片信息,适合新人学习参考使用。网站作品信息采集中,关于图片的采集下载使用了重试以及多线程的方式爬取采集下载,适合Python爬虫新人练手使用和学习,如果你正在找练手网站,不妨尝试爬取下载数据。三......
  • 【练习】爬虫-基础2 - GlidedSky 源码参考!
    前面本渣渣分享过爬虫-基础1-GlidedSky,这篇就来分享爬虫-基础2,希望对你有帮助吧,当然仅记录分享,为了更有帮助,这里升级了一下爬虫难度,采用了多线程。本身相对于基础1,基础2提升了一下难度,从单页爬取提升到分页爬取,分成了1000个页面,需要请求一千次,而网页结构没有变化,很典型的Boo......
  • 【JS逆向】某建筑市场监督管理平台企业数据加密逆向分析探索!
    一个很典型的加密数据反爬网站,目的就是反爬,不让你拿到企业相关数据,有着很典型的特征,在查找数据的时候看不到任何内容数据,都是加密的内容数据。网站网页返回数据信息内容,很典型的加密数据内容:网址:aHR0cHM6Ly9qenNjLm1vaHVyZC5nb3YuY24vZGF0YS9jb21wYW55分析网页接口数据信息2.通过翻......
  • 轻松转换,一键搞定:JVS低代码平台的日期格式转换功能详解!
    日期和时间在我们的日常生活中起着至关重要的作用,无论是计划日程、管理项目还是执行其他任务,都需要精确的时间信息。在JVS低代码平台上,日期格式转换主要依赖于逻辑引擎中的函数公式。这些函数为我们的用户提供了一种强大且灵活的方式来处理和转换日期时间数据。我们的时间函数旨在......