EasyDarwin开源流媒体服务器

2023-11-14 10:18:43 浏览数 (2)

前言

本文介绍一个十分实用的高性能开源 RTSP 流媒体服务器:EasyDarwin


一、EasyDarwin 简介

EasyDarwin 是基于 go 语言研发,维护和优化的一个高性能开源 RTSP 流媒体服务器,能够帮助流媒体开发者和创业型企业快速构建流媒体服务平台,更快,更简单的实现最新的移动互联网流媒体直播和点播,同步音频和视频的传输,源码下载地址:

  • https://github.com/EasyDarwin/EasyDarwin
  • https://github.com/EasyDarwin/EasyDarwin/releases

二、EasyDarwin 主要功能特点

  • 基于 Golang 开发维护;
  • 支持 Windows、Linux、macOS 平台;
  • 支持 RTSP 推流分发(推模式转发);
  • 支持 RTSP 拉流分发(拉模式转发);
  • 服务端录像 参考:https://blog.csdn.net/jyt0551/article/details/84189498
  • 服务端录像检索与回放 参考:https://blog.csdn.net/jyt0551/article/details/84189498
  • 关键帧缓存;
  • 秒开画面;
  • Web 后台管理;
  • 分布式负载均衡;

三、安装部署

1、下载解压 release 包 https://github.com/EasyDarwin/EasyDarwin/releases

2、直接运行(Windows) 双击 EasyDarwin.exe 注:停止服务为 Ctrl C

服务运行起来后如下所示:

四、推拉流测试

1、进入控制页面

打开浏览器输入 http://localhost:10008,进入控制页面,默认用户名密码都是 admin,主界面如下图所示

2、推流测试

使用 FFmpeg 将输入的 FLV 视频文件转换为 RTSP 流,并通过 TCP 协议传输到本地主机的 “test1” 路径。视频编码使用 libx264,音频编码使用 AAC。

代码语言:javascript复制
ffmpeg -re -i SampleVideo_1280x720_20mb.flv -rtsp_transport tcp -vcodec libx264 -acodec aac -f rtsp rtsp://localhost/test1
  • -re:这个选项告诉 FFmpeg 以实时模拟的方式读取输入文件。这对于模拟实时流传输很有用,即使输入文件本身不是实时生成的。
  • -i SampleVideo_1280x720_20mb.flv:这是输入文件的路径和文件名。在这个例子中,输入文件是名为 “SampleVideo_1280x720_20mb.flv” 的 FLV 格式视频文件。
  • -rtsp_transport tcp:这个选项指定了 RTSP(Real-Time Streaming Protocol)传输使用 TCP 协议。RTSP 是一种用于流媒体传输的协议,通过 TCP 可以提供稳定的传输。
  • -vcodec libx264:这个选项指定了视频编解码器为 libx264,它是一个开源的 H.264 视频编码器。H.264 是一种流行的视频编码标准,广泛用于视频压缩和传输。
  • -acodec aac:这个选项指定了音频编解码器为 AAC(Advanced Audio Coding),它是一种常用的音频编码格式,具有高音质和较低的比特率。
  • -f rtsp:这个选项指定了输出格式为 RTSP。RTSP 格式是用于流媒体传输的一种常见格式。
  • rtsp://localhost/test1:这是输出 RTSP 流的 URL。在这个例子中,输出的 RTSP 流将被传输到本地主机上的 “test1” 路径。

在推流列表可以看到相关信息:

3、拉流测试

使用 FFplay 工具来播放一个通过 RTSP 协议传输的视频流

代码语言:javascript复制
ffplay -rtsp_transport tcp rtsp://localhost/test1
  • -rtsp_transport tcp:这个选项指定了 RTSP 传输使用 TCP 协议。这将确保使用 TCP 进行稳定的传输。
  • rtsp://localhost/test1:这是要播放的 RTSP 流的 URL。在这个例子中,要播放的流位于本地主机的 “test1” 路径上。

可以看到拉流成功,正在进行播放

在推流列表可以看到相关信息:

0 人点赞