pro*_*r44 4 python audio bash video ffmpeg
我们正在开发一个将视频转换为音频的项目,这是示例代码:
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
Run Code Online (Sandbox Code Playgroud)
但是,它给了我这个错误
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
Run Code Online (Sandbox Code Playgroud)
当然,另一种选择是使用ffmpeg,但问题是在这种情况下视频是一个对象实例,到目前为止我还没有找到一种方法将对象实例从python传递给bash.
视频对象可以写成视频文件,但这会导致大量的时间浪费,因为转换发生在循环内.
一次又一次地编写视频文件非常耗时,以便从中轻松提取音频.
我将非常感谢任何可以帮助我解决上述错误的解决方案,或任何允许我将视频fileclip对象实例ffmpeg作为变量传递给bash 的解决方案.
Zul*_*lko 12
试试这个:
import moviepy.editor as mp
clip = mp.VideoFileClip("myvideo.mp4").subclip(0,20)
clip.audio.write_audiofile("theaudio.mp3")
Run Code Online (Sandbox Code Playgroud)
你可以在write_audiofile中添加很多参数(格式,编解码器,比特率,fps等)
对于那些在下载“moviepy.editor”时出现以下错误的用户(NeedDownloadError: Need ffmpeg exe. You can download it by Calling: imageio.plugins.ffmpeg.download())
只需这样做:
import imageio
imageio.plugins.ffmpeg.download()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12470 次 |
| 最近记录: |