📌  相关文章
📜  AttributeError:模块 'ffmpeg' 没有属性 'input' (1)

📅  最后修改于: 2023-12-03 14:59:25.166000             🧑  作者: Mango

错误信息

当程序员在使用 Python 中的 FFMPEG 模块时,可能会遇到以下错误信息:

AttributeError: module 'ffmpeg' has no attribute 'input'
错误原因

该错误原因是因为最近版本的 FFMPEG 从命令行界面到 Python 模块编程界面的转换引入了一些改变。 在最近的版本中,“input”和“output”是作为流(Stream)对象中的方法(method)而不是象征(symbols)来表示的。因此在使用 FFMPEG Python 模块时,必须使用这些新方法而不是旧象征。

解决方法

要解决此问题,请在代码中使用新方法,例如使用“streams”方法来代替“input”,例如:

import ffmpeg

# Old code - this will raise AttributeError
# vid = ffmpeg.input('input.mp4')

# New code - use the streams method instead of input method
vid = ffmpeg.input('input.mp4').streams

同样地,您需要使用“output”方法的新流式API。

import ffmpeg

# Old code - this will raise AttributeError
# out = ffmpeg.output(vid, 'output.mp4')

# New code
out = ffmpeg.concat(vid[:n]).output('out.mp4')

# or
out = ffmpeg.output(vid, 'out.mp4').run()
结论

FFMPEG 模块是一个强大的音频/video编解码库,由于 Python 模块编程界面的转换而引入了一些改变。在 最近的版本中,“input”和“output”是作为流(Stream)对象中的方法(method)而不是象征(symbols)来表示的。因此,在使用 FFMPEG Python 模块时,必须使用这些新方法而不是旧象征。