我正在编写一个程序以用vlc查看MJPEG流。当直接通过命令行运行vlc时,我[mjpeg @ 0x10203ea00] No JPEG data found in image
一遍又一遍(使用不同的pid)得到错误消息。我想摆脱这个问题,因为我认为所有文本输出都使我的程序陷入困境(并使文本输出在写入控制台后约0.5秒钟内看不到)
我正在连接蓝色虹膜,并正在用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]类可能会对您有所帮助。
此类使用JNA包装“ C”标准库,并以编程方式重定向本机进程stdout和stderr流中的一个或两个。
您不能像某些人期望的那样简单地重定向System.out和System.err,因为显然这些消息来自JVM之外的本机代码,并且这些消息当然不使用System.out或System.err。
您可以重定向到日志文件(可能会不断增长),也可以重定向到“ / dev / null”。
缺点是,如果您重定向本机流,那么也不可避免地重定向了相应的Java流-您将丢失自己的应用程序输出。在我自己的应用程序中,这不是问题,因为我登录到stdout(我不重定向),而我不想偶然发现的vlc消息发送到stderr(我重定向)。
您也可以java
在启动JVM时以通常的方式重定向流程输出流。我希望能够以编程方式执行此操作,而不必编写Shell脚本。
因此,它不是理想的解决方案,但对我有用(仅在Linux上进行了测试)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句