前端没办法直接把rtsp流引过来用 所以要借助node加ffmpeg来处理一下
解决方法:
1.下载FFmpeg 把其中的bin文件添加到系统环境变量中 百度一下如何安装配置这个
成功后的显示
2.npm install rtsp-ffmpeg
node中的server.js
const
express = require('express')
app = require('express')(),
server = require('http').Server(app),
io = require('socket.io')(server),
rtsp = require('rtsp-ffmpeg');
//这句不写就找不到打包后在index.html中引入的index_bundle.js这个文件
app.use(express.static(__dirname));
server.listen(6147, function(){
console.log('Listening on localhost:6147');
});
var uri = 'rtsp://192.168.0.47:8554/ds-test',
stream = new rtsp.FFMpeg({input: uri});
io.on('connection', function(socket) {
var pipeStream = function(data) {
socket.emit('data', data.toString('base64'));
};
stream.on('data', pipeStream);
socket.on('disconnect', function() {
stream.removeListener('data', pipeStream);
});
});
//加*是为了刷新过后能重定向到主页面不至于找不到页面
app.get('/*', function (req, res) {
res.sendFile(__dirname + '/index.html');
});
html
<img id="img">
<script src="/socket.io/socket.io.js"></script>
<script>
var img = document.getElementById('img'), socket = io(''); socket.on('data', function(data) { img.src = 'data:image/jpeg;base64,' + data; });
</script>
把node和ffmpeg装到服务器上配置好就能看到直播流