使用python批量調整視頻聲音


今天來研究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_”字串輸出 馬蜂窩店鋪怎么推廣?馬蜂窩店鋪代運營  https://www.douban.com/group/topic/166601482/

(注:若原視頻聲音很小,實測音量大概要調3~5倍才會有感)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM