百摩网
当前位置: 首页 生活百科

rtsp如何调试(rtsp流浏览器播放方案)

时间:2023-06-02 作者: 小编 阅读量: 1 栏目名: 生活百科

rtsp流在主流浏览器并不支持直接播放。但在浏览器会报ERR_UNKNOWN_URL_SCHEME。以下列出几种方案。由于flash目前大多浏览器默认禁用,不推荐此方式。另外nginx-rtmp-module也支持HLS协议,可以搭建基于hls的直播服务器。e.websocket代理推送,FFMPEG转码此方法与a,b类似。

rtsp流在主流浏览器并不支持直接播放。比如大华的视频流:rtsp://admin:123456@192.168.10.129/cam/realmonitor?channel=1&subtype=0,用vlc可以直接播放。但在浏览器会报ERR_UNKNOWN_URL_SCHEME。那如何在浏览器中播放呢。

以下列出几种方案。

1、安装插件(chrome最新版基本都不支持)

类如:kurento,vlc插件(谷歌浏览器版本41以下),vgx插件(不支持高版本,chrome72.0版本可用)等。

2、安装软件(中间件,基本都付费)类如:Appemit(调用vlc插件播放rtsp),可以免安装的,目前只能windows,免费版会有提示。

猿大师中间件(底层调用VLC的ActiveX控件,实现在主流浏览器网页中内嵌播放多路RTSP的实时视频流),中间件收费的。

PluginOK(牛插)中间件。底层调用ActiveX控件VlcOcx.dll。(商业用途需付费使用)

3、服务器拉流转发及协议转换

示意图如下所示:

推流--------------服务器转发--------------拉流

方法一览:

a,vlc软件串流到http协议,网页显示几个视频需启动几个vlc,只适合应急场景。

b,html5websocket_rtsp_proxy 实现视频流直播,基于MSE(Media Source Extensions,W3C),扩展H5的功能。

步骤:服务器安装streamedian服务器,客户端通过video标签播放。

原型图:

价格:

c.基于nginx的rsmp转发

基于nginx实现rtmp转化,用flash实现播放。由于flash目前大多浏览器默认禁用,不推荐此方式。

步骤:安装ffmpeg工具,安装nginx。

另外nginx-rtmp-module也支持HLS协议,可以搭建基于hls的直播服务器。

d.rtsp转hls播放,通过ffmpeg转码

步骤:安装ffmpeg工具,ffmpeg转码。

形如:

ffmpeg -i "rtsp://admin:123456@192.168.10.129/cam/realmonitor?channel=1&subtype=0" -c copy -f hls -hls_time 2.0 -hls_list_size 0 -hls_wrap 15 "D:/hls/test.m3u8"

缺点是直播流延时很大,对实时要求比较高的不满足要求。

案例:基于EasyDarwin拾建转码服务器。

通过存储的m3u8去读取。

e.websocket代理推送,FFMPEG转码

此方法与a,b类似。但更实用。

以下提供两种方案:

(1)Gin WebSocket FFMPEG实现rtsp转码

通过FFMPEG把rstp转成http,ginrtsp作为转发服务器,但需要自己写相应接口,需要了解go语言。

(2)nodeffmpegwebsocketflv.js

步骤:在node服务中建立websocket;通过fluent-ffmpeg转码,将RTSP 流转为flv格式;通过flv.js连接websocket,并对获取的flv格式视频数据进行渲染播放。

import WebSocket from 'ws'import webSocketStream from 'websocket-stream/stream'import ffmpeg from 'fluent-ffmpeg'// 建立WebSocket服务const wss = new WebSocket.Server({ port: 8888, perMessageDeflate: false })// 监听连接wss.on('connection', handleConnection)// 连接时触发事件function handleConnection (ws, req) {// 获取前端请求的流地址(前端websocket连接时后面带上流地址)const url = req.url.slice(1)// 传入连接的ws客户端 实例化一个流const stream = webSocketStream(ws, { binary: true })// 通过ffmpeg命令 对实时流进行格式转换 输出flv格式const ffmpegCommand = ffmpeg(url).addInputOption('-analyzeduration', '100000', '-max_delay', '1000000').on('start', function () { console.log('Stream started.') }).on('codecData', function () { console.log('Stream codecData.') }).on('error', function (err) {console.log('An error occured: ', err.message)stream.end()}).on('end', function () {console.log('Stream end!')stream.end()}).outputFormat('flv').videoCodec('copy').noAudio()stream.on('close', function () {ffmpegCommand.kill('SIGKILL')})try {// 执行命令 传输到实例流中返回给客户端ffmpegCommand.pipe(stream)} catch (error) {console.log(error)}}

优点全部基于js。前端即可搞定。

    推荐阅读
  • 猫咪掉毛严重是怎么了(猫咪掉毛太过严重)

    建议:要定期给猫咪体内外驱虫,体内驱虫建议4·6个月进行一次,体外驱虫建议2~5个月进行一次。

  • 现在水痘疫苗是全民打吗(广东已进入水痘多发季专家提醒)

    专家表示,市民接种两剂次的水痘疫苗能更好地预防水痘。水痘是由水痘—带状疱疹病毒感染引起的疾病,主要通过呼吸道传播。何剑峰表示,接种疫苗是预防水痘最经济、最便捷、最有效的方法。研究表明,接种1剂次水痘疫苗的保护效果约为70%,接种2剂次保护效果接近100%。疾控专家提醒,中小学及托幼机构是发生水痘疫情的高危场所,学校要加强水痘的防控工作,一旦发现病例须及早严格隔离。

  • 全国人都知道的陕西方言(最全陕西方言解释)

    陕西-天南地北,地阔方圆。陕西-13朝古都的文化底蕴,天子脚下肯定使得民风强悍,秦腔喉起来。陕西话的特色声大、直爽、淳朴,简单的方言形容词加上声势动作,确实算个“生顶硬噌”地道老陕。

  • 五子棋思维分析(注意力训练小工具------五子棋)

    被替换的棋子可以和对方交换棋子。最后以先出完所有棋子的一方为胜。第二个逻辑思维能力。逻辑思维说白了就是一种算法,需要反复推理、验证,才能达到自洽。三岁以上的孩子都能玩,不同年龄段,认知能力不一样,可以根据孩子的特点调整你自己的水平。其实,最主要的还是日常的生活、学习环境,潜移默化的力量才是最强大的。

  • 湿热体质的症状和调养方法(湿热体质怎么改善)

    内湿,则是身体内部,属于病理性变化,在中医看来,内湿与消化有关,中医认为脾有运化水湿的能力,一旦消化不良、暴饮暴食、饮食不当,容易造成脾脏受损。能够耗费体内剩余的热量,分泌剩余的水分,到达清热除湿的目的。禁忌辛辣,大热大补的食物和饮品。祛湿小方子01薏米赤小豆汤材料:薏米30~50克、赤小豆30~50克。以上所列食材为中年人用量,老年人应适当减量。

  • 梦见地震后山体垮塌(梦见地震后山体垮塌了)

    1、梦见地震山体垮塌,预示着财运不错,可能加薪,也会发现不少潜在的赚钱机会。

  • 一北京女生网恋外地男友染上艾滋(女子与相亲对象约三亚第一次见面)

    女子与相亲对象约三亚第一次见面,因疫情隔离同居,网友:在一起。男子希望多隔离几天,双喜临门。还是网友的想象力和评论比新闻更有看头。看来这对在三亚相亲的男女,非常感谢新冠病毒玉成好事!七夕刚过去,因疫情两人情定三亚,这是缘份愿有情人终成眷属。疫情被迫做媒,三亚为新房,有情人终成眷属。广大网友以后相亲见面要去海南[偷笑][偷笑][偷笑]。

  • 原创落寞之夜(长廊沉)

    《长廊沉默》蔡少铭你拥抱的是一湖春水,抑或是无波的沉沙?当湖床象一个干涸的男性,在堕落中将本来面目显露。你,长长的石栏,有些微的震颤么?静寂的干旱,一种壮阔的枯槁慢慢展现,如一卷人类进化史,揭示某些生存和绝灭:鲸鱼从大陆退到海里哺乳;猿猴逃到平原直起腰身……移开视线,这里曾有鱼的生命,水草和游泳者的裸体。水像迁徙的黎民。水像亘古的泪滴。听见时隐时现的啜泣?长廊无语,唯有青藤爬上石栏,摇曳。

  • 施工许可制度的原理(施工许可法律制度)

    1Z301020建设工程施工许可制度(按建筑法规定,工程开工前,建设单位应当向工程所在地县级以上人民政府建设行政主管部门申请领取施工许可证。

  • 华为nfc制作门禁卡(快来看看)

    接下来我们就一起去了解一下吧!华为nfc制作门禁卡首先在桌面上打开“钱包”并登录你的账号。模拟门钥匙功能,或者模拟社区门禁,根据提示完成模拟门禁卡设置。然后打开手机的NFC功能就可以使用手机刷门禁了。