我正在尝试在网页内获取 RTSP 流,但实际上没有成功。
为此,我完全遵循了 JSMpeg 的教程:https://github.com/phoboslab/jsmpeg
使用自定义 FFMPEG 命令:
ffmpeg -i "rtsp://myurl/media.smp" \
-vcodec h264 -f mpegts -codec:v mpeg1video -s 1290x980 -b:v 8000k \
-r 25 -max_muxing_queue_size 9999 http://localhost:8081/supersecret
我的 websocket 可以很好地接收我的连接。
奇怪的是,当我用 false 更改 websocket url 时,在我的代码中,画布会变成黑色。
所以我猜当它收到东西时它会变成白色。
感谢帮助
您很可能已经解决了这个问题,只需将这些问题留在这里供其他遇到相同问题的人使用。
就我而言,我忘记了在新创建的流对象上调用
start()
。
下面的函数是我创建的对象的一部分,用于跟踪实例化中的流,对于多客户端多流情况很有用。
createStream: async function (rtspURL) {
const myPort=9999
console.log(`Assigning port ${myPort} to new stream` );
try {
this.streams[rtspURL] = new Stream({
name: 'stream:'+rtspURL,
url: rtspURL,
wsPort: myPort
});
console.log("New stream instance created");
console.log(this.streams[rtspURL] );
this.streams[rtspURL].start();
return myPort;
} catch (error) {
console.error("Error while instanciating new stream")
}
}