我现在正在 Python 3.7.2 上为 ffmpeg 编写自己的包装,并希望使用它的“-progress”选项来读取当前进度,因为它具有高度的机器可读性。问题是 ffmpeg 的“-progress”选项仅接受作为其参数文件名和 url。但我不想创建额外的文件,而不是为此目的设置整个网络服务器。
我在谷歌上搜索了很多关于它的信息,但所有“ffmpeg 进度条”项目仅依赖于 ffmpeg 的通用 stderr 输出。Stackoverflow 和 Superuser 上的其他答案仅对“-v quiet -stats”感到满意,因为“progress”对于谷歌的参数名称来说并不是很方便,正是它的情况。
最好的解决方案是强制 ffmpeg 将它的“-progress”输出写入单独的管道,因为 stderr 中还有一些关于正在编码的文件的有用数据,我不想用“-v quiet”把它扔掉。虽然如果有一种方法可以将“-progress”输出重定向到 stderr,它也会很酷!实际上,任何管道都可以,我只是不知道如何让 ffmpeg 将其写入“-progress”而不是在 Windows 中归档。我试过“ffmpeg -progress stderr ...”,但它只是用这个名字创建文件。