![logo](https://raw.githubusercontent.com/ZLMediaKit/ZLMediaKit/master/www/logo.png)
# 一个基于C++11的高性能运营级流媒体服务框架
[![](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/ZLMediaKit/ZLMediaKit/blob/master/LICENSE)
[![](https://img.shields.io/badge/language-c++-red.svg)](https://en.cppreference.com/)
[![](https://img.shields.io/badge/platform-linux%20|%20macos%20|%20windows-blue.svg)](https://github.com/ZLMediaKit/ZLMediaKit)
[![](https://img.shields.io/badge/PRs-welcome-yellow.svg)](https://github.com/ZLMediaKit/ZLMediaKit/pulls)
[![](https://github.com/ZLMediaKit/ZLMediaKit/actions/workflows/android.yml/badge.svg)](https://github.com/ZLMediaKit/ZLMediaKit)
[![](https://github.com/ZLMediaKit/ZLMediaKit/actions/workflows/linux.yml/badge.svg)](https://github.com/ZLMediaKit/ZLMediaKit)
[![](https://github.com/ZLMediaKit/ZLMediaKit/actions/workflows/macos.yml/badge.svg)](https://github.com/ZLMediaKit/ZLMediaKit)
[![](https://github.com/ZLMediaKit/ZLMediaKit/actions/workflows/windows.yml/badge.svg)](https://github.com/ZLMediaKit/ZLMediaKit)
[![](https://github.com/ZLMediaKit/ZLMediaKit/actions/workflows/docker.yml/badge.svg)](https://hub.docker.com/r/zlmediakit/zlmediakit/tags)
[![](https://img.shields.io/docker/pulls/zlmediakit/zlmediakit)](https://hub.docker.com/r/zlmediakit/zlmediakit/tags)
## 项目特点
- 基于C++11开发,避免使用裸指针,代码稳定可靠,性能优越。
- 支持多种协议(RTSP/RTMP/HLS/HTTP-FLV/WebSocket-FLV/GB28181/HTTP-TS/WebSocket-TS/HTTP-fMP4/WebSocket-fMP4/MP4/WebRTC),支持协议互转。
- 使用多路复用/多线程/异步网络IO模式开发,并发性能优越,支持海量客户端连接。
- 代码经过长期大量的稳定性、性能测试,已经在线上商用验证已久。
- 支持linux、macos、ios、android、windows全平台。
- 支持x86、arm、risc-v、mips、龙芯、申威等指令集平台。
- 支持画面秒开、极低延时([500毫秒内,最低可达100毫秒](https://github.com/ZLMediaKit/ZLMediaKit/wiki/%E5%BB%B6%E6%97%B6%E6%B5%8B%E8%AF%95))。
- 提供完善的标准[C API](https://github.com/ZLMediaKit/ZLMediaKit/tree/master/api/include),可以作SDK用,或供其他语言调用。
- 提供完整的[MediaServer](https://github.com/ZLMediaKit/ZLMediaKit/tree/master/server)服务器,可以免开发直接部署为商用服务器。
- 提供完善的[restful api](https://github.com/ZLMediaKit/ZLMediaKit/wiki/MediaServer%E6%94%AF%E6%8C%81%E7%9A%84HTTP-API)以及[web hook](https://github.com/ZLMediaKit/ZLMediaKit/wiki/MediaServer%E6%94%AF%E6%8C%81%E7%9A%84HTTP-HOOK-API),支持丰富的业务逻辑。
- 打通了视频监控协议栈与直播协议栈,对RTSP/RTMP支持都很完善。
- 全面支持H265/H264/AAC/G711/OPUS。
- 功能完善,支持集群、按需转协议、按需推拉流、先播后推、断连续推等功能。
- 极致性能,单机10W级别播放器,100Gb/s级别io带宽能力。
- 极致体验,[独家特性](https://github.com/ZLMediaKit/ZLMediaKit/wiki/ZLMediakit%E7%8B%AC%E5%AE%B6%E7%89%B9%E6%80%A7%E4%BB%8B%E7%BB%8D)
- [谁在使用zlmediakit?](https://github.com/ZLMediaKit/ZLMediaKit/issues/511)
- 全面支持ipv6网络
## 项目定位
- 移动嵌入式跨平台流媒体解决方案。
- 商用级流媒体服务器。
- 网络编程二次开发SDK。
## 功能清单
### 功能一览
<img width="800" alt="功能一览" src="https://user-images.githubusercontent.com/11495632/190864440-91c45f8f-480f-43db-8110-5bb44e6300ff.png">
- 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/MJPEG编码,其他编码能转发但不能转协议
- 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](https://github.com/ksvc/FFmpeg/wiki)
- 支持[RTMP-OPUS](https://github.com/ZLMediaKit/ZLMediaKit/wiki/RTMP%E5%AF%B9H265%E5%92%8COPUS%E7%9A%84%E6%94%AF%E6%8C%81)
- 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/MJPEG编码
- HTTP[S]与WebSocket
- 服务器支持`目录索引生成`,`文件下载`,`表单提交请求`
- 客户端提供`文件下载器(支持断点续传)`,`接口请求器`,`文件上传器`
- 完整HTTP API服务器,可以作为web后台开发框架
- 支持跨域访问
- 支持http客户端、服务器cookie
- 支持WebSocket服务器和客户端
- 支持http文件访问鉴权
- GB28181与RTP推流
- 支持UDP/TCP RTP(PS/TS/ES)推流服务器,可以转换成RTSP/RTMP/HLS等协议
- 支持RTSP/RTMP/HLS等协议转rtp推流客户端,支持TCP/UDP模式,提供相应restful api,支持主动被动方式
- 支持H264/H265/AAC/G711/OPUS编码
- 支持es/ps/ts/ehome rtp推流
- 支持es/ps rtp转推
- 支持GB28181主动拉流模式
- MP4点播与录制
- 支持录制为FLV/HLS/MP4
- RTSP/RTMP/HTTP-FLV/WS-FLV支持MP4文件点播,支持seek
- 支持H264/H265/AAC/G711/OPUS编码
- WebRTC
- 支持WebRTC推流,支持转其他协议
- 支持WebRTC播放,支持其他协议转WebRTC
- 支持双向echo test
- 支持simulcast推流
- 支持上下行rtx/nack丢包重传
- **支持单端口、多线程、客户端网络连接迁移(开源界唯一)**。
- 支持TWCC rtcp动态调整码率
- 支持remb/pli/sr/rr rtcp
- 支持rtp扩展解析
- 支持GOP缓冲,webrtc播放秒开
- 支持datachannel
- 支持webrtc over tcp模式
- 优秀的nack、jitter buffer算法, 抗丢包能力卓越
- [SRT支持](./srt/srt.md)
- 其他
- 支持丰富的restful api以及web hook事件
- 支持简单的telnet调试
- 支持配置文件热加载
- 支持流量统计、推拉流鉴权等事件
- 支持虚拟主机,可以隔离不同域名
- 支持按需拉流,无人观看自动关断拉流
- 支持先播放后推流,提高及时推流画面打开率
- 提供完整强大的c api sdk
- 支持FFmpeg拉流代理任意格式的流
- 支持http api生成并返回实时截图
- 支持按需解复用、转协议,当有人观看时才开启转协议,降低cpu占用率
- 支持溯源模式的集群部署,溯源方式支持rtsp/rtmp/hls/http-ts, 边沿站支持hls, 源站支持多个(采用round robin方式溯源)
- rtsp/rtmp/webrtc推流异常断开后,可以在超时时间内重连推流,播放器无感知
## 编译以及测试
**编译前务必仔细参考wiki:[快速开始](https://github.com/ZLMediaKit/ZLMediaKit/wiki/%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B)操作!!!**
## 怎么使用
你有三种方法使用ZLMediaKit,分别是:
- 1、使用c api,作为sdk使用,请参考[这里](https://github.com/ZLMediaKit/ZLMediaKit/tree/master/api/include).
- 2、作为独立的流媒体服务器使用,不想做c/c++开发的,可以参考 [restful api](https://github.com/ZLMedi
没有合适的资源?快使用搜索试试~ 我知道了~
ZLMediaKit流媒体服务
需积分: 0 13 下载量 63 浏览量
2023-04-12
17:23:40
上传
评论
收藏 39.39MB GZ 举报
温馨提示
共548个文件
cpp:174个
h:165个
xml:22个
1.基于C++11开发,避免使用裸指针,代码稳定可靠,性能优越。支持多种协议(RTSP/RTMP/HLS/HTTP-FLV/WebSocket-FLV/GB28181/HTTP-TS/WebSocket-TS/HTTP-fMP4/WebSocket-fMP4/MP4/WebRTC),支持协议互转。 2.使用多路复用/多线程/异步网络IO模式开发,并发性能优越,支持海量客户端连接。 代码经过长期大量的稳定性、性能测试,已经在线上商用验证已久。 3.支持linux、macos、windows全平台。 4.支持x86、arm、risc-v、mips等指令集平台。 5.支持画面秒开、极低延时(500毫秒内,最低可达100毫秒)。 6.提供完善的标准C API,可以作SDK用,或供其他语言调用。 7.提供完整的MediaServer服务器,可以免开发直接部署为商用服务器。 8.提供完善的restful api以及web hook,支持丰富的业务逻辑。 9.打通了视频监控协议栈与直播协议栈,对RTSP/RTMP支持都很完善。 10.全面支持H265/H264/AAC/G711/OPUS。
资源推荐
资源详情
资源评论
收起资源包目录
ZLMediaKit流媒体服务 (548个子文件)
app-debug.apk 18.72MB
AUTHORS 3KB
gradlew.bat 3KB
gradlew.bat 2KB
wepoll.c 80KB
SPSParser.c 73KB
server.c 19KB
websocket.c 7KB
h264_media_server.c 6KB
pusher.c 4KB
player_opencv.c 3KB
httpclient.c 2KB
.clang-format 3KB
android.toolchain.cmake 80KB
ios.toolchain.cmake 29KB
AndroidNdkGdb.cmake 4KB
FindMYSQL.cmake 4KB
AndroidNdkModules.cmake 3KB
Jemalloc.cmake 2KB
FindSRTP.cmake 2KB
FindX264.cmake 2KB
FindJEMALLOC.cmake 1KB
FindSCTP.cmake 555B
FindSWRESAMPLE.cmake 507B
FindAVFORMAT.cmake 483B
FindSWSCALE.cmake 471B
FindAVCODEC.cmake 471B
FindAVUTIL.cmake 459B
FindMP4V2.cmake 411B
FindSDL2.cmake 376B
FindFAAC.cmake 291B
config 271B
WebApi.cpp 71KB
Sdp.cpp 60KB
RtspSession.cpp 48KB
DtlsTransport.cpp 44KB
WebRtcTransport.cpp 43KB
SctpAssociation.cpp 34KB
StunPacket.cpp 33KB
SrtTransport.cpp 30KB
MediaSource.cpp 29KB
JPEGRtp.cpp 29KB
RtmpProtocol.cpp 28KB
HttpSession.cpp 28KB
RtspPlayer.cpp 27KB
Rtcp.cpp 26KB
WebHook.cpp 26KB
HttpFileManager.cpp 23KB
RtpExt.cpp 23KB
Transcode.cpp 22KB
RtmpSession.cpp 22KB
Rtsp.cpp 19KB
RtspPusher.cpp 19KB
config.cpp 19KB
mk_events_objects.cpp 18KB
IceServer.cpp 17KB
amf.cpp 17KB
RtcpFCI.cpp 16KB
Packet.cpp 16KB
main.cpp 15KB
MultiMediaSourceMuxer.cpp 15KB
PacketQueue.cpp 15KB
RtmpPlayer.cpp 14KB
test_sortor.cpp 14KB
HlsPlayer.cpp 14KB
test_server.cpp 14KB
FFmpegSource.cpp 14KB
mk_tcp.cpp 14KB
H264Encoder.cpp 13KB
MediaSink.cpp 13KB
MP4Muxer.cpp 13KB
RtpSender.cpp 13KB
SrtTransportImp.cpp 13KB
H265Rtp.cpp 12KB
mk_media.cpp 12KB
Factory.cpp 12KB
HttpClient.cpp 12KB
AAC.cpp 12KB
mk_common.cpp 11KB
RtpServer.cpp 11KB
Process.cpp 10KB
H264Rtp.cpp 10KB
test_bench_push.cpp 10KB
Stamp.cpp 10KB
HttpCookieManager.cpp 10KB
DeviceHK.cpp 9KB
MP4Demuxer.cpp 9KB
RtpProcess.cpp 9KB
RtmpPusher.cpp 9KB
native-lib.cpp 9KB
HttpBody.cpp 9KB
RtcpContext.cpp 9KB
Parser.cpp 9KB
SrtpSession.cpp 9KB
H264.cpp 9KB
test_httpClient.cpp 9KB
Decoder.cpp 8KB
HttpConst.cpp 8KB
Nack.cpp 8KB
test_bench_pull.cpp 8KB
共 548 条
- 1
- 2
- 3
- 4
- 5
- 6
资源评论
大张哥儿
- 粉丝: 18
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功