ZLMediaKit

高性能流媒体服务框架
授权协议 MIT
开发语言 C/C++
所属分类 服务器软件、 流媒体服务器
软件类型 开源软件
地区 国产
投 递 者 翟淮晨
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

ZLMediaKit是一个基于C++11的高性能运营级流媒体服务框架。

项目特点

  • 基于C++11开发,避免使用裸指针,代码稳定可靠,性能优越。
  • 支持多种协议(RTSP/RTMP/HLS/HTTP-FLV/WebSocket-FLV/GB28181/HTTP-TS/WebSocket-TS/HTTP-fMP4/WebSocket-fMP4/MP4),支持协议互转。
  • 使用多路复用/多线程/异步网络IO模式开发,并发性能优越,支持海量客户端连接。
  • 代码经过长期大量的稳定性、性能测试,已经在线上商用验证已久。
  • 支持linux、macos、ios、android、windows全平台。
  • 支持画面秒开、极低延时(500毫秒内,最低可达100毫秒)。
  • 提供完善的标准C API,可以作SDK用,或供其他语言调用。
  • 提供完整的MediaServer服务器,可以免开发直接部署为商用服务器。
  • 提供完善的restful api以及web hook,支持丰富的业务逻辑。
  • 打通了视频监控协议栈与直播协议栈,对RTSP/RTMP支持都很完善。
  • 全面支持H265/H264/AAC/G711/OPUS。

项目定位

  • 移动嵌入式跨平台流媒体解决方案。
  • 商用级流媒体服务器。
  • 网络编程二次开发SDK。

功能清单

  • RTSP[S]

    • RTSP[S] 服务器,支持RTMP/MP4/HLS转RTSP[S],支持亚马逊echo show这样的设备
    • RTSP[S] 播放器,支持RTSP代理,支持生成静音音频
    • RTSP[S] 推流客户端与服务器
    • 支持 rtp over udp rtp over tcp rtp over http rtp组播 四种RTP传输方式
    • 服务器/客户端完整支持Basic/Digest方式的登录鉴权,全异步可配置化的鉴权接口
    • 支持H265编码
    • 服务器支持RTSP推流(包括rtp over udp rtp over tcp方式)
    • 支持H264/H265/AAC/G711/OPUS编码,其他编码能转发但不能转协议
  • RTMP[S]

    • RTMP[S] 播放服务器,支持RTSP/MP4/HLS转RTMP
    • RTMP[S] 发布服务器,支持录制发布流
    • RTMP[S] 播放器,支持RTMP代理,支持生成静音音频
    • RTMP[S] 推流客户端
    • 支持http[s]-flv直播
    • 支持websocket-flv直播
    • 支持H264/H265/AAC/G711/OPUS编码,其他编码能转发但不能转协议
    • 支持RTMP-H265
    • 支持RTMP-OPUS
  • HLS

    • 支持HLS文件生成,自带HTTP文件服务器
    • 通过cookie追踪技术,可以模拟HLS播放为长连接,可以实现HLS按需拉流、播放统计等业务
    • 支持HLS播发器,支持拉流HLS转rtsp/rtmp/mp4
    • 支持H264/H265/AAC/G711/OPUS编码
  • TS

    • 支持http[s]-ts直播
    • 支持ws[s]-ts直播
    • 支持H264/H265/AAC/G711/OPUS编码
  • fMP4

    • 支持http[s]-fmp4直播
    • 支持ws[s]-fmp4直播
    • 支持H264/H265/AAC/G711/OPUS编码
  • HTTP[S]与WebSocket

    • 服务器支持目录索引生成,文件下载,表单提交请求
    • 客户端提供文件下载器(支持断点续传),接口请求器,文件上传器
    • 完整HTTP API服务器,可以作为web后台开发框架
    • 支持跨域访问
    • 支持http客户端、服务器cookie
    • 支持WebSocket服务器和客户端
    • 支持http文件访问鉴权
  • GB28181与RTP推流

    • 支持UDP/TCP国标RTP(PS或TS)推流服务器,可以转换成RTSP/RTMP/HLS等协议
    • 支持RTSP/RTMP/HLS转国标推流客户端,支持TCP/UDP模式,提供相应restful api
    • 支持H264/H265/AAC/G711/OPUS编码
    • 支持海康ehome推流
  • MP4点播与录制

    • 支持录制为FLV/HLS/MP4
    • RTSP/RTMP/HTTP-FLV/WS-FLV支持MP4文件点播,支持seek
    • 支持H264/H265/AAC/G711/OPUS编码
  • 其他

    • 支持丰富的restful api以及web hook事件
    • 支持简单的telnet调试
    • 支持配置文件热加载
    • 支持流量统计、推拉流鉴权等事件
    • 支持虚拟主机,可以隔离不同域名
    • 支持按需拉流,无人观看自动关断拉流
    • 支持先拉流后推流,提高及时推流画面打开率
    • 提供c api sdk
    • 支持FFmpeg拉流代理任意格式的流
    • 支持http api生成并返回实时截图
    • 支持按需解复用、转协议,当有人观看时才开启转协议
  • zlmedikit 是一个流媒体服务器 源码地址https://github.com/xia-chu/ZLMediaKit 能够处理rtsp,rtmp,hls等多种流媒体协议,与SRS功能相似,虽然没有SRS出名,但是却比SRS有几个重要的优势, 一是支持多线程,运行效率比较高,SRS只能单线程运行 二是代码支持多种平台,windows,linux, macos,arm,对开发学习比较友好。可以在

  • 音视频开发系列 前言 目前、比较有名的流媒体服务器有ZLMediaKit、srs、live555、eadydarwin等。因为srs是单线程服务、对于多核服务器的支持需要通过部署多个服务来充分利用多核特性,本文主要介绍一种通用的简单的可利用多核特性的流媒体服务器是ZLMediaKit,另外一方面其支持多种流媒体协议 rtsp、rtmp、httpflv、hls、fmp4、webrtc等,而且支持视频

  • 记录一下使用ZLMediaKit轻量级流媒体服务器进行视频推流和播放的步骤,以免后期遗忘: 一、首先要开启ZLMediaKit流服务器,或者启动带rtmp的nginx,这里采用第一种方案 cd ZLMediaKit编译后的执行文件目录 ./MediaServer -d &                #后台启动ZLMediaKit Postman 2>&1 &                  

  • 1、先播放后推流 痛点:推流成功前不能提前播放 场景介绍: 有些及时推流的场景,存在推流和播放同时发生的场景,这种场景一般是一对一的,譬如说基于rtmp推流的行车记录仪,用户在调阅车载摄像头视频的,下发推流命令给设备时,同时开始播放视频,如果播放请求先于推流到达流媒体服务器,那么流媒体服务器通常会立即返回流未找到的错误,为了解决这个问题,一般的解决方案是,通过设备确认推流成功再开启播放,但是这样往

  • 交叉编译ZLMediaKit x86 下编译 armv7 1. 安装toolchain 配置环境变量 下载编译器 环境gcc是5.9.4 所以找的比较底的版本确保兼容性 mkdir /usr/local/arm-toolchain/ && cd /usr/local/arm-toolchain/ wget https://releases.linaro.org/components/toolc

  • 简介 ZLTooKit的NoticeCenter实现一个全局的事件订阅分发的松耦合机制,通过单例模式获取全局唯一的NoticeCenter对象进行事件监听(addListener)、发送(emitEvent)等主要接口的调用。 事件监听 addListener调用者将事件(event)、标识(tag)、处理函数(func),addListener函数根据事件类型先从_mapListener找到事件

  • 《webrtc入门系列(一)easy_webrtc_server 入门环境搭建》 《webrtc入门系列(二)easy_webrtc_server 入门example测试》 《webrtc入门系列(三)云服务器coturn环境搭建》 《webrtc入门系列(四) zlmediakit webrtc sdp交互详细解读》 背景 学习webrtc,一开始就绕不过sdp,所以开搞。 网上搜的资料不是很全

 相关资料
  • imi v1.0.13 版本新增了一个 Swoole\Coroutine\Http\Server 实现的协程服务器。需要 Swoole 4.4+ 才可使用该特性。 该特性是可选的,不影响以前使用的服务器模式。 使用协程服务器特性,依靠 Linux 系统的端口重用机制,系统级的负载均衡,可以让你的多进程 Http 服务处理请求的能力得到提升。 使用 ab,本机->虚拟机(双核+2进程)压测Hello

  • 我正在评估AWS Managed Service Kafka(MSK),我知道目前它处于预览模式,因此可能没有所有功能或适当的文档。我试图建立msk集群,并验证msk是否能满足我们公司的所有用例/需求,但目前,它缺乏文档和示例。 https://docs.aws.amazon.com/msk/latest/developerguide/what-is-msk.html vi)如何对流经MSK的数据

  • Streaming API用于通过令牌读取JSON令牌。 它将JSON内容读写为离散事件。 JsonReader和JsonWriter将数据读/写为令牌,称为JsonToken 。 它是处理JSON的三种方法中最强大的方法。 它具有最低的开销,并且在读/写操作中非常快。 它类似于XML的Stax解析器。 在本章中,我们将展示使用GSON流API来读取JSON数据。 Streaming API与to

  • 我已经下载了ant media server文件,并尝试启动服务器<但是,我最近了解到Ant Media Server需要java 11 所以我将java版本更新为java 11: 所以当我运行这个命令时: java版本 结果是: openjdk版本“11.0.11-ea”2021-04-20 OpenJDK运行时环境(build 11.0.11-ea 4-Ubuntu-0ubuntu3.16.0

  • 使用系统将“服务器发送事件(SSE)样式”事件流式传输到F#中的前端的轻量级方式是什么。网Http库?我了解事件流格式(例如,这个PHP示例代码),但我正在寻求一些指导,以便在服务器端F#应用程序(我在.Net Framework 4.8上)中实现流部分。

  • 收听电台广播的流媒体直播,还可以录制广播。 作者说:有问题欢迎和我QQ信箱交流:10040142@qq.com [Code4App.com]