带有 RTSP 输入 libx264 解码错误的 ffmpeg

ffmpeg with rtsp input libx264 decoding error

提问人:Garry Jassal 提问时间:11/8/2023 最后编辑:PaoloGarry Jassal 更新时间:11/8/2023 访问量:20

问:

我们目前有一个 rtsp 流 ,我们正在尝试在网络浏览器中显示它。我们使用了 node-ffmpeg 并从设备获取流并使用 websocket 发布它。我们从设备获取的流使用 libx264 作为编码器,但我们遇到了错误。

这就是我们正在努力实现的目标。

const ffmpeg = spawn('ffmpeg', [
  '-i', 'rtsp://IP_ADDRESS:PORT_NUMBER/test',
  '-pix_fmt', 'yuv420p',
  '-c:v','libx264',
  '-f' ,'flv',
  '-b:v','1000k',
  '-r', '30',
  '-'
]);

显示的错误是:“未知编码器 libx264”。

这是我们尝试的替代方案,但面临另一个问题。

const ffmpeg = spawn('ffmpeg', [
  '-i', 'rtsp://IP_ADDRESS:PORT_NUMBER/test',
  '-pix_fmt', 'yuv420p',
  '-c:v','mpeg1video',
  '-f' ,'mpegts',
  '-b:v','1000k',
  '-r', '30',
  '-'
]);

我们使用了编码器“MPEG1video”和格式“MPEGTS”。流正在显示,但由于它不是 h264 编码器,因此显示像素的流与分辨率不兼容,我们得到的流具有“yuv420p”像素格式。我们得到的错误是:

[h264 @ 0x563e3a9d16c0] 解码 MB 47 16 时出错,字节流 -19

[h264 @ 0x563e3a9d16c0] 隐藏 6242 DC、6242 AC、6242 MV 错误 我框架

帧=30477 fps= 17 q=31.0 大小= 300142kB 时间=00:29:47.96 比特率=1375.2kbits/s 速度 = 最大 1x [RTSP @ 0x563e3a991e60] 已达到延迟。需要消耗数据包

[rtsp @ 0x563e3a991e60]RTP:丢失 6 个数据包

我们在 cavas 播放器中以 html 格式显示流,我们通过 websocket 接收流并显示它。

var player = new JSMpeg.Player('ws://localhost:9004', {
    canvas: canvas,
    disableGl: true,
    videoBufferSize: 1024*1024*8
});

请告诉是否有人对此有解决方案。

节点.js ffmpeg rtsp

评论


答: 暂无答案