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

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。前端即可搞定。

    推荐阅读
  • 淮阳压缩馍的做法和配方(淮阳压缩馍的做法和配方分享)

    淮阳压缩馍的做法和配方主料:面粉200g辅料:五香粉适量、水适量、发酵粉适量、小苏打适量。备好面粉,将五香粉、发酵粉、苏打粉加水混合。静止半小时发至两倍大。将面团再次揉光滑排气。并分成大小相同的剂子备用。取出一小块剂子,搓成条并摆成兔子的形状。小刀切一个兔嘴。用笔芯按压一只眼睛。花朵型的,将面搓成长条,粘在一起。用刀切大小相等的片,将五小片捍在一起。电饼铛预热刷油,盖上盖子烤5分钟左右即可。

  • 母乳喂养怎么才能让宝宝安静(怎样才能让母乳喂养的宝宝成功转换到奶粉喂养)

    交替喂养不会影响宝宝的任何发育。妈妈需要把奶水挤出来以防胸部胀疼,随后用挤出来的奶水喂宝宝。要是母乳不够,再换成配方奶粉。

  • 我一天要睡22个小时表情包(关于睡不着的段子表情包)

    今晚能睡八小时还剩七小时了妈呀,只有六小时了卧槽,只剩五小时了只能睡四小时了不闹了,最好三小时珍惜最后两小时吧睡一个小时也比通宵强睡你麻痹,天亮了睡不着图片来自网络,版权归作者使用,特此说明,如有侵权,请与我们联系删除。保存图片到手机相册——打开微信——我——表情——右击进入表情管理——我添加的表情——点击——选择要添加表情图片——使用。这样就在微信表情里面了。

  • 两个人合伙买了推土机怎么办(买买买)

    魏兆雨17岁就背井离乡来到扬州闯荡,从事推土机施工这一行业差不多已经二十年了。歇息了一段时间后,魏兆雨东山再起,以满腔热忱再次杀回推土机施工这一行业。这还没完,更大的飞跃还在后面,就在2018年这一年,魏兆雨又一口气买了8台山推推土机,而且这次的型号升级换成了DH17。施工中的全液压推土机回忆起这次大手笔,魏兆雨的语气中并没有太大的激动,就像一切都是水到渠成。

  • 发动态被秒赞的短句(发动态被秒赞的句子精选)

    发动态被秒赞的短句?长大应该是变得温柔,对全世界都温柔。不为往事扰,余生只愿笑。总在开怀大笑时恍然若失,而脑内是冷嘲热讽的呓语。等到分不清季节更替,才敢说沉溺。生而敏感,孤独而快乐。我将永远忠于自己,披星戴月奔向理想和你。你是我疲惫生活的希望与糖。我们都太专注于自己的伤口,忘了要去握住别人伸出的手。你永远不知道自己有多坚强,直到有一天你除了坚强再无选择。

  • 2022南海免费孕前健康检查电子券怎么领取?

    符合申请条件的新婚和计划怀孕夫妇可登陆“南海通”APP或“佛山南海通”小程序领取!免费婚前孕前健康检查项目必须在15天内完成,如检查对象未在15天内完成免费项目,其余项目检查要自费。

  • 如何用手机上网(使用手机上网的方法)

    我们在手机里打开设置,进入到设置界面在设置界面中的“网络与连接”一栏中,找到“个人热点”点击点击按钮开启“便携式WLAN热点”,下面我们就来说一说关于如何用手机上网?我们一起去了解并探讨一下这个问题吧!点击按钮开启“便携式WLAN热点”。继续点击“设置WLAN热点”,编辑WLAN热点的名称和密码。

  • 手机如何查登机口 手机上怎么查航班登机口

    办理完值机手续后稍等一下,如行李中有可疑物品会提示要求开箱检查。随身行李中不要有液体和膏状物品。登机后找到登机牌上指定的座位,把行李箱放在座位上方的行李舱中或前排座位下,系好安全带,关闭手机等电子装置,等候飞机起飞。磁条登机牌需要在机场办理登机手续的柜台或值机亭安装昂贵的打印机,使旅客拿到登机牌的途径受限。

  • 豆包怎么做(豆包的做法)

    我们一起去了解并探讨一下这个问题吧!豆包怎么做食材:黄米面、玉米面,红小豆、发酵粉,白糖、桂花酱适量。将黄米面放入盆中,加入60度水温的水300g,将其和成面团(略软些),待凉后,把发酵粉用水懈开,再加入干面粉,倒入黄米面中和匀,饧几个小时;红豆淘洗干净,放入高压锅中压15分钟,压好后开盖加入白糖、少许素油,用力将红豆捣碎,放入适量桂花酱搅拌成豆沙。将面团取出下剂,包好豆沙馅入锅蒸12-15分钟即可。

  • 如何可以查看王者荣耀英雄的关系(查看王者荣耀英雄关系方法)

    下面希望有你要的答案,我们一起来看看吧!如何可以查看王者荣耀英雄的关系首先登录自己的游戏账号。最后点击,这样就可以看到英雄之间的关系了。英雄之间的关系只代表游戏,不代表历史!