mac下RTSP服务器搭建(ZLMediaKit)

mac下RTSP服务器搭建(ZLMediaKit)


目录

  1. 获取代码
  2. 编译器
  3. cmake
  4. 依赖库
  5. 构建和编译项目
  6. 运行
  7. 测试

注:参考wiki(包含其他系统安装方式):https://github.com/ZLMediaKit/ZLMediaKit/wiki


1. 获取代码

  1. 请不要使用github 下载zip包的方式下载源码,务必使用git克隆ZLMediaKit的代码,因为ZLMediaKit依赖于第三方代码,zip包不会下载第三方依赖源码,你可以这样操作:

#国内用户推荐从同步镜像网站gitee下载
git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit
cd ZLMediaKit
#千万不要忘记执行这句命令
git submodule update --init


2. 编译器

1. 编译器版本要求
  1. ZLMediaKit采用了C++11的语法和库,要求编译器支持完整的C++11标准,亦即:
    1. linux上要求gcc 版本 >= 4.8(4.7应该也能支持)
    2. macOS上clang >= ???(我也不知道,估计大部分不会遇到这个问题)
    3. windows 上visual stuido >= 2015(vs2013某些版本也能编译通过,如果怕麻烦建议直接vs2017)
2. 安装编译器
  1. 如果你是macOS用户,你直接安装xcode即可。

3. cmake

  1. 如果你是macOS用户,你可以这样安装cmake:
brew install cmake

4. 依赖库

1. 依赖库列表
  1. ZLMediaKit可选依赖一些第三方库,这些库都不是必选的;在构建ZLMediaKit时,cmake能查找系统路径中的这些库,并根据安装情况选择是否开启相关特性,你可以选择安装这些依赖并启用相关特性:
    1. openssl
      1. flash player在播放rtmp时,采用的是复杂握手模式,如果不安装该库,flash player将播放不了zlmediakit 提供的rtmp url.
      2. 同时ZLMediaKit的https/rtsps相关功能需要使用openssl才能开启。
    2. ffmpeg
      1. zlmediakit可以通过fork ffmpeg进程的方式实现多种协议的拉流,编译时不需要安装FFmpeg。
    3. sdl、avcodec、avutil
      1. 这3个库供ZLMediaKit的test_player测试程序使用,你通常不需要安装这3个库。
2. 安装依赖库

macOS/centos下安装依赖库:下载并安装以上几个库即可

5. 构建和编译项目

  1. 在linux或macOS系统下,你应该这样操作:
cd ZLMediaKit
mkdir build
cd build
#macOS下可能需要这样指定openss路径:cmake .. -DOPENSSL_ROOT_DIR=/usr/local/Cellar/openssl/1.0.2j/
cmake ..
make -j4

6. 运行

ZLMediaKit工程主要生成3种二进制目标文件,他们的生成的路径在release目录下,这些目标文件主要分为:

  1. MediaServer进程
    1. 这是ZLMediaKit作为服务器的主进程,该进程可以在免去开发的情况下直接作为测试流媒体服务器使用,如果你需要更复杂的业务逻辑,可以通过Web HOOK和RESTful API实现,同时你可以通过配置文件控制其参数。
    2. 在macos下启动:
    cd ZLMediaKit/release/mac/Debug
    #通过-h可以了解启动参数
    ./MediaServer -h
    #以守护进程模式启动
    ./MediaServer -d &
    
    在这里插入图片描述

7. 测试

  1. 参考wiki:ZLMediaKit推流测试
1. 推流测试
  1. ZLMediaKit支持rtsp/rtmp/rtp推流,一般通常使用obs/ffmpeg推流测试,其中FFmpeg推流命令支持以下:
  2. 使用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
  1. 使用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
  1. 使用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
2. 观察日志
  1. 我测试的是rtsp方式,推流命令需要修改播放文件和ip,如:
推流命令:
ffmpeg -re -i "believe.mp4" -vcodec h264 -acodec aac -f rtsp -rtsp_transport tcp rtsp://127.0.0.1/live/test

拉流命令:
ffplay -rtsp_transport tcp rtsp://127.0.0.1/live/test

在这里插入图片描述
3. 日志中相关字符串分别代表:

2020-04-10 12:51:52.331 I | regist rtsp __defaultVhost__ rtp 206442D7
                                    ^           ^         ^      ^
                                  schema      vhost      app stream_id

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值