三方库 - 音视频/ZLMediaKit

基于 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 全平台;

支持画面秒开、极低延时(500 毫秒内,最低可达 100 毫秒)。

    ​​​​​​一、ZLMediaKit环境搭建(Windows

    vcpkg.exe install zlmediakit

    二、ZLMediaKit环境搭建(Linux)

    1、环境依赖

    ZLMediaKit 采用了 C++11 的语法和库,要求编译器支持完整的 C++11 标准:

    Linux: gcc >= 4.8

    sudo apt install build-essential

    ZLMediaKit 采用 CMake 来构建项目,所以编译需要 CMake:

    sudo apt install cmake

    2、克隆代码

    # 国内用户推荐从 Gitee 下载

    git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit

    cd ZLMediaKit

    # 初始化子模块 (必须执行)

    git submodule update --init

    注意:不能通过下载 zip 包的方式下载源码,因为 ZLMediaKit 依赖于第三方代码并通过 Git 子模块的方式管理。

    3、安装依赖库

    ZLMediaKit 依赖一些可选的第三方库,构建时,CMake 将在 path 中查找这些库,并根据检测情况决定是否开启相关特性。

    除了 openssl,其他都是可选的:

    sudo apt install libssl-dev

    sudo apt install libsdl-dev

    sudo apt install libavcodec-dev

    sudo apt install libavutil-dev

    sudo apt install ffmpeg

    4、编译/构建

    cd ZLMediaKit

    mkdir build

    cd build

    cmake ..

    make -j4

    三、ZLMediaKit文档

    https://docs.zlmediakit.com/zh/guide/#%E9%A1%B9%E7%9B%AE%E7%89%B9%E7%82%B9

    四、ZLMediaKit运行

    主要生成 3 种二进制目标文件,生成路径在 release 目录下:

    MediaServer 进程(服务器主进程,该进程可以在免去开发的情况下直接作为测试流媒体服务器使用):

    cd ZLMediaKit/release/linux/Debug

    # 通过 -h 可以了解启动参数

    ./MediaServer -h

    # 以守护进程模式启动

    ./MediaServer -d &

    C 接口的 SDK:

    头文件位于ZLMediaKit/api/include

    ZLMediaKit/release/linux/Debug/libmk_api.so

    五、ZLMediaKit配置文件

    默认配置文件在:ZLMediaKit/conf/config.ini

    该配置文件在执行cmake时,会拷贝至release/${操作系统类型}/${编译类型}(例如release/linux/Debug) 文件夹

    检查http端口:

    六、ZLMediaKit控制台

    1、控制台访问

    http://服务器IP:PORT

     

    2、swagger页面

    3、webassist页面

    七、ZLMediaKit流媒体服务

    1、resful接口

    MediaServer 是 ZLMediaKit 的主进程,目前支持以下 http api 接口,这些接口全部支持 GET/POST 方式:

    https://docs.zlmediakit.com/zh/guide/media_server/restful_api.html

    2、webhook接口

    MediaServer 可以把内部的一些事件通过 http post 第三方 http 服务器的方式通知出去,以下是相关的默认配置:

    https://docs.zlmediakit.com/zh/guide/media_server/web_hook_api.html

    3、按需拉流

    4、按需推流

    5、推流鉴权

    6、播放鉴权

    7、推流播放测试

    ZLMediaKit 支持 rtsp/rtmp/rtp 推流。

    # rtsp 方式推流

    # h264推流

    ffmpeg -re -i "/path/to/test.mp4" -vcodec h264 -acodec aac -f rtsp -rtsp_transport tcp rtsp://127.0.0.1/live/test

    # h265推流

    ffmpeg -re -i "/path/to/test.mp4" -vcodec h265 -acodec aac -f rtsp -rtsp_transport tcp rtsp://127.0.0.1/live/test

    # rtmp 方式推流

    #如果未安装FFmpeg,也可以用obs推流

    ffmpeg -re -i "/path/to/test.mp4" -vcodec h264 -acodec aac -f flv rtmp://127.0.0.1/live/test

    # RTMP标准不支持H265,但是国内有自行扩展的,如果想让FFmpeg支持RTMP-H265,请按照此文章编译:https://github.com/ksvc/FFmpeg/wiki/hevcpush

    # rtp 方式推流

    # h264推流

    ffmpeg -re -i "/path/to/test.mp4" -vcodec h264 -acodec aac -f rtp_mpegts rtp://127.0.0.1:10000

    # h265推流

    ffmpeg -re -i "/path/to/test.mp4" -vcodec h265 -acodec aac -f rtp_mpegts rtp://127.0.0.1:10000

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值