欢迎访问我的网站,希望内容对您有用,感兴趣的可以加入免费知识星球。

ZLMediaKit教程(三)URL规则

ZLMediaKit 迷途小书童 2年前 (2021-09-28) 2735次浏览 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)

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

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

请关闭 Adblock 等类似浏览器插件,然后刷新页面访问,感谢您的支持!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.