我们正在进行一个将视频转换为音频的项目,这是示例代码:
from converter import Converter
from moviepy.editor import *
c = Converter()
clipv = 'g.mp4'
clipc = VideoFileClip(clipv).subclip(0,20)
conv = c.convert(clipc, 'clip5.mp3', {'format':'mp3','audio':{'codec': 'mp3','bitrate':'22050','channels':1}})
for timecode in conv:
pass
但是,它给了我这个错误
Traceback (most recent call last)
File "del.py", line 7, in <module>
for timecode in conv:
File "/usr/local/lib/python2.7/dist-packages/converter/__init__.py", line 181, in convert
if not os.path.exists(infile):
File "/usr/lib/python2.7/genericpath.py", line 18, in exists
os.stat(path)
TypeError: coercing to Unicode: need string or buffer, instance found
当然,另一种选择是使用ffmpeg
,但问题是本例中的视频是一个对象实例,到目前为止,我还没有找到将对象实例从python传递到bash的方法。
视频对象可以作为视频文件写入,但这将导致大量的时间浪费,因为转换是在循环中进行的。
一次又一次地编写视频文件,以便轻松地从中提取音频是相当耗时的。
我非常感谢任何能够帮助我绕过上述错误的解决方案,或者任何能够允许我将视频fileclip
对象实例作为变量传递给bash ffmpeg
的解决方案。
试试这个:
您可以在write_audiofile中添加许多参数(格式、编解码器、比特率、fps等)
对于下载“moviepy.editor”时遇到以下错误的用户(需要下载错误:需要ffmpeg exe。您可以通过调用:imageio.plugins.ffmpeg.download()下载它)
就这样做:
相关问题 更多 >
编程相关推荐