我把流推到rtmp://127.0.0.1:1935/live 是可以播放的
但是推到 http://127.0.0.1:8080/live 就播不出来了,404
我感觉是ruoyi拦截了8080端口的live请求,然后在SpringMVC里面没有找到 /live 的controller,然后就返回404了。我想让它略过该请求,但是不知道在哪里配置
这协议都不一样,为啥rtmp变http了, http://127.0.0.1:8080/live 这个地址有接收流的接口嘛
rtmp没办法直接播放好像,我看控制台报错了。
我推的flv流在这里
@echo_lovely: 你在nginx里先监听一个没被占用的端口,然后往那个地址上推流,看看能用http访问到吗,感觉方向好像错了捏 ,rtmp的这个地址是直接展示一个可以播放视频还是只有流数据啊,前端用播放器集成一下就行了吧,不用转来转去
@九亿BUG的噩梦: rtmp前端播放器好像打不开,浏览器会请求我本机的potplayer
用四层协议试试,单纯的转发端口尼
@echo_lovely: 前端用的啥播放器啊,不会是用的video标签然后src吧
@echo_lovely: 要在前端播放器接收 RTMP 流(Real-Time Messaging Protocol),通常需要使用专门的 JavaScript 播放器库或者集成第三方的播放器插件。RTMP 是一种实时流传输协议,不是所有浏览器都原生支持,因此需要依赖额外的工具来实现播放。
以下是一种常见的实现方式,使用 flv.js
库来接收和播放 RTMP 流:
使用 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 流的播放功能,它支持在大多数现代浏览器中工作。
其他选择:
使用其他播放器库或插件:除了 flv.js,还有一些其他的 JavaScript 播放器库或插件支持播放网络视频流,包括 RTMP 流。例如,video.js
、JW Player
等都有相应的支持或插件可以集成。
注意兼容性:在选择和集成播放器时,需要考虑其对浏览器的兼容性以及是否支持 RTMP 流。
总结来说,通过使用 flv.js 或其他支持 RTMP 的前端播放器库,可以实现在网页中接收和播放 RTMP 流的功能。根据具体的需求和项目情况,选择合适的库来实现这一功能是比较关键的。
@九亿BUG的噩梦: 你个gpt
,我就用的flvjs不行
@echo_lovely: 不会是跨域了吧,所以才想到配置同一个IP地址下面
@九亿BUG的噩梦: 是的,我感觉就是,然后我在若依里添加了排除掉/live,但是不知道好不好使
@echo_lovely: 跨域的话在nginx里试试转发到rtmp地址,不知道http请求转发rtmp 能不能正确响应,应该不用动ruoyi。 那个nginx配置用proxy 试下,这样请求到不了后端站点就被nginx处理掉了
@echo_lovely: rtmp://127.0.0.1:1935/live 这个服务器里设置允许跨域访问也行,这个网站是你的吧
@九亿BUG的噩梦: 客户的设备,我远程过去开发,套壳两层,没办法进行文件复制,真的烦
@九亿BUG的噩梦: 我好像访问错地址了,直接访问的后端,没有过nginx
@九亿BUG的噩梦: nginx 配置的是8090,我访问的是8080,敲!
@echo_lovely: 小草就是逊啦!
@九亿BUG的噩梦: 但是他现在访问不报错,但是没数据给我返回
@echo_lovely: 得试着转发请求到rtmp上,或者看看rtmp服务那边设置允许跨域请求
@九亿BUG的噩梦: https://wxzzz.com/425.html
我是按照这个搞的,不报错,数据返回的不多
@echo_lovely: 有的nginx不支持转发流,你按这个教程搞个对应版本的nginx试试
来自AI:
在Ruoyi框架中,你可以通过自定义配置来解决请求被拦截的问题。下面是一种可能的解决方案:
不是ruoyi的问题,是我地址填错了,没有走nginx,直接连后台了。现在的问题是 推到nginx上面的视频流,直接播放播不出来