Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Error handling 禁用vlc中的日志记录_Error Handling_Vlc_Libvlc_Vlcj - Fatal编程技术网

Error handling 禁用vlc中的日志记录

Error handling 禁用vlc中的日志记录,error-handling,vlc,libvlc,vlcj,Error Handling,Vlc,Libvlc,Vlcj,我正在编写一个程序,用vlc查看MJPEG流。当直接通过命令行运行vlc时,我得到错误消息[mjpeg@0x10203ea00]在图像中一次又一次找不到JPEG数据(使用不同的pid)。我想摆脱这个问题,因为我认为所有的文本输出都会使我的程序陷入困境(并且使我的文本输出在写入控制台5秒后无法看到) 我正在连接blue iris,并使用vlcj实现我的程序 http://10.10.80.39:8080/mjpg/cam1/video.mjpeg我已经尝试了所有可以找到的安静选项,将“详细度”设置

我正在编写一个程序,用vlc查看MJPEG流。当直接通过命令行运行vlc时,我得到错误消息
[mjpeg@0x10203ea00]在图像中一次又一次找不到JPEG数据(使用不同的pid)。我想摆脱这个问题,因为我认为所有的文本输出都会使我的程序陷入困境(并且使我的文本输出在写入控制台5秒后无法看到)

我正在连接blue iris,并使用vlcj实现我的程序

http://10.10.80.39:8080/mjpg/cam1/video.mjpeg
我已经尝试了所有可以找到的安静选项,将“详细度”设置为0,我不知道如何忽略此错误


我正在运行VLC2.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(我重定向)

您还可以在启动JVM时以通常的方式重定向
java
处理输出流。我希望能够通过编程实现这一点,而不必编写shell脚本

所以这不是一个理想的解决方案,但它对我来说是有效的(只在Linux上测试过)


[1]

如果我没有在问题中明确说明,则在运行程序时也会出现错误