欢迎访问我的网站,希望内容对您有用,感兴趣的可以加入我们的社群。

ZLMediaKit教程(三)URL规则

ZLMediaKit 迷途小书童 3年前 (2021-09-28) 3965次浏览 0个评论

环境

  • ubuntu 18.04 64bit
  • ZLMediaKit 20210924
  • ffmpeg 3.4.8

流媒体源

当主程序启动后,客户端启动推流(这里以 rtsp 方式为例,rtmprtp 也类似)

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

这时,在 MediaServer 主程序的输出中,可以看到类似下图的信息

zlmediakit

ZLMediaKit 中,有个叫做流媒体源(MediaSource)的数据对象,它可以被用于直播转发、推流转发等功能,目前支持5种类型的流媒体源,分别是 RtspMediaSourceRtmpMediaSourceHlsMediaSourceTSMediaSourceFMP4MediaSource

ffmpeg 推流成功后,对应到播放地址分别是

rtsp://192.168.1.140/live/test
rtmp://192.168.1.140/live/test
http://192.168.1.140/live/test/hls.m3u8
http://192.168.1.140/live/test.live.ts
http://192.168.1.140/live/test.live.mp4

这些 url,使用播放器 ffplay 是可以直接播放的

ZLMediaKit

ZLMediaKit

ZLMediaKit

ZLMediaKit

ZLMediaKit

URL的组成

rtsp://somedomain.com:554/live/test?token=abcdefg&field=value 为例,该 url 分为以下几个部分

  • 协议(scheam) : rtsp协议
  • 虚拟主机(vhost) : somedomain.com,该字段既可以是域名也可以是 ip 地址,如果是 ip 的话,则对应的虚拟主机为 __defaultVhost__
  • 服务端口号(port) : 554,如果不指定端口号,则使用协议默认端口号。rtsp 默认端口554,rtmp 默认端口1935,http 默认端口80
  • 应用名(app) : 此例是 live
  • ID(streamid) : 此例是 test
  • 参数(args) : token=abcdefg&field=value,格式跟 http 一致,url 参数主要用于播放、推流鉴权,在触发 hook api 时,会把这些参数提交给第三方业务服务器

点播

ZLMediaKit 的点播一般通过 mp4 文件来实现,推荐大家使用 http mp4 点播,这样是最简单,服务器也无需解复用 mp4 文件,当然 ZLMediaKit 目前也支持 rtsprtmphttp-flvwebsocket-flvmp4 点播, 对应的 url 跟直播 url 类似

要在 ZLMediaKit 中实现点播,只需要将 mp4 文件放到 www/record 下,默认情况下,应用名是 record,可以在 config.ini 中修改

ZLMediaKit

那么,点播 URL 就是

rtsp://192.168.1.140/record/test.mp4
rtmp://192.168.1.140/record/test.mp4
http://192.168.1.140/record/test.mp4 (通用http点播,推荐)

关联阅读

  1. ZLMediaKit教程(一)编译安装
  2. ZLMediaKit教程(二)主程序和配置文件
喜欢 (0)

您必须 登录 才能发表评论!