我在播放广播电台时遇到了 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