簡體   English   中英

python將視頻轉換為音頻

[英]python converting video to audio

我們正在開發一個將視頻轉換為音頻的項目,這是示例代碼:

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作為變量的解決方案。

嘗試這個:

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

你可以在write_audiofile中添加很多參數(格式,編解碼器,比特率,fps等)

對於那些在下載“moviepy.editor”時遇到以下錯誤的人( NeedDownloadError:需要ffmpeg exe。你可以通過調用來下載它:imageio.plugins.ffmpeg.download()

這樣做:

import imageio
imageio.plugins.ffmpeg.download()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM