如何仅记录来自 FFplay.exe 的错误和警告?

如何仅记录来自 FFplay.exe 的错误和警告?

我在播放广播电台时遇到了 FFPlay 偶尔挂断的问题。我想记录它遇到的任何警告或错误,看看是否可以采取任何措施来纠正此问题。使用命令行选项-report有效,但(如文档中所述)它默认为调试(48)级别,其中包括不间断的数据流。将-loglevel警告与 结合使用-report不起作用——级别仍为 48。

文档说 loglevel 输出到 stderr,这似乎是真的——CreatePipe()只要级别设置为 info (32) 或更高,我就可以用来捕获 stderr,但如果级别设置为 warning 或更低,stderr除非报告了警告/错误,否则我无法读取,因此启动 ffplay 的父程序会在缓冲区为空时挂起。我尝试使用,仅在有内容可读时WaitForSingleObject(pipereadhandle,0)调用,但它总是返回信号。ReadFile()

我更希望 ffplay 只记录警告和错误,但似乎无法让它写入没有 的文件-report,这会覆盖指定的级别。或者,如果我只在有内容时读取 stderr 缓冲区,问题就会解决。有什么想法吗?

答案1

你可以使用 ffplay 以 Unix 风格记录错误

ffplay your_file.mp4 2> error_log.txt

相关内容