gpt4 book ai didi

ffmpeg - 使用 Xuggler : org. ffmpeg 显示 RTSP-Stream - [h264 @ 15AC7660] 错误,同时解码 MB 34 60,字节流 (td)

转载 作者:行者123 更新时间:2023-12-04 22:48:36 26 4
gpt4 key购买 nike

我是显示 RTSP-Streams 和 Xuggler 的新手,所以我真的不知道该怎么做。

我正在尝试在 Java-Swing 窗口中显示我的 IP 摄像机的主流并得到这个:

enter image description here

我也收到这些错误:

13:21:45.941 [main] ERROR org.ffmpeg - [h264 @ 15AC7660] error while decoding MB 8 7, bytestream (td)
17:47:04.192 [main] ERROR org.ffmpeg - [h264 @ 15AC7660] error while decoding MB 34 60, bytestream (td)
17:47:04.192 [main] ERROR org.ffmpeg - [h264 @ 15AC7660] error while decoding MB 8 36, bytestream (td)
17:47:04.192 [main] ERROR org.ffmpeg - [h264 @ 15AC7660] error while decoding MB 68 62, bytestream (td)
17:47:04.192 [main] ERROR org.ffmpeg - [h264 @ 15AC7660] error while decoding MB 118 38, bytestream (td)
17:47:04.192 [main] ERROR org.ffmpeg - [h264 @ 15AC7660] error while decoding MB 60 62, bytestream (td)
17:47:04.192 [main] ERROR org.ffmpeg - [h264 @ 15AC7660] cabac decode of qscale diff failed at 1 7
13:21:46.940 [main] ERROR org.ffmpeg - [h264 @ 15AC7660] error while decoding MB 1 7, bytestream (td)
17:47:04.192 [main] ERROR org.ffmpeg - [h264 @ 15AC7660] error while decoding MB 28 37, bytestream (td)
17:47:04.192 [main] ERROR org.ffmpeg - [h264 @ 15AC7660] error while decoding MB 18 35, bytestream (td)
17:47:04.192 [main] ERROR org.ffmpeg - [h264 @ 15AC7660] error while decoding MB 17 41, bytestream (td)
17:47:04.192 [main] ERROR org.ffmpeg - [h264 @ 15AC7660] error while decoding MB 53 32, bytestream (td)
17:47:04.192 [main] ERROR org.ffmpeg - [h264 @ 15AC7660] error while decoding MB 31 29, bytestream (td)
17:47:04.192 [main] ERROR org.ffmpeg - [h264 @ 15AC7660] error while decoding MB 21 29, bytestream (td)
17:47:04.192 [main] ERROR org.ffmpeg - [h264 @ 15AC7660] left block unavailable for requested intra mode at 0 35
13:21:49.902 [main] ERROR org.ffmpeg - [h264 @ 15AC7660] error while decoding MB 0 35, bytestream (td)
17:47:04.192 [main] ERROR org.ffmpeg - [h264 @ 15AC7660] error while decoding MB 17 21, bytestream (td)
17:47:04.192 [main] ERROR org.ffmpeg - [h264 @ 15AC7660] error while decoding MB 46 10, bytestream (td)
17:47:04.192 [main] ERROR org.ffmpeg - [h264 @ 15AC7660] error while decoding MB 109 28, bytestream (td)
17:47:04.192 [main] ERROR org.ffmpeg - [h264 @ 15AC7660] error while decoding MB 60 10, bytestream (td)
17:47:04.192 [main] ERROR org.ffmpeg - [h264 @ 15AC7660] error while decoding MB 11 14, bytestream (td)
17:47:04.192 [main] ERROR org.ffmpeg - [h264 @ 15AC7660] error while decoding MB 101 9, bytestream (td)
17:47:04.192 [main] ERROR org.ffmpeg - [h264 @ 15AC7660] error while decoding MB 76 9, bytestream (td)
17:47:04.192 [main] ERROR org.ffmpeg - [h264 @ 15AC7660] error while decoding MB 86 11, bytestream (td)
17:47:04.192 [main] ERROR org.ffmpeg - [h264 @ 15AC7660] error while decoding MB 60 24, bytestream (td)



这是我使用的代码的一部分:
private IMediaListener mediaListener = new MediaListenerAdapter() {

@Override
public void onVideoPicture(IVideoPictureEvent event) {
try {
BufferedImage bi = event.getImage();
if (bi != null)
updateWindow(bi);
} catch (Exception ex) {
LOG.error("Error getting Image from IVideoPictureEvent: " + ex);
}
}
};

public DisplayWindow() {
display();
}

private void display() {
IMediaReader mediaReader = ToolFactory
.makeReader("rtsp://user:password@192.168.1.22:554/Streaming/Channels/1");

mediaReader
.setBufferedImageTypeToGenerate(BufferedImage.TYPE_3BYTE_BGR);
mediaReader.setQueryMetaData(false);
mediaReader.addListener(mediaListener);

openWindow();

while (true) {
IError error = null;
if(mediaReader != null){
error = mediaReader.readPacket();
if(error != null){
LOG.error("Error at mediaReader.readPacket(): " + error);
}
}
}
}

显示子流(分辨率较低)效果很好。

我将 Xuggler 5.4 与 Maven 一起使用。

这个问题可能有一个简单的解决方案,但我搜索了整个互联网并没有找到,所以我很感激任何帮助。谢谢!

更新:我也很高兴(免费!)Xuggler 的替代品。

最佳答案

我通过强制 TCP 传输使用 HIKVision 相机修复了此错误。要强制 TCP,需要手动创建 IContainer 并在 IMetaData 中传递设置:

    IMetaData im = IMetaData.make();
im.setValue("rtsp_transport", "tcp");

IContainer streamContainer = IContainer.make();
int result = streamContainer.open("rtsp://user:password@192.168.1.22:554/Streaming/Channels/1", IContainer.Type.READ, null, true, false, im, null);

if (result < 0) {
// Error
}

IMediaReader mediaReader = ToolFactory.makeReader(streamContainer);

关于ffmpeg - 使用 Xuggler : org. ffmpeg 显示 RTSP-Stream - [h264 @ 15AC7660] 错误,同时解码 MB 34 60,字节流 (td),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36498689/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com