Я использую node-rtsp-stream и jsmpeg для потоковой передачи и отображения видео с ip-камеры в браузере.Я получаю хорошее качество в VLC, используя адрес rtsp: //: 554 / Steaming / Channels / 102.Однако, когда я использую jsmpeg для отображения потока в браузере, его качество слишком низкое.
У меня машина с windows 10,
ip-камера не находится в моей локальной сети, поэтому доступ к ней осуществляется через Интернет (нет проблем в vlc),
Я попробовал некоторые варианты, как показано ниже, но не помогло.
wsPort: 9999,
width: 352,
height: 288,
fps: '24',
kbs: '2048k',
ffmpegOptions: { // options ffmpeg flags
'-stats': '', // an option with no neccessary value uses a blank string
'-r': 20, // options with required values specify the value after the key
'-q:v': 32, // quality video in scale [2, 32]
'-b': '2000K' // video bitrate
}
Вот мои исходные коды,
app.js
Stream = require('node-rtsp-stream')
stream = new Stream({
name: 'name',
streamUrl: rtspUrlAddress,
wsPort: 9999,
width: 352,
height: 288,
fps: '24',
kbs: '2048k',
ffmpegOptions: {
'-stats': '',
'-r': 20,
'-q:v': 32,
'-b': '2000K'
}
})
и index.html
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>rtsp-stream</title>
<div><canvas id="videoCanvas" width="352" height="288"></canvas></div>
<script type="text/javascript" src="jsmpeg.js"></script>
<script type="text/javascript">
var canvas = document.getElementById("videoCanvas");
var ws = new WebSocket("ws://localhost:9999")
var player = new jsmpeg(ws, {
canvas: canvas,
autoplay: true,
audio: false,
loop: true
});
</script>
</head>
<body>
<div class="jsmpeg" data-url=""></div>
</body>
</html>
Он не выдает никаких ошибок, поэтому кажется, что он передается без проблем.Любая помощь приветствуется.Заранее спасибо.