寫在前面,聽說(shuō)要想學(xué)好英語(yǔ)就得先聽,所以我找了一些英語(yǔ)聽力素材,但是這是視頻格式的,想處理成音頻格式的,方便重復(fù)聽,既然學(xué)習(xí)了python,正好可以用它來(lái)批量提取視頻中的音頻。 網(wǎng)上查教程 剛開始,我肯定不會(huì),畢竟我沒有處理過(guò),所以先上網(wǎng)查了一下教程: ![]() 果然不出所料,這中事網(wǎng)上絕對(duì)用教程,看了一下,主要有使用:ffmpeg + python 或者使用python的開源模塊moviepy。但是我最后還是選擇了:ffmpeg + python + pydub。 ffmpeg + python教程有點(diǎn)籠統(tǒng),看不明白,很迷。moviepy看名字就知道主要是用來(lái)剪輯視頻的,提取音頻只是它的一個(gè)小模塊,所以剛開始的時(shí)候,我嘗試使用了它,但是在最后批量提取視頻的時(shí)候,它會(huì)落下一些沒有處理或者說(shuō)處理失敗。pydub 是主要用來(lái)處理音頻,比如wav轉(zhuǎn)mp3格式等等,但是它也是可以用來(lái)提取視頻中的音頻。 安裝 ffmpeg 首先還是得安裝ffmpeg,因?yàn)閜ydub有使用到它。 它的官網(wǎng)下載地址(windows版):https://ffmpeg./builds/。 打開后選擇符合自己的電腦的版本: ![]() 下載完,解壓就可以用了,重要的是要把解壓后中的 bin 文件夾添加到環(huán)境變量,win10操作系統(tǒng)非常方便就可以添加系統(tǒng)環(huán)境變量: ![]() 驗(yàn)證是否配置成功: ![]() 如果輸入ffmpeg提示不能執(zhí)行,就說(shuō)明環(huán)境變量配置錯(cuò)了。 安裝 pydub 這個(gè)很簡(jiǎn)單,只需用 pip 就可以了,因?yàn)槲业碾娔X用pip安裝比較慢,所以臨時(shí)用了國(guó)內(nèi)鏡像源安裝: ![]() 就這樣就安裝好 pydub 了。 開始編碼 上面的解決了,編碼就非常簡(jiǎn)單了: ![]() 簡(jiǎn)單解釋一下(相信你也看懂的): path_video:是當(dāng)前目錄下存放要提取音頻的視頻的文件夾。 path_audio:是用來(lái)放提取完的音頻文件夾。 file_list:是獲取全部視頻文件名。 enumerate:是使用python內(nèi)置枚舉功能,就是在遍歷的時(shí)候放回遍歷次數(shù),這個(gè)在這里我僅僅只是用來(lái)看看最后處理完總數(shù)是否和我視頻文件總數(shù)相同而已,無(wú)關(guān)緊要的,你可以直接使用普通的遍歷,如果想了解一下enumerate,可以去看看我寫過(guò)的文章: 編寫高質(zhì)量的python代碼第10條:盡量用 enumerate 取代 range 剩下的就是讀取視頻,導(dǎo)出音頻,就不做過(guò)多解釋了。 開始執(zhí)行 如果你習(xí)慣使用Pycharm IDE,那么恭喜你,掉進(jìn)了一個(gè)有點(diǎn)坑的坑,因?yàn)槟阋挥胮ycharm執(zhí)行就會(huì)出現(xiàn)這樣錯(cuò)誤: ![]() 起初我以為只是簡(jiǎn)單的坑,網(wǎng)上查了一下國(guó)內(nèi)教程: ![]() 雖然有人成功了,但是執(zhí)行后,沒有用,在我這還是會(huì)出錯(cuò)。 既然國(guó)內(nèi)解決不了,去國(guó)內(nèi)看看,果然這個(gè)坑有點(diǎn)坑: ![]() 就是說(shuō),只要你用pycharm執(zhí)行這個(gè)腳本就出錯(cuò),其他地方都不會(huì),我立馬用在cmd下執(zhí)行,確實(shí)沒有出錯(cuò)。 寫在后面,這里就不放最后截圖,因?yàn)檫@是昨天晚上的事情了,我一不小心關(guān)閉了cmd窗口,不在執(zhí)行一次了。對(duì)了,如果你也想每天早上聽點(diǎn)純正的英語(yǔ)聽力,可以關(guān)注我,我基本上有時(shí)間就會(huì)把素材放到頭條上,視頻 + 音頻 + 逐句翻譯。 著作權(quán)歸作者所有
|
|