如何让FFmpeg在一行上连续写入进度

如何让FFmpeg在一行上连续写入进度

编码时,FFmpeg 每秒打印一个新行并显示进度,例如

frame=   31 fps=0.0 q=0.0 size=     152kB time=00:00:00.72 bitrate=1726.3kbits/s
frame=   59 fps= 57 q=0.0 size=     175kB time=00:00:01.90 bitrate= 751.1kbits/s
frame=   89 fps= 58 q=0.0 size=     204kB time=00:00:03.04 bitrate= 549.8kbits/s

对于大文件,这些行很快就会填满控制台屏幕。如果可能的话,我希望在一行上看到进度,也就是说每一秒同一行都会被更新的进度覆盖。

ffmpeg.org/trac/ffmpeg/ticket/2349

答案1

至少在 Windows 上,FFmpeg 需要 85 列才能正确打印进度。我使用注册表设置了此项

sp hkcu:console WindowSize 0x00190055 -t dword
sp hkcu:console ScreenBufferSize 0x03e80055 -t dword

相关内容