ZLMediaKit使用说明

  1. ZLMediaKit使用说明
    1. 如何使用
    2. 启动项目
    3. 推流
    4. 收流

ZLMediaKit使用说明

如何使用

你有三种方法使用ZLMediaKit,分别是:

  1. 使用c api,作为sdk使用,请参考这里.
  2. 作为独立的流媒体服务器使用,不想做c/c++开发的,可以参考 restful apiweb hook.
  3. 如果想做c/c++开发,添加业务逻辑增加功能,可以参考这里的测试程序.

启动项目

根据git项目自行操作,建议使用docker方式启动。

#此镜像为github持续集成自动编译推送,跟代码(master分支)保持最新状态
docker run -id -p 1935:1935 -p 8080:80 -p 8443:443 -p 8554:554 -p 10000:10000 -p 10000:10000/udp -p 8000:8000/udp -p 9000:9000/udp zlmediakit/zlmediakit:master

推流

ZLMediaKit支持rtsp/rtmp/rtp推流,一般通常使用obs/ffmpeg推流测试,其中FFmpeg推流命令支持以下:

  1. 使用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
    
  2. 使用rtmp方式推流
    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
    
  3. 使用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
    

收流

可以通过接口 http://< ip >:8080/index/api/getMediaList?secret=< secret > 获取

  • 8080是因为我们使用docker启动时映射的是8080:80
  • secret需要进入容器 在文件/opt/media/conf/config.ini中查看

然后我们可以获取到所有的流数据,简化如下:

{
    "code" : 0,
    "data" : 
    [
        {
            "app" : "live"
            {
                "identifier" : "24-83",
                "local_ip" : "172.17.0.2",
                "local_port" : 1935,
                "peer_ip" : "192.168.100.104",
                "peer_port" : 57008
            },
            "schema" : "rtsp",
            "stream" : "test",
        }
    ]
}

播放流的url组成以 rtsp://somedomain.com:554/live/0?token=abcdefg&field=value 为例,该url分为以下几个部分:

  • 协议(scheam) : rtsp协议,默认端口554
  • 虚拟主机(vhost) : somedomain.com,该字段既可以是域名也可以是ip,如果是ip则对应的虚拟主机为__defaultVhost__
  • 服务端口号(port) : 554,如果不指定端口号,则使用协议默认端口号
  • 应用名(app) : live
  • 流ID(streamid) : 0
  • 参数(args) : token=abcdefg&field=value

对于上述json回复,我们使用

# 8554 docker映射了554端口
ffplay.exe -i rtsp://<ip>:8554/live/test

即可进行播放。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1430797759@qq.com

文章标题:ZLMediaKit使用说明

字数:705

本文作者:花落阁

发布时间:2024-05-01, 11:43:30

最后更新:2024-05-06, 09:54:14

原始链接:https://hualog.dns.navy/2024/05/01/ZLMediaKit%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。