rtsp转码服务器原理,关于rtsp转码rtmp播放的两种方式,客户端直接转,远程服务器转...

本文介绍了如何将RTSP流转换为能在浏览器和手机上播放的RTMP、MP4等格式。提供了两种解决方案:1) 使用Electron和FFmpeg模块在客户端进行转码并利用NodeMediaServer播放;2) 在服务器端通过Docker容器运行SRS-Transcode-Server进行转码,然后通过SRS分发RTMP流并转换为m3u8供移动端播放。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求

一、场景

用户多家门店有监控探头,设备是海康的和大华的。用户总部和门店不在一个网络下,并且总部要能实时调用查看门店监控,和门店回放画面。我们知道监控摄像机获取的视频是 rtsp 流的格式。 只能在特用的软件中播放,并且只能在相同的网络下播放。用户要求开发一个管理软件根据业务需要来播放视频。最终的目地是要把rtsp 流视频 转换为能在浏览器,手机等主流的播放渠道上能播放的视频(rtmp,mp4,flv,m3u8等格式);

解决办法

(1)、客户端转码

我们用electron 来打包客户端,客户端中安装一个在线转码ffmpeg 模块,这个模块中有功能接口能直接对rtsp 进行转码(这种场景主要给 播放软件和门店在一个网络下能直接连接的场景);

用到两个模块 “fluent-ffmpeg” “node-media-server”

fluent-ffmpeg 转码模块

我们用这个模块转码为rtmp 直播流,转码后推送到一个我们在软件内部搭建的一个rtmp 直播流服务器地址

“rtmp://localhost:1938/live/livestream”

node-media-server 模块做rtmp直播流服务器

上面的fluent-ffmpeg 模块转码推送rtmp 流到这个服务器rtmp://localhost:1938/live/livestream,

到此rtsp被本地转换为了 rtmp流了。 由于rtmp流可以在浏览器中播放, 我们找一个播放器播放这个地址即可。 能播放rtmp流的播放器很多。 我用了一个阿里的flash 播放器来播放可行。

# electron main.js 部分功能代码

const ffmpeg = require('fluent-ffmp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值