EasyDarwin开源流媒体服务器

文章目录

  • 前言
  • 一、EasyDarwin 简介
  • 二、EasyDarwin 主要功能特点
  • 三、安装部署
  • 四、推拉流测试
    • 1、进入控制页面
    • 2、推流测试
    • 3、拉流测试


前言

本文介绍一个十分实用的高性能开源 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。

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 协议传输的视频流

ffplay -rtsp_transport tcp rtsp://localhost/test1
  • -rtsp_transport tcp:这个选项指定了 RTSP 传输使用 TCP 协议。这将确保使用 TCP 进行稳定的传输。
  • rtsp://localhost/test1:这是要播放的 RTSP 流的 URL。在这个例子中,要播放的流位于本地主机的 “test1” 路径上。
    在这里插入图片描述
    可以看到拉流成功,正在进行播放
    在这里插入图片描述
    在推流列表可以看到相关信息:
    在这里插入图片描述

我的qq:2442391036,欢迎交流!


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/141427.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

海康Visionmaster-通讯管理:使用 Modbus TCP 通讯 协议与流程交互

使用 Modbus TCP 通讯协议与视觉通讯,当地址为 0000 的保持型寄存器(4x 寄存器)变为 1 时,触发视觉流程执行一次,同时视觉将地址为 0000 的寄存器复位(也即写为 0),视觉流程执行完成后,将结果数…

向量数据库的分类概况

保存和检索矢量数据的五种方法: 像 Pinecone 这样的纯矢量数据库 全文搜索数据库,例如 ElasticSearch 矢量库,如 Faiss、Annoy 和 Hnswlib 支持矢量的NoSQL 数据库,例如 MongoDB、Cosmos DB 和 Cassandra 支持矢量的SQL 数据库&am…

Redis键(Keys)

前言 在 Redis 中,键(Keys)是非常重要的概念,它们代表了存储在数据库中的数据的标识符。对键的有效管理和操作是使用 Redis 数据库的关键一环,它直接影响到数据的存取效率、系统的稳定性和开发的便利性。 本文将深入…

基于SpringBoot+Redis的前后端分离外卖项目-苍穹外卖(四)

编辑员工和分类模块功能开发 1. 编辑员工1.1 需求分析与设计1.1.1 产品原型1.1.2 接口设计 1.2 代码开发1.2.1 回显员工信息功能1.2.2 修改员工信息功能 1.3 功能测试 2. 分类模块功能开发2.1 需求分析与设计2.1.1 产品原型2.1.2 接口设计2.1.3 表设计 2.2 代码实现2.2.1 Mappe…

HarmonyOS开发(三):ArkTS基础

1、ArkTS演进 Mozilla创建了JS ---> Microsoft创建了TS ----> Huawei进一步推出ArkTS 从最初的基础逻辑交互(JS),到具备类型系统的高效工程开发(TS),再到融合声明式UI、多维状态管理等丰富的应用开发能力&…

【算法训练-链表 零】链表高频算法题看这一篇就够了

一轮的算法训练完成后,对相关的题目有了一个初步理解了,接下来进行专题训练,以下这些题目就是汇总的高频题目 题目题干直接给出对应博客链接,这里只给出简单思路、代码实现、复杂度分析 反转链表 依据难度等级分别为反转链表、…

Crypto | Affine password 第二届“奇安信”杯网络安全技能竞赛

题目描述: 明文经过仿射函数y3x9加密之后变为JYYHWVPIDCOZ,请对其进行解密,flag的格式为flag{明文的大写形式}。 密文: JYYHWVPIDCOZ解题思路: 1、使用在线网站直接破解或手工计算破解,获得flag。&#xf…

使用Nginx和uwsgi在自己的服务器上部署python的flask项目

Nginx 是一个高性能的 HTTP 和反向代理服务。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。 Nginx 专为性能优化而开发,性能是其最重要的考量指标,实现上非常注重效率,能经受…

4.CentOS7安装MySQL5.7

CentOS7安装MySQL5.7 2023-11-13 小柴你能看到嘛 哔哩哔哩视频地址 https://www.bilibili.com/video/BV1jz4y1A7LS/?vd_source9ba3044ce322000939a31117d762b441 一.解压 tar -xvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz1.在/usr/local解压 tar -xvf mysql-5.7.44-…

lc307.区域和检索 - 数组可修改

暴力解法 创建方法,通过switch-case判断所需要调用的方法。 public class RegionsAndSertches {public static void main(String[] args) {String[] str new String[]{"NumArray", "sumRange", "update", "sumRange"};i…

基于RK3568的跑步机方案

I 方案简介 一、跑步机的来历 跑步机是家庭及健身房常备的健身器材,而且是当今家庭健身器材中最简单的一种,是家庭健身器的最佳选择。1965年北欧芬兰唐特力诞生了全球第一台家用的跑步机,设计师根据传速带的原理改变而成。 二、…

人工智能基础_机器学习026_L1正则化_套索回归权重衰减梯度下降公式_原理解读---人工智能工作笔记0066

然后我们继续来看套索回归,也就是线性回归,加上了一个L1正则化对吧,然后我们看这里 L1正则化的公式是第二个,然后第一个是原来的线性回归,然后 最后一行紫色的,是J= J0+L1 对吧,其实就是上面两个公式加起来 然后我们再去看绿色的 第一行,其实就是原来线性回归的梯度下降公式…

Vatee万腾科技决策力的引领创新:Vatee数字化视野的崭新天地

在数字时代的激烈竞争中,Vatee万腾以其科技决策力的引领,开创了数字化视野的崭新天地。这并不仅仅是一场技术的飞跃,更是一次对未来的深刻洞察和引领创新的勇敢实践。 Vatee万腾的科技决策力不仅仅停留在数据分析和算法的运用,更是…

BlendTree动画混合算法详解

【混合本质】 如果了解骨骼动画就知道,某一时刻角色的Pose是通过两个邻近关键帧依次对所有骨骼插值而来,换句话说就是由两个关键帧混合而来。 那么可不可以由多个关键帧混合而来呢?当然可以。 更多的关键帧可以来自不同的动画片段&#xf…

nacos适配达梦数据库

一、下载源码 源码我直接下载gitee上nacos2.2.3的,具体链接:https://gitee.com/mirrors/Nacos/tree/2.2.3,具体如下图: 二、集成达梦数据库驱动 解压源码包,用idea打开源码,等idea和maven编译完成&#xff…

小程序中如何设置多门店/多人/多商品价格库存等复杂场景设置

有些商家希望打造小程序平台,在这个平台上有多个商家入驻,他们分别售卖自己的商品。而有些商家有多个连锁店,连锁店的商品都是一样的,但不同的连锁店有不同的库存和价格。这些业务在采云小程序中是怎么支持的呢?下面具…

使用 `open-uri.with_proxy` 方法打开网页

Ruby 爬虫程序如下: require open-uri require nokogiri# 定义代理信息 proxy_host jshk.com.cn# 定义要爬取的网页 URL url http://www.example.com# 使用代理信息打开网页 open-uri.with_proxy(proxy_host, proxy_port) do |proxy|# 使用 Nokogiri 库解析网页内…

web前端开发第3次Dreamweave课堂练习/html练习代码《网页设计语言基础练习案例》

目标图片: 文字素材: 网页设计语言基础练习案例 ——几个从语义上和文字相关的标签 * h标签(h1~h6):用来定义网页的标题,成对出现。 * p标签:用来设置网页的段落,成对出现。 * b…

微信小程序授权登陆 getUserProfile

目录 前言 步骤: 示例代码: 获取用户信息的接口变化历史: 注意事项: 前言 在微信小程序中,你可以使用 getUserProfile 接口来获取用户的个人信息,并进行授权登录。以下是使用 getUserProfile 的步骤: 小程序发了…

file2Udp增量日志转出Udp简介

https://gitee.com/tianjingle/file2udp 很多时候服务产生的日志需要进行汇总,这种统一日志处理的方式有elb,而且很多日志组件也支持日志转出的能力。但是从广义上来说是定制化的,我们需要一个小工具实现tail -f的能力,将增量日志…