首页 新闻 会员 周边

ruoyi nginx 推 flv 流 404,

0
悬赏园豆:30 [已解决问题] 解决于 2024-07-18 16:39

我把流推到rtmp://127.0.0.1:1935/live 是可以播放的
但是推到 http://127.0.0.1:8080/live 就播不出来了,404

我感觉是ruoyi拦截了8080端口的live请求,然后在SpringMVC里面没有找到 /live 的controller,然后就返回404了。我想让它略过该请求,但是不知道在哪里配置

echo_lovely的主页 echo_lovely | 小虾三级 | 园豆:1436
提问于:2024-07-18 09:38
< >
分享
最佳答案
0

这协议都不一样,为啥rtmp变http了, http://127.0.0.1:8080/live 这个地址有接收流的接口嘛

收获园豆:30
鼻嘎塞你嘴里 | 小虾三级 |园豆:573 | 2024-07-18 09:44

rtmp没办法直接播放好像,我看控制台报错了。
我推的flv流在这里

echo_lovely | 园豆:1436 (小虾三级) | 2024-07-18 09:47

@echo_lovely: 你在nginx里先监听一个没被占用的端口,然后往那个地址上推流,看看能用http访问到吗,感觉方向好像错了捏 ,rtmp的这个地址是直接展示一个可以播放视频还是只有流数据啊,前端用播放器集成一下就行了吧,不用转来转去

鼻嘎塞你嘴里 | 园豆:573 (小虾三级) | 2024-07-18 09:55

@九亿BUG的噩梦: rtmp前端播放器好像打不开,浏览器会请求我本机的potplayer

echo_lovely | 园豆:1436 (小虾三级) | 2024-07-18 09:56

用四层协议试试,单纯的转发端口尼

!!雪莲花!! | 园豆:200 (初学一级) | 2024-07-18 09:57

@echo_lovely: 前端用的啥播放器啊,不会是用的video标签然后src吧

鼻嘎塞你嘴里 | 园豆:573 (小虾三级) | 2024-07-18 09:58

@echo_lovely: 要在前端播放器接收 RTMP 流(Real-Time Messaging Protocol),通常需要使用专门的 JavaScript 播放器库或者集成第三方的播放器插件。RTMP 是一种实时流传输协议,不是所有浏览器都原生支持,因此需要依赖额外的工具来实现播放。

以下是一种常见的实现方式,使用 flv.js 库来接收和播放 RTMP 流:

  1. 使用 flv.js 库

    • 引入 flv.js:在 HTML 文件中引入 flv.js 库的链接。

      <script src="https://cdn.jsdelivr.net/npm/flv.js@1.6.1/dist/flv.min.js"></script>
      
    • 创建 FlvPlayer 实例:在 JavaScript 中创建一个 FlvPlayer 实例,并将其绑定到页面中的 <video> 标签。

      var flvPlayer = flvjs.createPlayer({
          type: 'flv',
          url: 'your_rtmp_url'
      });
      flvPlayer.attachMediaElement(document.getElementById('videoElement'));
      flvPlayer.load();
      flvPlayer.play();
      
      • 替换 'your_rtmp_url' 为实际的 RTMP 流地址。
      • videoElement 是页面中用于播放视频流的 <video> 标签的 id。

    使用 flv.js 可以比较方便地在浏览器中实现 RTMP 流的播放功能,它支持在大多数现代浏览器中工作。

  2. 其他选择

    • 使用其他播放器库或插件:除了 flv.js,还有一些其他的 JavaScript 播放器库或插件支持播放网络视频流,包括 RTMP 流。例如,video.jsJW Player 等都有相应的支持或插件可以集成。

    • 注意兼容性:在选择和集成播放器时,需要考虑其对浏览器的兼容性以及是否支持 RTMP 流。

总结来说,通过使用 flv.js 或其他支持 RTMP 的前端播放器库,可以实现在网页中接收和播放 RTMP 流的功能。根据具体的需求和项目情况,选择合适的库来实现这一功能是比较关键的。

鼻嘎塞你嘴里 | 园豆:573 (小虾三级) | 2024-07-18 10:02

@九亿BUG的噩梦: 你个gpt
,我就用的flvjs不行

echo_lovely | 园豆:1436 (小虾三级) | 2024-07-18 13:34

@echo_lovely: 不会是跨域了吧,所以才想到配置同一个IP地址下面

鼻嘎塞你嘴里 | 园豆:573 (小虾三级) | 2024-07-18 13:36

@九亿BUG的噩梦: 是的,我感觉就是,然后我在若依里添加了排除掉/live,但是不知道好不好使

echo_lovely | 园豆:1436 (小虾三级) | 2024-07-18 13:50

@echo_lovely: 跨域的话在nginx里试试转发到rtmp地址,不知道http请求转发rtmp 能不能正确响应,应该不用动ruoyi。 那个nginx配置用proxy 试下,这样请求到不了后端站点就被nginx处理掉了

鼻嘎塞你嘴里 | 园豆:573 (小虾三级) | 2024-07-18 13:53

@echo_lovely: rtmp://127.0.0.1:1935/live 这个服务器里设置允许跨域访问也行,这个网站是你的吧

鼻嘎塞你嘴里 | 园豆:573 (小虾三级) | 2024-07-18 13:59

@九亿BUG的噩梦: 客户的设备,我远程过去开发,套壳两层,没办法进行文件复制,真的烦

echo_lovely | 园豆:1436 (小虾三级) | 2024-07-18 14:42

@九亿BUG的噩梦: 我好像访问错地址了,直接访问的后端,没有过nginx

echo_lovely | 园豆:1436 (小虾三级) | 2024-07-18 16:38

@九亿BUG的噩梦: nginx 配置的是8090,我访问的是8080,敲!

echo_lovely | 园豆:1436 (小虾三级) | 2024-07-18 16:39

@echo_lovely: 小草就是逊啦!

鼻嘎塞你嘴里 | 园豆:573 (小虾三级) | 2024-07-18 16:40

@九亿BUG的噩梦: 但是他现在访问不报错,但是没数据给我返回

echo_lovely | 园豆:1436 (小虾三级) | 2024-07-18 16:43

@echo_lovely: 得试着转发请求到rtmp上,或者看看rtmp服务那边设置允许跨域请求

鼻嘎塞你嘴里 | 园豆:573 (小虾三级) | 2024-07-18 16:51

@九亿BUG的噩梦: https://wxzzz.com/425.html
我是按照这个搞的,不报错,数据返回的不多

echo_lovely | 园豆:1436 (小虾三级) | 2024-07-18 16:52

@echo_lovely: 有的nginx不支持转发流,你按这个教程搞个对应版本的nginx试试

鼻嘎塞你嘴里 | 园豆:573 (小虾三级) | 2024-07-18 17:23
其他回答(1)
0

来自AI:
在Ruoyi框架中,你可以通过自定义配置来解决请求被拦截的问题。下面是一种可能的解决方案:

  1. 首先,检查Ruoyi的配置文件,通常是application.properties或application.yml。在这个配置文件中,查找与请求拦截相关的配置。
  2. 查看是否有拦截器(Interceptor)或过滤器(Filter)配置,这些配置可能会对请求进行拦截和处理。拦截器通常用于处理Spring MVC请求,而过滤器可以用于处理更底层的请求。
  3. 如果找到拦截器或过滤器的配置,看是否有匹配到 "/live" 路径的规则。如果有,你可以尝试将该规则注释掉、删除或修改,以便让请求通过,而不返回404。
  4. 如果没有找到明显的拦截器或过滤器配置,那么可能是由于Ruoyi采用了其他机制来拦截请求。在这种情况下,你可以查找其它可能的配置文件或调查Ruoyi框架的请求处理机制,以了解如何略过该请求。
    需要注意的是,这些解决方案可能因为Ruoyi版本或个人配置的不同而有所不同。建议参考Ruoyi的官方文档或与Ruoyi社区进行交流,以获取更准确的解决方案和支持。
Technologyforgood | 园豆:7199 (大侠五级) | 2024-07-18 16:43

不是ruoyi的问题,是我地址填错了,没有走nginx,直接连后台了。现在的问题是 推到nginx上面的视频流,直接播放播不出来

支持(0) 反对(0) echo_lovely | 园豆:1436 (小虾三级) | 2024-07-18 16:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册