【问题标题】:python converting video to audiopython将视频转换为音频
【发布时间】:2016-01-31 15:11:19
【问题描述】:

我们正在做一个将视频转换为音频的项目,这是示例代码:

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 的解决方案。

【问题讨论】:

    标签: python bash audio video ffmpeg


    【解决方案1】:

    试试这个:

    import moviepy.editor as mp
    clip = mp.VideoFileClip("myvideo.mp4").subclip(0,20)
    clip.audio.write_audiofile("theaudio.mp3")
    

    可以在write_audiofile中添加很多参数(格式、编解码器、比特率、fps等)

    【讨论】:

    • 当我尝试这段代码时,我得到了以下错误:NeedDownloadError: Need ffmpeg exe. You can download it by calling: imageio.plugins.ffmpeg.download()
    • 解决简单:import imageio '''then''' imageio.plugins.ffmpeg.download()
    【解决方案2】:

    对于那些在下载“moviepy.editor”时遇到以下错误的人(NeedDownloadError: Need ffmpeg exe。您可以通过调用来下载它:imageio.plugins.ffmpeg.download()) p>

    只要这样做:

    import imageio
    imageio.plugins.ffmpeg.download()
    

    【讨论】:

    • 不推荐使用“pip install imageio-ffmpeg”
    猜你喜欢
    • 2017-10-17
    • 1970-01-01
    • 2020-08-25
    • 2017-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-17
    • 1970-01-01
    相关资源
    最近更新 更多