如何用python批量調整視訊聲音
阿新 • • 發佈:2020-12-23
今天來研究python中moviepy模組的用途
近來有大量處理視訊的需求,
常會碰到一個問題是下載的視訊音量過小,
會需要將它調大聲,
雖然有線上工具VideoLouder可以免費調整視訊音量大小,
但畢竟若量很大的話一個一個上傳視訊也是挺麻煩的事情,
因此決定再用程式幫忙解決。
使用教學
基礎程式
調整一個視訊音量的程式碼如下:
from moviepy.editor import VideoFileClip,concatenate_videoclips clip = VideoFileClip(“1.mp4”)#獲取視訊1.mp4(視訊需與程式置於同一資料夾) newclip = clip.volumex(5)#將音量調整為5倍 newclip.write_videofile(“out.mp4”)#輸出影片名為out.mp4
但實測會出現錯誤AttributeError: 'NoneType' object has no attribute 'stdout',
經研究後,似乎是moviepy版本的問題,
最新的版本為1.0.1,
可以於anaconda prompt中下指令pip list檢視自己所有已安裝的模組版本。
實測要安裝moviepy版本1.0.0才可正常使用,
在anaconda prompt使用pip install moviepy==1.0.0指令即可運作上述程式碼。
批量修改視訊音量
想要一次修改多個視訊的音量,
小馬的程式碼如下,
首先我將所有欲修改的視訊放入當前程式路徑下的music資料夾中,
這邊關鍵會用到python內建模組os,
- os.getcwd()是取得當前程式的工作路徑
- os.chdir()可以改變當前程式的工作路徑
- os.listdir()可以取得指定路徑下的所有檔案名稱
import os from moviepy.editor import VideoFileClip,concatenate_videoclips def batch_volumex(path,x): # 函式功能:在指定路徑下,將該資料夾的視訊聲音調為x倍 origin_path = os.getcwd() os.chdir(path) for fname in os.listdir(): clip = VideoFileClip(fname) newclip = clip.volumex(x) newclip.write_videofile("new_"+fname) os.chdir(origin_path) path = './music' batch_volumex(path,5)
這支程式可以將music資料夾下的所有影片的音量調為5倍,
並將影片名稱前加“new_”字串輸出
(注:若原視訊聲音很小,實測音量大概要調3~5倍才會有感)
以上就是如何用python批量調整視訊聲音的詳細內容,更多關於python批量調整視訊聲音的資料請關注我們其它相關文章!