gpt4 book ai didi

python - 更改 mp4ize.py 以在 Windows 上工作

转载 作者:可可西里 更新时间:2023-11-01 12:04:14 26 4
gpt4 key购买 nike

Mp4ize (python)是一种将视频文件转换为 mp4 以便在 iPhone 和 iPod 上使用的实用程序。我试图让它在 Windows 上运行。

python脚本依赖库fcntl ,根据另一个问题 ( fcntl substitute on Windows ),Windows 等效项是 win32api。另一个问题也说:

If you provide more details about the fcntl calls people can find windows equivalents.

由于我一直没有尝试自己重写代码,所以我想在这里问一下。

如何重写以下代码以在 Windows 上使用?

fcntl.fcntl(
p.stderr.fileno(),
fcntl.F_SETFL,
fcntl.fcntl(p.stderr.fileno(), fcntl.F_GETFL) | os.O_NONBLOCK,
)

参见 here获取完整的源代码。

最佳答案

此命令设置标准错误文件描述符的 NONBLOCK 选项。这允许它在全部数据写入之前传递数据。

补丁位于 http://pastebin.com/Zr5LN8Ui将在 Windows 上使用进度指示器。但是,即使编码良好,它有时也会报告错误的编码。

它使用来自 Non-blocking read on a subprocess.PIPE in python 的解决方案允许非阻塞 IO,并修复 pad 选项(您的版本不适用于我的测试文件)和现代 FFMpeg 的进度条。

请注意,当 FFMpeg 传递 3 个或更多命令行选项时,它被硬编码为使用链接方法,因为它弄乱了对 FFMpeg 的第一次调用,该调用获取输入文件的分辨率。

关于python - 更改 mp4ize.py 以在 Windows 上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6799693/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com