gpt4 book ai didi

error-handling - 禁用登录vlc

转载 作者:行者123 更新时间:2023-12-03 08:00:24 25 4
gpt4 key购买 nike

我正在编写一个程序来使用 vlc 查看 MJPEG 流。直接通过命令行运行 vlc 时,我收到错误消息 [mjpeg @ 0x10203ea00] No JPEG data found in image一遍又一遍(使用不同的pid)。我想摆脱这个,因为我认为所有的文本输出都使我的程序陷入困境(并且使我的文本输出无法看到,因为它在写入控制台后大约 0.5 秒就消失了)

我正在连接到 blue iris,并正在使用 vlcj 实现我的程序。
http://10.10.80.39:8080/mjpg/cam1/video.mjpeg我已经尝试了所有可以找到的安静选项,将详细程度设置为 0,我不知道如何忽略此错误。

我正在运行 vlc 2.1。该错误发生在多台计算机和多个操作系统上。

最佳答案

您根本无法禁用 vlc 或 vlc 所依赖的库可能发出的所有内容。并非您看到的所有日志/错误消息都可以通过设置 vlc 的日志级别来控制。

对我来说,问题主要是 libdvdnav 向 stderr 发送不相关的消息。

你说你正在使用 vlcj,我也想要一种方法来轻松地忽略我的 Java 应用程序内部的那些错误消息。使用最新的 vlcj-git(在撰写本文时),有一个实验性的 NativeStreams [1] 可能对您有所帮助的类(class)。

此类使用 JNA 包装“C”标准库并以编程方式重定向 native 进程 stdout 和 stderr 流中的一个或两个。

您不能像某些人所期望的那样简单地重定向 System.out 和 System.err,因为显然这些消息来自 JVM 之外的 native 代码,并且当然不使用 System.out 或 System.err。

您可以重定向到日志文件(可能会不断增长)或“/dev/null”。

不利的一面是,如果您重定向 native 流,您也不可避免地会重定向相应的 Java 流——您将丢失自己的应用程序输出。在我自己的应用程序中,这不是问题,因为我登录到 stdout(我不重定向),而我不想偶然转到 stderr(我重定向)的 vlc 消息。

您也可以只重定向您的 java启动 JVM 时以通常的方式处理输出流。我希望能够以编程方式执行此操作,而不必编写 shell 脚本。

所以这不是一个理想的解决方案,但它适用于我(仅在 Linux 上测试)。

[1] https://github.com/caprica/vlcj/blob/a95682d5cd0fd8ac1d4d9b7a768f4b5600c87f62/src/main/java/uk/co/caprica/vlcj/runtime/streams/NativeStreams.java

关于error-handling - 禁用登录vlc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22206863/

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