ZLMediaKit服务器源码再读

WebApi

/**

  • 安装api接口

  • 所有api都支持GET和POST两种方式

  • POST方式参数支持application/json和application/x-www-form-urlencoded方式
    */
    void installWebApi() {
    addHttpListener();
    GET_CONFIG(string,api_secret,API::kSecret);

    //获取线程负载
    //测试url http://127.0.0.1/index/api/getThreadsLoad
    api_regist(“/index/api/getThreadsLoad”,{
    EventPollerPool::Instance().getExecutorDelay([invoker, headerOut](const vector &vecDelay) {
    Value val;
    auto vec = EventPollerPool::Instance().getExecutorLoad();
    int i = API::Success;
    for (auto load : vec) {
    Value obj(objectValue);
    obj[“load”] = load;
    obj[“delay”] = vecDelay[i++];
    val[“data”].append(obj);
    }
    val[“code”] = API::Success;
    invoker(200, headerOut, val.toStyledString());
    });
    });

监听kBroadcastHttpRequest

处理kBroadcastHttpRequest

FFMPEG
ffmpeg循环推流://注意看,此处推的是rtmp,webrtc服务器也能接收到流

ffmpeg -re -stream_loop -1 -i 1.mp4 -vcodec h264 -acodec aac -f flv rtmp://192.168.2.205/live/test1

rtsp服务器,端口默认554
rtsps服务器,端口默认322
rtmp服务器,端口默认1935
rtmps服务器,端口默认19350
http服务器,端口默认80
https服务器,端口默认443

telnet远程调试服务器

在主流的推流拉流技术中,主流的推送协议RTMP协议中,视频必须是H264编码,音频必须是AAC或MP3编码,且多以flv格式封包
RTMP是目前最主流的流媒体传输协议,对CDN支持良好,但RTMP不支持浏览器
RTMP Real Time Messaging Protocol(实时消息传输协议)



RTMP HLS拉流、HTTP-FLV拉流、RTMP拉流

| 摄像头或录屏格式 | RGB、YUV | H.265、H.264 |
|音频 |PCM |AAC|
合成 FLV、TS、RTMP packet格式

向服务器推流的协议:
HLS、RTSP、RTMP 应用层
RTCP、RTP 传输层协议
RSVP 网络层协议

从服务器拉流:
HLS、RTSP、RTMP 应用层
RTCP、RTP 传输层协议
RSVP 网络层协议

H.264 和 AAC 使用硬解码(GPU解码和CPU解码)和软解码(CPU解码)
将YUV或RGB

ZLMediaKit相关推荐

  1. 系统中编译安装ZLMediaKit的步骤

    这篇文章给大家分享的是centos6系统中编译安装ZLMediaKit的步骤.小编觉得挺实用的,因此分享给大家学习.如下资料是编译安装的步骤.  1.安装基础编译环境 1.1 gcc-5.4的安装  ...

  2. mac下RTSP服务器搭建(ZLMediaKit)

    mac下RTSP服务器搭建(ZLMediaKit) 目录 获取代码 编译器 cmake 依赖库 构建和编译项目 运行 测试 注:参考wiki(包含其他系统安装方式):https://github.co ...

  3. 使用 GB28181.Solution + ZLMediaKit + MediaServerUI 进行摄像头推流和播放

    使用 GB28181.Solution + ZLMediaKit + MediaServerUI 进行摄像头推流和播放 独立观察员 2020 年 8 月 25 日 一.摄像机 GB28181 配置 打 ...

  4. ZLMediaKit webRTC编译

    ZLMediaKit webrtc编译 安装编译环境 代码下载 编译器要求 编译器安装 运行ZLMediaKit 测试webrtc 参考 最近公司要提高流媒体视频的播放性能,多方查询资料后,发现ZLM ...

  5. ZLMediaKit中_all_track_ready置为true的过程

    ZLMediaKit中_all_track_ready置为true的过程 RtmpMediaSourceImp继承来自以下类 public RtmpMediaSource public TrackLi ...

  6. ZLMediaKit视频推流和播放步骤

    记录一下使用ZLMediaKit轻量级流媒体服务器进行视频推流和播放的步骤,以免后期遗忘: 一.首先要开启ZLMediaKit流服务器,或者启动带rtmp的nginx,这里采用第一种方案 cd ZLM ...

  7. ZLMediaKit启用webrtc编译

    参考资料 ZLMediaKit github https://github.com/ZLMediaKit/ZLMediaKit ZLMediaKit 微信公众号 可查看视频教程 ZLMediaKit ...

  8. 开源流媒体服务器ZLMediaKit在Windows上运行、配置、按需拉流拉取摄像头rtsp视频流)并使用http-flv网页播放

    场景 目前市面上有很多开源的流媒体服务器解决方案,常见的有SRS.EasyDarwin.ZLMediaKit和Monibuca等. 1.SRS GitHub - ossrs/srs: SRS is a ...

  9. ZLMediaKit源码分析 - NotifyCenter

    简介 ZLTooKit的NoticeCenter实现一个全局的事件订阅分发的松耦合机制,通过单例模式获取全局唯一的NoticeCenter对象进行事件监听(addListener).发送(emitEv ...

  10. ZLMediaKit Windows编译快速入门

    前言 我也只是个初学ZLMediaKit的,遇到什么我就写什么,但是Windows平台的使用确实让我觉得有些难为情,我就记录了下来 一.下载源码 前提条件:安装git #国内用户推荐从同步镜像网站gi ...

最新文章

  1. LeetCode Majority Element
  2. Gradle笔记系列(一)
  3. Flutter Gzip 编码与解码 Dart Gzip 工具类操作
  4. 你的心思很难猜?3亿+用户的心TA都懂!
  5. Ubuntu下远程访问MySQL数据库
  6. 适配器模式/adapter模式/结构型模式
  7. Win7环境下VS2010配置Cocos2d-x-2.1.4最新版本号的开发环境
  8. 快递100 的 《API URL 所支持的快递公司及参数说明》和《支持的国际类快递及参数说明》
  9. Halcon教程八:简单的语法介绍
  10. java pageoffice_JAVA调用PageOffice在线打开、编辑Word文档
  11. 怎么将图片转成html,一种将图片转成HTML文档的方法与流程
  12. Delphi 字体修改一例 (转)
  13. 调用QQ与陌生人聊天
  14. 使用较广泛的安全测试工具有哪些?
  15. 按下 Home 键后发生了什么事?
  16. AI视屏处理(C++)
  17. Python中的sys中的stdout
  18. 微信跳转外部浏览器下载app
  19. linux安装un解压工具,压缩及解压缩工具
  20. GIT码云仓库提交步骤

热门文章

  1. 翻译文本软件有什么?文本翻译器有什么?
  2. PS插件CameraRaw-初次尝试
  3. Python/numpy之ravel()多维数据展平函数
  4. excel学习-数据透视表字段修改
  5. GUN tar for windows Practice
  6. Apple Tree(dfs序+树状数组)
  7. 操原上机(一)在 Windows 环境下,编写一个批处理程序(算命大师.bat)
  8. HTML搜索框-滑块-简单验证
  9. python调用msfconsole全自动永恒之蓝攻击_永恒之蓝-ETERNALBLUE漏洞MS17-010利用过程
  10. 【Python爬虫+数据可视化】国内疫情或将零增长,我们离疫情结束有多远?(世界地图)