如何使用ffmpeg仅将错误信息保存到指定日志文件中
ffmpeg仅保存错误日志到指定文件的正确实现
之前命令失效的原因
FFREPORT是系统环境变量,不是ffmpeg的内置参数,不能直接拼接在ffmpeg命令的参数位中,否则会被识别为输入/输出文件路径导致配置不生效- 后续使用的
-report =file=test.log参数存在格式错误,参数与值之间不能加空格,错误的写法导致自定义文件名、日志级别配置未生效,ffmpeg会使用默认的report规则生成日志,自然出现内容不匹配、文件名不符合要求的问题
正确可用的实现方案
方案1:使用FFREPORT环境变量(会自带ffmpeg执行元信息,比如命令行参数、进程号、执行时间等)
执行时将环境变量声明放在ffmpeg命令之前即可:
FFREPORT=file=test.log:level=16 ffmpeg [你的其他ffmpeg参数]
说明:ffmpeg报告的日志级别取值中,16对应error级别,仅会记录错误信息到指定的test.log文件中,文件名完全匹配你指定的名称。
方案2:使用日志级别参数+标准错误流重定向(更轻量,无额外元信息)
ffmpeg的所有日志默认输出到标准错误流(文件描述符2),直接重定向即可:
ffmpeg [你的其他ffmpeg参数] -v error 2> test.log
说明:
-v error等价于-loglevel error,指定仅输出错误级别的日志,2> test.log把标准错误流的内容写入test.log,不会输出到终端,也不会包含其他级别的日志。
内容的提问来源于stack exchange,提问作者user12733526
相关产品推荐
相关产品推荐

