Vue整合Rtmp流实现无Flash播放[flv+websocket篇]

news/2024/11/9 10:02:50/

小白心路历程篇,如有错误欢迎指出,感谢各位大佬


本篇包括以下内容:

①采用node的第三方流媒体库Node-Media-Server搭建流媒体服务器

②使用vue+flvjs+websocket实现页面无flash播放视频流

预备知识:

node(用于搭建流媒体服务器)

obs/ffmpeg(用于推流)

vue基础

实现效果:

搭建步骤:

①流媒体服务器:

server.js,[采用node-media-server搭建]

const NodeMediaServer = require('node-media-server')const port = 8000const config = {//rtmp流媒体服务器rtmp: {port: 1935,chunk_size: 10240,gop_cache: true,ping: 30,ping_timeout: 60},http: {port: port,allow_origin: '*'}
}var nms = new NodeMediaServer(config)
nms.run()

使用node命令运行该js文件启动node server.js即可,详细的流媒体延迟优化参数可以参考node-media-server官方手册。

②推流

采用obs推流工具或者ffmpeg工具将相机流推到上面服务器即可

2.1 obs推流设置:obs使用教程我就不编写了 有兴趣可以自行百度即可,一般游戏直播都会用obs,比较稳定且推荐使用这种方式

2.2 ffmpeg工具推流【ffmpeg比较不稳定,推流一段时间就直接卡死了】使用推流命令为:

ffmpeg -rtsp_transport tcp -re -stream_loop -1 -i "rtsp://监控账号:监控的密码!@监控的ip地址:监控的端口/cam/realmonitor" -c copy -f flv rtmp://localhost:1935/live/test

③vue页面代码(配合b站开源的flvjs【感谢bilibili!】)

3.1 在public文件中的html页面中引入(全局引入)flvjs

<script src="https://cdn.bootcss.com/flv.js/1.5.0/flv.min.js"></script>

3.2 vue页面代码

<template><div class="content"><video id="my-video" style="width:100%;height:100%;position:relative;" autoplay muted></video></div>
</template>
<script>
export default {data() {return {}},methods: {startPlay() {if (flvjs.isSupported()) {const videoElement = document.getElementById("my-video");const flvPlayer = flvjs.createPlayer({type: "flv",isLive: true,hasAudio: false,//必须与node搭建的流媒体服务器中的http的端口和推流的参数吻合url: "ws://localhost:8000/live/test.flv"},{enableStashBuffer: true,stashInitialSize: 128});flvPlayer.attachMediaElement(videoElement)flvPlayer.load()flvPlayer.play()} else {console.log("flvjs不支持")}}},mounted() {this.startPlay()}
}
</script>

 


http://www.ppmy.cn/news/637699.html

相关文章

flash swf文件 网页播放功能方案实现

1、ruffle 可以支持先网页播放swf文件但是actionscrip3支持不太好&#xff0c;但看最近还是有更新的并且也有as3支持的计划&#xff0c;期待后续 GitHub - ruffle-rs/ruffle: A Flash Player emulator written in Rust 2、WAFlash https://github.com/vidkidz/vidkidz.github…

如何在flash中实现播放控制?

经常看到一些作品中有播放按钮&#xff08;即点击该按钮动画才能继续播放&#xff09;&#xff0c;类似这样的效果是如何实现的&#xff1f; 比如说这这样的播放按钮&#xff1a; 一、播放按钮的实例讲解 播放按钮的逻辑就是&#xff1a; 动画播放到这里停止&#xff0c;等待…

Vue整合Rtmp流实现无Flash播放[hls篇]

小白心路历程篇&#xff0c;如有错误欢迎指出&#xff0c;感谢各位大佬 本篇包括以下内容&#xff1a; ①采用nginx搭建流媒体服务器&#xff0c;利用ffmpeg工具实现推流和转码工作。 ②使用vue原生hls.js来实现无flash播放m3u8直播流 预备知识&#xff1a; linux(操作系统…

网页通过Flash播放视频

众所周知要想在网页上播放视频有很多种方式,比如通过H5里面的Video标签,选择对应的参数,可以帮你自动加很多功能,比如暂停,播放,快进快退,调节音量,全屏播放,下载等等.但是这种方式也有很多缺点,就是只支持H.264编码格式的mp4视频文件,导致其他格式的视频要想播放还需转码.而且…

网页中播放Flash

作者 佚名 文章来源 互联网 地址 http://www.eqing.com.cn/Article/Print.asp?ArticleID1543介绍 我们要在网页中正常显示flash内容&#xff0c;那么页面中必须要有指定flash路径的标签。也就是OBJECT和EMBED标签。OBJECT标签是用于windows平台的IE浏览器的&#xff0c;而…

网页播放Flash视频尝试的三种方式

本身不是写HTML代码的&#xff0c;但老板突然让解决播放器适配所有浏览器的问题&#xff0c;过程有点难受。 播放视频最开始是使用H5的video标签播放mp4视频&#xff0c;但是不支持IE 9以下的浏览器&#xff0c;找到的解决方案是html5media&#xff0c;但是在不支持video标签的…

SpringBoot + Vue前后端分离项目实战 || 五:用户管理功能后续

系列文章&#xff1a; SpringBoot Vue前后端分离项目实战 || 一&#xff1a;Vue前端设计 SpringBoot Vue前后端分离项目实战 || 二&#xff1a;Spring Boot后端与数据库连接 SpringBoot Vue前后端分离项目实战 || 三&#xff1a;Spring Boot后端与Vue前端连接 SpringBoot V…

呼叫中心语音外呼营销系统软件成企业首选

网络电话&#xff0c;云呼&#xff0c;电销&#xff0c;博主从事多年智能机器人&#xff0c;外呼中心技术开发。有问题找博主。电信诈骗是今年工信部讨论的热词&#xff0c;为了更好的规范通讯业务和市场&#xff0c;相继出台了许多规定&#xff0c;并做了严格规定与限制。为此…