当前位置: 首页 > news >正文

佛山网站建设培训django做的网站模板

佛山网站建设培训,django做的网站模板,电子商务网站建设的难点,自己怎么做关键词优化概述 这里记录一下如何让前端播放rtsp协议的视频流 ​ 项目中调用海康API#xff0c;生成的视频流(hls、ws、rtmp等)通过PotPlayer播放器都无法播放#xff0c;说明视频流有问题#xff0c;唯独rtsp视频流可以播放。 但是浏览器本身是无法播放rtsp视频的#xff0c;即使…概述 这里记录一下如何让前端播放rtsp协议的视频流 ​ 项目中调用海康API生成的视频流(hls、ws、rtmp等)通过PotPlayer播放器都无法播放说明视频流有问题唯独rtsp视频流可以播放。 但是浏览器本身是无法播放rtsp视频的即使是使用videojs、flvjs等工具。 ​ 网上的方案都是通过后端基于ffmpeg工具进行转码。那么我的理解是后端Node起到的是中转作用调用ffmpeg工具对传入的rtsp流进行转码再传给前端 这里记录整个过程与出现的问题解决 准备 需要三部分的准备 ffmpeg工具nodeJS转码前端播放 ffmpeg安装与配置 下载ffmpeg https://ffmpeg.org/download.html 下载并解压完成后 我这里放在 D:\DevelopSoftware\ffmpeg 配置环境变量 我的电脑 属性 高级系统设置 环境变量 Path 添加 D:\DevelopSoftware\ffmpeg\bin 打开cmd输入 ffmpeg 或者 ffmpeg -version 出现东西就说明OK了 如果 ffmpeg 不是内部或外部命令也不是可运行的程序或批处理文件, 重启cmd窗口, 还是不行的话网上搜一下吧 本节参考自 ffmpeg安装教程windows版 nodejs编写转码服务 先随便建个文件夹 npm i express express-ws fluent-ffmpeg websocket-stream 或者 yarn add express express-ws fluent-ffmpeg websocket-stream 新建 index.js var express require(express) var expressWebSocket require(express-ws) var ffmpeg require(fluent-ffmpeg) var webSocketStream require(websocket-stream/stream) var WebSocket require(websocket-stream) var http require(http)ffmpeg.setFfmpegPath(ffmpeg)// config let rtspServerPort 2156function localServer() {let app express()app.use(express.static(__dirname))expressWebSocket(app, null, {perMessageDeflate: true})// :id是动态参数, 前端调用时传递, 可以去掉app.ws(/rtsp/:id/, rtspRequestHandle)app.listen(rtspServerPort)console.log(express listened on port : rtspServerPort) }function rtspRequestHandle(ws, req) {console.log(rtsp request handle)const stream webSocketStream(ws,{binary: true,browserBufferTimeout: 1000000},{browserBufferTimeout: 1000000})let url req.query.urlconsole.log(rtsp url:, url)console.log(rtsp params:, req.params)try {ffmpeg(url).addInputOption(-rtsp_transport, tcp, -buffer_size, 102400) // 这里可以添加一些 RTSP 优化的参数.on(start, function () {console.log(url, Stream started.)}).on(codecData, function () {console.log(url, Stream codecData.)// 摄像机在线处理}).on(error, function (err) {console.log(url, An error occured: , err.message)}).on(end, function () {console.log(url, Stream end!)// 摄像机断线的处理}).outputFormat(flv).videoCodec(copy).noAudio().pipe(stream)} catch (error) {console.log(error)} }localServer()运行 node index.js 前端调用转码服务 新建 demo.html !DOCTYPE html htmlheadmeta http-equivContent-Type contenttext/html; charsetutf-8 /script srchttps://cdn.bootcdn.net/ajax/libs/flv.js/1.6.2/flv.min.js/script!-- script src./js/flv.min.js/script--stylebody,center {padding: 0;margin: 0;}.v-container {width: 640px;height: 360px;border: solid 1px red;}video {width: 100%;height: 100%;}/style/headbodydiv classv-containervideo idplayer1 muted autoplayautoplay preloadauto controlscontrols/video/divscriptif (flvjs.isSupported()) {var videoElement document.getElementById(player1)var flvPlayer flvjs.createPlayer({type: flv,url: ws://localhost:2156/rtsp/111/?urlrtsp://xxx.xxx.xxx:554/openUrl/jmQgiJi})flvPlayer.attachMediaElement(videoElement)flvPlayer.load()}/script/body /html这两节源自 rtsp视频服务 基于nodeffmpeg 转换为 flv 视频服务 videojs flvjs使用 yarn add video.js flv.js videojs-flvjs-es6 import videojs from video.js import flvjs from flv.js import video.js/dist/video-js.css import videojs-flvjs-es6let myPlayerconst initVideo (videoUrl) {// videojs初始化myPlayer videojs(document.querySelector(#videoBox), // video元素, vue2或vue3推荐使用ref方式{// poster: //vjs.zencdn.net/v/oceans.png,autoplay: muted, //自动播放controls: true, //用户可以与之交互的控件loop: true, //视频一结束就重新开始muted: true, //默认情况下将使所有音频静音// aspectRatio: 16:9, //显示比率techOrder: [html5, flvjs], // 兼容顺序flvjs: {mediaDataSource: {cors: true,withCredentials: false,},},controlBar: {remainingTimeDisplay: {displayNegative: false,},},playbackRates: [0.5, 1, 1.5, 2],},function onPlayerReady() {this.on(play, function () {console.log(视频开始播放)})this.on(pause, function () {console.log(视频暂停播放)})this.on(error, function () {console.log(加载错误)isError.value true})})// 播放myPlayer.reset()myPlayer.src({src: ws://localhost:2156/rtsp/?url videoUrl,type: video/x-flv,})// myPlayer.load(ws://localhost:2156/rtsp/1/?urlrtsp://xxxx:554/openUrl/rMYr6w0)myPlayer.play() }video refvideoPlayer idvideoBox stylewidth:100%;height:100%;/video总结 海康平台支持多种协议的视频流如果流无法播放可能是设备配置或者分辨率或者… 出了问题 这种事情当然是让后端去处理咯是跟厂商联调还是怎么着关我前端啥事儿把精力用到更有意义的地方才是正解例如像我一样水一篇文章 Nice 当然尽量直接使用海康平台API返回的流转码始终是下策。 感谢各大佬的文章: rtsp视频服务 基于nodeffmpeg 转换为 flv 视频服务 ffmpeg安装教程windows版
http://www.hkea.cn/news/14496521/

相关文章:

  • 网站模拟效果营销和销售的区别
  • 网站的设计页面插件功能wordpress
  • 广州企业网站找哪里建工网首页
  • 网站设计和建设自考题公司网站建设计划
  • 网站建设CEO微信公众号排版app
  • 厦门网站建设114帮人做任务的网站
  • 潍坊制作网站的公司天元建设集团有限公司租赁公司
  • 如何将自己做的网站变成中文网站建设和微站建设的区别
  • 网站做支付功能服装类电子商务网站建设报告
  • 网站建设合同书-详细版怎么做网页设计稿
  • 建设银行龙卡信用卡在境外网站支付建设营销型网站哪家好
  • 网站备案流程和规则郑州医院排名第一妇科
  • 英语网站 php源码购物网站哪个最好
  • 网站打不开是什么原因plc培训机构哪家最好
  • 电子商务网站建设的盈利模式优酷网站建设有何特点
  • 潍坊网站建设 世纪环球16楼上海到北京的火车
  • 惠州网站建设翻译罗店网站建设
  • 室内装饰网站模板昆明做网站建设的公司排名
  • 大型门户网站建设哪专业亦庄建设局网站
  • 资讯门户网站 dede在阿里巴巴上做网站需要什么
  • AD这个软件做网站用得着吗wordpress如何修改顶部栏
  • 电子商务网站和普通网站的区别网站建设什么代码最简单
  • 网站界面设计起着决定性作用免费主页空间申请网站
  • 洛阳建设企业网站织梦网站安装出现404 not found
  • 吉安做网站公司网站怎么重建
  • 数码印花图案设计网站网页设计和网站开发有什么区别
  • 住房城乡建设部官网站有网络但是网页打不开
  • 河南省南阳市建设局网站郑州百度推广外包
  • 织梦网站图片修改做宴会网站
  • 松江新城投资建设有限公司网站义乌购app下载