我使用node-rtsp-stream和jsmpeg在浏览器中流和显示来自IP摄像机的视频。我使用rtsp://:554 / Steaming / Channels / 102地址在vlc中获得了良好的质量。但是,当我使用jsmpeg在浏览器中显示流时,其质量太低。
我的机器是Windows 10,
ip摄像机不在我的本地网络中,因此可以通过Internet访问它(在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>
它没有给出任何错误,因此它似乎没有问题。任何帮助表示赞赏。预先感谢。
我使用node-rtsp-stream和jsmpeg在浏览器中流和显示来自IP摄像机的视频。我使用rtsp://:554 / Steaming / Channels / 102地址在vlc中获得了良好的质量。但是,当我使用jsmpeg进行...
遇到相同的问题,并使用新版本的JSMpeg(jsmpeg.min.js)进行修复。还使用了node-rtsp-stream-es6。