Python:pydub和ffmpeg處理視訊中音頻的格式
今天,我們來分享一個在python中處理視訊中音頻格式的方法。Python中處理視音頻檔案,常用的庫為pydub。也可以使用ffmpeg來處理。通過這兩個庫可以友善的讀取視音頻檔案,并對視音頻檔案的各類參數進行修改。
安裝pydub
pydub庫是python的一個進階音頻處理庫。安裝pydub,隻要打開指令提示符視窗,将路徑修改到python路徑下
輸入以下代碼即可:
pip install pydub
導入ffmpeg
ffmpeg是一套可以用來記錄、轉換數字音頻、視訊,并能将其轉化為流的開源程式。提供了錄制、轉換以及流化音視訊的解決方案,幾乎囊括了現存所有的視音頻編碼标準。
安裝ffmpeg,可以從ffmpeg的官網下載下傳:
https://ffmpeg.zeranoe.com/builds/。
這裡下載下傳的是static版本,一個壓縮檔案,解壓到指定目錄,然後配置系統環境變量就可以使用了。
修改視訊中音頻的格式
修改視訊中音頻的格式,可以先讀取視訊檔案,檢視其參數,如與所需參數不符合,可以将其中的視訊和音頻提取出來,修改音頻參數,再将兩個檔案合并。
- 讀取mp4檔案,檢視視訊參數
from pydub import AudioSegment
import ffmpeg
import subprocess
#讀取視訊檔案,檢視音頻參數
movie = AudioSegment.from_file(filepath)
channels = movie.channels #聲道數
sample_width = movie.sample_width #采樣大小
frame_rate = movie.frame_rate #幀率
- 使用ffmpeg 将視訊分離
subprocess.call('ffmpeg -i ’ + filepath + ’ -vcodec copy -an ’ + videopath,shell=True)
- 将音頻分離,并修改其聲道數,幀率
movie.export(mp3path,format=“mp3”,
parameters=["-ac", “2”, “-ar”, “48000”])
- 使用ffmpeg合并已處理的音頻和視訊檔案
subprocess.call(‘ffmpeg -i ’ + videopath+ ’ -i ’ + mp3path+’ -vcodec copy -acodec copy ’ + filepath,shell=True)
這樣就完成了對視訊中音頻參數的修改。