gpt4 book ai didi

java - 使用 JavaCV 库接收 RTSP 流

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:58:55 29 4
gpt4 key购买 nike

我目前正在尝试从网络上的 IP 摄像机获取 RTSP 流,以便我可以将面部识别算法应用于帧(为此我正在使用 JavaCV 库)。

当我尝试获取 RTSP 流时,我开始收到错误消息,具体取决于我尝试使用的方法。

这里是应该工作的代码:

try {
FFmpegFrameGrabber streamGrabber = new FFmpegFrameGrabber("rtsp://admin:12345@(ip)/ch1/main/av_stream");
streamGrabber.setFormat("h264");
streamGrabber.setFrameRate(30);
streamGrabber.setImageWidth(getWidth());
streamGrabber.setImageHeight(getHeight());
streamGrabber.start();
} catch (Exception e) {
e.printStackTrace();
}

那段特定的代码给了我这个错误:

org.bytedeco.javacv.FrameGrabber$Exception: avformat_open_input() error -1330794744: Could not open input "rtsp://admin:12345@192.168.64.96/ch1/main/av_stream". (Has setFormat() been called?)
at org.bytedeco.javacv.FFmpegFrameGrabber.startUnsafe(FFmpegFrameGrabber.java:393)
at org.bytedeco.javacv.FFmpegFrameGrabber.start(FFmpegFrameGrabber.java:341)
at main.FaceApplet.init(FaceApplet.java:87)
at sun.applet.AppletPanel.run(AppletPanel.java:425)
at java.lang.Thread.run(Thread.java:695)

我试过:

  • 改用 OpenCVFrameGrabber - 错误提示“无法创建相机捕获”

  • 使用 IPCameraFrameGrabber - 需要 http url

  • 改变协议(protocol):

    • FTP:身份验证失败

    • TCP:卡住程序

    • UDP:身份验证失败

我做错了什么,这是代码问题还是相机问题?

最佳答案

更新

我终于让它工作了……神奇的公式似乎是使用 FFMpeggrabber 来获取流……为避免错误,只是不要使用该函数设置视频格式。初始化代码应如下所示:

streamGrabber = new FFmpegFrameGrabber("rtsp://admin:12345@(ip):554/live.sdp");
streamGrabber.setFrameRate(30);
streamGrabber.setImageWidth(getWidth());

try {
streamGrabber.start();
} catch (FrameGrabber.Exception e) {
e.printStackTrace();
}

关于java - 使用 JavaCV 库接收 RTSP 流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31034161/

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