Качество node-rtsp-stream в браузере низкое, несмотря на хорошее качество в vlc - PullRequest
0 голосов
/ 10 июля 2019

Я использую 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>

Он не выдает никаких ошибок, поэтому кажется, что он передается без проблем.Любая помощь приветствуется.Заранее спасибо.

...