更改mp4ize.py以在Windows上工作



Mp4ize (python)是一个用于将视频文件转换为mp4的实用程序,用于iPhone和iPod。我正在试着让它在Windows上运行。

python脚本依赖于库fcntl,根据另一个问题(fcntl在Windows上的替代品),Windows对应的是win32api。另一个问题也说:

如果您提供更多关于fcntl调用的详细信息,人们可以找到windows中的等效函数。

由于我一直没有机会自己重写代码,我想我应该在这里问一下。

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

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

该命令设置标准错误文件描述符的NONBLOCK选项。这使得它可以在所有数据被写入之前传递数据。

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

它在子进程上使用非阻塞读取的解决方案。python中的PIPE允许非阻塞IO,并修复了pad选项(您的版本不适用于我的测试文件)和现代FFMpeg的进度条。

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

相关内容

  • 没有找到相关文章

最新更新