如何将ffmpeg的-progress选项输出重定向到stderr?
Posted
技术标签:
【中文标题】如何将ffmpeg的-progress选项输出重定向到stderr?【英文标题】:How to redirect -progress option output of ffmpeg to stderr? 【发布时间】:2019-06-20 11:50:27 【问题描述】:我现在正在为 Python 3.7.2 上的 ffmpeg 编写自己的包装,并希望使用它的“-progress”选项来读取当前进度,因为它具有高度机器可读性。问题是 ffmpeg 的“-progress”选项仅接受作为其参数文件名和 url。但我不想为此创建额外的文件来设置整个网络服务器。
我在谷歌上搜索了很多,但所有“ffmpeg 的进度条”项目仅依赖于 ffmpeg 的通用标准错误输出。 *** 和 Superuser 上的其他答案仅对“-v quiet -stats”感到满意,因为“progress”对于谷歌的参数来说并不是很方便的名称。
最好的解决方案是强制 ffmpeg 将其“-progress”输出写入单独的管道,因为 stderr 中还有一些有用的数据关于正在编码的文件,我不想用“-v”将其丢弃安静的”。虽然如果有办法将“-progress”输出重定向到标准错误,那也很酷!实际上任何管道都可以,我只是不知道如何让ffmpeg写它的“-progress”而不是在Windows中归档。我试过“ffmpeg -progress stderr ...”,但它只是用这个名字创建文件。
【问题讨论】:
【参考方案1】:-progress pipe:1
将写入标准输出,pipe:2
写入标准错误。如果您不是从 ffmpeg 流式传输,请使用标准输出。
【讨论】:
这表明您也许可以打开文件描述符 3 并将其作为pipe:3
传递,但我不在可以测试的地方。
谢谢,这个答案是金。到处搜索程序选项的用法...没有成功。
顺便说一句:pipe:1 和 pipe:2 的使用是否记录在案?还有其他有用的选择吗?以上是关于如何将ffmpeg的-progress选项输出重定向到stderr?的主要内容,如果未能解决你的问题,请参考以下文章