fluent-ffmpeg将rtsp转flv后播放没声音怎么解决?

一个视频监控的功能需要视频,音频都在,使用fluent-ffmpeg讲rtsp流转换成flv格式,但是没有声音。改如何配置
当前代码如下:

后端node:

var express =  require("express");
var expressWebSocket = require("express-ws");
var ffmpeg = require("fluent-ffmpeg");
ffmpeg.setFfmpegPath("D:/ffmpeg/ffmpeg/bin/ffmpeg"); //本地windows
var webSocketStream = require("websocket-stream/stream");
var WebSocket = require("websocket-stream");
var http = require("http");
function localServer() {
    let app = express();
    app.use(express.static(__dirname));
    expressWebSocket(app, null, {
        perMessageDeflate: true
    });
    app.ws("/rtsp/:id/", rtspRequestHandle)
    app.listen(8888);
    console.log("express listened")
}
function rtspRequestHandle(ws, req) {
    console.log("rtsp request handle");
    const stream = webSocketStream(ws, {
        binary: true,
        browserBufferTimeout: 1000000
    }, {
        browserBufferTimeout: 1000000
    });
    let url = req.query.url;
    console.log("rtsp url:", url);
    console.log("rtsp params:", req.params);
    try {
        // ("-rtsp_transport", "tcp", "-buffer_size", "102400")
        ffmpeg(url)
            .addInputOption('-analyzeduration', '100000', '-max_delay', '1000000')
            .on("start", function () {
                console.log(url, "Stream started.");
            })
            .on("codecData", function () {
                console.log(url, "Stream codecData.")
                // 摄像机在线处理
            })
            .on("error", function (err) {
                console.log(url, "An error occured: ", err.message);
            })
            .on("end", function () {
                console.log(url, "Stream end!");
                // 摄像机断线的处理
            })
            .outputFormat("flv").videoCodec("copy")
        .audioBitrate(128).audioCodec('copy').audioChannels(1).audioFrequency(22050).audioQuality(0)
            .pipe(stream);   //noAudio(): 完全禁用音频
    } catch (error) {
        console.log(error);
    }

}
localServer();

前端使用的是flv.js:

  let players = flvjs.createPlayer({
                        type: "flv",
                        isLive: true,
                        hasAudio:true,
                        url: `ws://localhost:8888/rtsp/${index}/?url=${item.url}`
                    });
                    players.attachMediaElement(video);
                    players.load();
                    players.play();

求大佬解决,目前视频有的,但是没有声音

阅读 2k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题