为了账号安全,请及时绑定邮箱和手机立即绑定

我正在尝试使用 MoviePy 模块将视频 mp4 文件转换为音频 mp3 格式

我正在尝试使用 MoviePy 模块将视频 mp4 文件转换为音频 mp3 格式

炎炎设计 2023-02-12 18:59:50
def download_audio():#try:    b2.config(text="Please wait...")    b2.config(state=DISABLED)    stream = yt.streams.filter(res="480p")    path = filedialog.askdirectory()    if path == None:        return    stream[0].download(path)    for i in os.listdir(path):        os.rename(os.path.join(path,i),os.path.join(path,i.replace(' ','_')))    title = yt.title.replace(' ','_')    print(title)    print(path)    video = VideoFileClip(os.path.join(path+"//"+title+".mp4"))    print(video)    video.audio.write_audiofile(os.path.join(path+"//"+title+".mp3"))这是错误消息 属性错误:NoneType 对象没有属性 write_audiofile
查看完整描述

3 回答

?
SMILET

TA贡献1796条经验 获得超4个赞

尝试:


def download_audio():

#try:

    b2.config(text="Please wait...")

    b2.config(state=DISABLED)

    stream = yt.streams.filter(res="480p")

    path = filedialog.askdirectory()

    if path == None:

        return

    stream[0].download(path)

    for i in os.listdir(path):

        os.rename(os.path.join(path,i),os.path.join(path,i.replace(' ','_')))

    title = yt.title.replace(' ','_')

    print(title)

    print(path)

    video = VideoFileClip(os.path.join(path,title+".mp4"))

    print(video)

    video.audio.write_audiofile(os.path.join(path,title+".mp3"))

路径需要使用逗号而不是“//”在 os.path 中建立。


查看完整回答
反对 回复 2023-02-12
?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

弄清楚了。实际上 streams.filter("480p") 给了我一个没有音频的只有视频的流,这就是为什么出现非类型错误,因为它没有音频对象。通过执行 streams.filter(progressive=True) 解决了它。


def download_audio():

#try:

b2.config(text="Please wait...")

b2.config(state=DISABLED)

stream = yt.streams.filter(progressive=True)

path = filedialog.askdirectory()

if path == None:

    return

stream[0].download(path)

for i in os.listdir(path):

    os.rename(os.path.join(path,i),os.path.join(path,i.replace(' ','_')))

title = yt.title.replace(' ','_')

print(title)

print(path)

video = VideoFileClip(os.path.join(path+"//"+title+".mp4"))

print(video)

video.audio.write_audiofile(os.path.join(path+"//"+title+".mp3"))


查看完整回答
反对 回复 2023-02-12
?
万千封印

TA贡献1891条经验 获得超3个赞

尝试video.write_audiofile(os.path.join(path+"//"+title+".mp3"))

您最好使用 ffmpeg 转换视频或使用 opencv 进行所有视频管理。


查看完整回答
反对 回复 2023-02-12
  • 3 回答
  • 0 关注
  • 211 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号