用Python编辑视频
我正在尝试使用ffmpeg-python库编辑一个MP4视频,但我遇到了一个错误:
类型错误:'ffmpeg'没有'input'这个属性
这是我的代码,直接从官方文档复制过来的:
import ffmpeg
x=ffmpeg.input('xx.mp4')
x=ffmpeg.hflip(x)
x=ffmpeg.output(x,'yy.mp4')
ffmpeg.run(x)
我对这个错误感到很困惑。
有没有人能帮我解决这个问题呢?
谢谢。
1 个回答
1
根据一些简单的搜索,你可能安装了错误的ffmpeg Python库。
你可以使用pip install ffmpeg-python
来确保安装正确的库。
你还可以用pip list
来列出已安装的模块,手动检查一下是否有其他模块也叫ffmpeg。
你也可以手动检查ffmpeg文件,以确保它是正确的:
import ffmpeg
print(ffmpeg)
这个输出的内容大概是这样的
<module 'ffmpeg' from 'some_path/__init__.py'>
然后你可以打开文件some_path/_ffmpeg.py
,检查里面是否有你需要的input
属性。
从ffmpeg-python
版本0.2.0
开始,这个文件的开头是这样的:
from ._utils import basestring
from .nodes import (
filter_operator,
GlobalNode,
InputNode,
MergeOutputsNode,
OutputNode,
output_operator,
)
def input(filename, **kwargs):
"""Input file URL (ffmpeg ``-i`` option)
Any supplied kwargs are passed to ffmpeg verbatim (e.g. ``t=20``,
``f='mp4'``, ``acodec='pcm'``, etc.).
To tell ffmpeg to read from stdin, use ``pipe:`` as the filename.
Official documentation: `Main options <https://ffmpeg.org/ffmpeg.html#Main-options>`__
"""
kwargs['filename'] = filename
fmt = kwargs.pop('f', None)
if fmt:
if 'format' in kwargs:
raise ValueError("Can't specify both `format` and `f` kwargs")
kwargs['format'] = fmt
return InputNode(input.__name__, kwargs=kwargs).stream()
.......