![如何让FFmpeg在一行上连续写入进度](https://linux22.com/image/1355017/%E5%A6%82%E4%BD%95%E8%AE%A9FFmpeg%E5%9C%A8%E4%B8%80%E8%A1%8C%E4%B8%8A%E8%BF%9E%E7%BB%AD%E5%86%99%E5%85%A5%E8%BF%9B%E5%BA%A6.png)
编码时,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
对于大文件,这些行很快就会填满控制台屏幕。如果可能的话,我希望在一行上看到进度,也就是说每一秒同一行都会被更新的进度覆盖。
答案1
至少在 Windows 上,FFmpeg 需要 85 列才能正确打印进度。我使用注册表设置了此项
sp hkcu:console WindowSize 0x00190055 -t dword
sp hkcu:console ScreenBufferSize 0x03e80055 -t dword