ZLMediaKit

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值