美文网首页ZLMediaKit
ZLMediaKit学习系列(一)

ZLMediaKit学习系列(一)

作者: 大盘站 | 来源:发表于2021-10-08 13:15 被阅读0次

    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

    配置环境变量:

    1.2 获取代码

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

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

    cd ZLMediaKit

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

    git submodule update --init

    1.3 安装编译器

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

    2.下载cmake

    下载地址:https://github-releases.githubusercontent.com/537699/766cde00-6457-11ea-92a1-5daa826de7c3?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20210930%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20210930T084307Z&X-Amz-Expires=300&X-Amz-Signature=aeae7ba5c66b2ebf03b1303f4446bdf4989573dccc161ad292ddaed65b8f1302&X-Amz-SignedHeaders=host&actor_id=5226661&key_id=0&repo_id=537699&response-content-disposition=attachment%3B%20filename%3Dcmake-3.17.0-rc3-win64-x64.zip&response-content-type=application%2Foctet-stream

    1.4 依赖库

    依赖库列表

    ZLMediaKit可选依赖一些第三方库,这些库都不是必选的;在构建ZLMediaKit时,cmake能查找系统路径中的这些库,并根据安装情况选择是否开启相关特性,你可以选择安装这些依赖并启用相关特性:

    openssl(1.1中已安装)

    flash player在播放rtmp时,采用的是复杂握手模式,如果不安装该库,flash player将播放不了zlmediakit 提供的rtmp url.

    同时ZLMediaKit的https/rtsps相关功能需要使用openssl才能开启。

    ffmpeg

    zlmediakit可以通过fork ffmpeg进程的方式实现多种协议的拉流,编译时不需要安装FFmpeg。

    sdl、avcodec、avutil

    这3个库供ZLMediaKit的test_player测试程序使用,你通常不需要安装这3个库。

    1.5 开始编译

    1.Windows版编译说明:http://github.com/ZLMediaKit/ZLMediaKit/wiki/Windows-%E7%89%88%E7%BC%96%E8%AF%91%E8%AF%B4%E6%98%8E

    2.ZLMediaKit Windows编译快速入门:https://blog.csdn.net/GAQ9527/article/details/119025793

    3.CMake编译生成sln

    1.6 运行

    启动MediaServer:

    1 进入ZLMediaKit/release/windows64/Debug目录

    2 双击MediaServer启动

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

    1.7 推拉流(以RTMP为例)

    1.安装ffmpeg

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

    2. 安装OBS播放器

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

    3.启动MediaServer

    将测试视频文件放到ZLMediaKit\www文件夹,双击

    4.RTMP推流

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

      ./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,点击播放:

    参考資料:

    1.【快速开始】https://github.com/ZLMediaKit/ZLMediaKit/wiki/%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B

    2.【ZLMediaKit在windows平台下的编译和运行】https://blog.csdn.net/v6543210/article/details/106154298?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-6.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-6.no_search_link

    相关文章

      网友评论

        本文标题:ZLMediaKit学习系列(一)

        本文链接:https://www.haomeiwen.com/subject/mikoiltx.html