nginx rtmp 播放本地视频,如何实现目录层级查找

rtmp {

              server {
                                   listen 1935; #服务端口--默认
                                   application vod {
                                   play /opt/video/vod/;
                                }

                   }

}

当我访问:rtmp://example.com/vod/test.mp4

默认去/opt/video/vod/ 下查找, 但是视频是根据摄像头的id划分目录的,分别在不同的目录下,比如

rtmp://example.com/vod/1/test.mp4

这样的url就无法访问,如何实现自动层级查找呢





邀请回答
提问于 2020-11-20 15:43
148 次浏览
共2个回答

发表评论
  • winshining1202
    2020-11-20 21:42

    按照官方的 rtmp 规范文档第 30 页的内容,"rtmp://example.com/vod/1/test.mp4" 这种 url 是错的,因为规范文档里写明了 tcUrl 的格式是 "protocol://servername:port/appName/appInstance",即 url 中除了协议名,主机名和端口外,只能有两层。而你的 url 是3层,所以无法访问。

    解决办法有 3 种:

    1. 可以将 application vod 修改为 application x (x 是数字),但是这中配置不太灵活,因为服务器无法事先知道你有多少个摄像头。

    2. 摄像头生成的媒体文件带上编号,例如:1 号摄像头生成的媒体文件是 1_test.mp4,2 号摄像头生成的媒体文件是 2_test.mp4,以此类推。

    3. 你这使用的是 nginx-rtmp-module 及其各种变种吧,源代码都开放了,如果有能力,可以自己修改源代码以达到要求。

    1
    回复
    举报
  • jiangyidigital
    2020-11-23 21:29

    不错

    0
    回复
    举报
提问者

子曰

码农

  • 0

    文章

  • 0

    粉丝

  • 1

    被赞

子曰
按Enter键发送
您已邀请位用户
版权所有©F5 Networks,Inc.保留所有权利。京ICP备16013763号-5