• ZLMediaKit学习(一):Window环境下推拉流


    ZLMediaKit是一套高性能的流媒体服务框架,目前支持rtmp/rtsp/hls/http-flv流媒体协议。该项目已支持linux、macos、windows、ios、android平台,支持的编码格式包括H264、AAC、H265(仅rtsp支持H265);采用的模型是多线程IO多路复用非阻塞式编程(linux下采用epoll、其他平台采用select)。

    该框架基于C++11开发,避免使用裸指针,减少内存拷贝,代码精简可靠,并发性能优异,在linux平台下,单一进程即可充分利用多核CPU的优势;最大限度的榨干CPU、网卡性能;轻松达到万兆网卡性能极限。同时也能在高性能的同时,做到极低延时,画面秒开。

    目前ZLMediaKit经过多次版本迭代,编程模型多次升级优化;已经趋于成熟稳定,也在各种生产环境得到了验证,本文主要讨论ZLMediaKit高性能实现原理以及项目特点。

    Github主页:https://github.com/ZLMediaKit/ZLMediaKit/

    Gitee地址:https://gitee.com/xia-chu/ZLMediaKit

    1.Windows编译运行

    1.1 下载安装openssl

    下载地址:http://slproweb.com/products/Win32OpenSSL.html

    【原创】ZLMediaKit学习(一):Window环境下推拉流插图:Window环境下推拉流插图")

    【原创】ZLMediaKit学习(一):Window环境下推拉流插图:Window环境下推拉流插图")

    配置环境变量:

    【原创】ZLMediaKit学习(一):Window环境下推拉流插图1:Window环境下推拉流插图1")

    【原创】ZLMediaKit学习(一):Window环境下推拉流插图1:Window环境下推拉流插图1")

    1.2 获取代码

    #国内用户推荐从同步镜像网站gitee下载

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

    cd ZLMediaKit

    #千万不要忘记执行这句命令

    git submodule update --init

    【原创】ZLMediaKit学习(一):Window环境下推拉流插图2:Window环境下推拉流插图2")

    【原创】ZLMediaKit学习(一):Window环境下推拉流插图2:Window环境下推拉流插图2")

    1.3 安装编译器

    1.安装 Vistudio Code,选择2017以上版本,否则需要单独安装cmake(注:ZLMediaKit采用cmake来构建项目,通过cmake才能生成Makefile(或Xcode/VS工程),所以必须先安装cmake才能完成后续步骤。)

    【原创】ZLMediaKit学习(一):Window环境下推拉流插图3:Window环境下推拉流插图3")

    【原创】ZLMediaKit学习(一):Window环境下推拉流插图3:Window环境下推拉流插图3")

    1.6 使用vs2017编译

    1.7 运行

    启动MediaServer:

    1 进入D:\NewZLMediaKit\ZLMediaKit\release\windows32\Debug\Release目录

    2 双击MediaServer启动

    3 你也可以在cmd或powershell中启动,通过MediaServer -h了解启动参数

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uiaJ0Ggl-1661912852101)(https://i0.wp.com/www.dapan.cc/wp-content/uploads/2022/08/1661910926-clipboard.png?ssl=1&is-pending-load=1 “【原创】ZLMediaKit学习(一)]:Window环境下推拉流插图7”)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GHqifCqg-1661912852101)(https://i0.wp.com/www.dapan.cc/wp-content/uploads/2022/08/1661910926-clipboard.png?ssl=1 “【原创】ZLMediaKit学习(一)]:Window环境下推拉流插图7”)

    1.8 推拉流(以RTMP为例)

    1.安装ffmeg

    下载地址:http://ffmpeg.zeranoe.com/builds/

    2. 安装OBS播放器

    下载地址:https://obsproject.com/welcome

    3.将测试视频文件放到ZLMediaKit\www文件夹,双击启动MediaServer

    4.打开windows power shell并定位到ffmpeg根目录,输入指令开始RTMP推流

    ./ffmpeg -re -i “D:\ZLMdeiaKit\ZLMediaKit\www\video\test.mp4”  -vcodec copy -acodec copy -f flv -y rtmp://localhost/live/0

    5.OBS添加媒体源:rtmp://localhost/live/0,点击播放:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9WtFg8Me-1661912852102)(https://i0.wp.com/www.dapan.cc/wp-content/uploads/2022/08/1661910945-clipboard.png?ssl=1&is-pending-load=1 “【原创】ZLMediaKit学习(一)]:Window环境下推拉流插图8”)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xWwLYMGa-1661912852102)(https://i0.wp.com/www.dapan.cc/wp-content/uploads/2022/08/1661910945-clipboard.png?ssl=1 “【原创】ZLMediaKit学习(一)]:Window环境下推拉流插图8”)

    转载请注明出处

    **声明:**本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

  • 相关阅读:
    【ARIMA时序预测】基于ARIMA实现时间序列数据预测附matlab代码
    浅谈6种流行的API架构风格
    ChatGPT 控制机器人的基本框架
    Java 效率工具, 大幅度提高开发效率
    hadoop配置
    “圆”来如此——关于圆周率 π 的36 个有趣事实
    天然气销售企业人工智能技术应用研究
    论文翻译:2021_LACOPE: Latency-Constrained Pitch Estimation for Speech Enhancement
    StreamBuilder 用法示例
    常用归一化/正则化层:InstanceNorm1d、InstanceNorm2d、
  • 原文地址:https://blog.csdn.net/Mkite/article/details/126618705