有的時候需要手裡的音訊檔案變速聽,或可能變慢或可能變快
這裡使用的python進行操作,我的目標是將檔案轉成2倍速
首先需要安裝外掛程式
pip install ffmpeg
然後再執行:
from ffmpeg import audio
audio.a_speed("d:\\1505.***", "2", "d:\\1505_2x.***")
如果執行不出錯,會返回乙個true
執行結果
我可以看到這裡的音訊速度提公升以後音訊小了
這裡我是將目標路徑下的***音訊轉成了2倍速的,設立不侷限於***。其他格式的音訊檔案也是可以進行處理的。
當然這裡還可以進行批量操作
import os
import sys
from ffmpeg import audio
audio_path = "d:\\audio\\"
finish_path = "d:\\2x_audio\\"
def run():
audio_file = os.listdir(audio_程式設計客棧path)
for i, audio1 in enumerate(audio_file):
print(audio_pat程式設計客棧h+audio1)
audio.a_speed(audio_path+audio1, "2", finish_path+"2x"+audio1)
run()
實際上這個的原始碼幹了一件這個事情
import subprocess
# 調整音訊**速率
def a_speed(input_file, speed, out_file):
try:
cmd = "ffmpeg -y -i %s -filter_complex \"atempo=tempo=%s\" %s" % (input_file, speed, out_file)
res = subprocess.call(cmd, shell=true)
if res != 0:
return false
return true
except exception:
return false
實際可以看到,使用的f呼叫的原生的fmpeg,也就是基於fmpeg開發的
不過好像我發現,如果音訊檔案太大會失敗,返回false
我試過原生的fmpeg是可以進行的,只是會轉換很慢
d:\>ffmpeg -n -i 222.*** -filter:a "atempo=2" output.***
現在不知道是不是因為限制了大小(現在猜測可能是顯示了大或者限制了響應時間大小,在原始碼裡沒有發現什麼詭異的地方),音訊不算大的是沒問題的,我試的單個檔案是100多兆的檔案,會失敗,但是10m是沒有問題的。
實在不行就直接用原生的好了
import os
import sys
#from ffmpeg import audio
audio_path = "www.cppcns.comd:\\audio\\"
finish_path = "d:\\2x_audio\\"
def run():
audio_file = os.listdir(audio_path)
for i, audio1 in enumerate(audio_file):
#print(audio_path+audio1)
cmd="ffmpeg -n -i "+audio_path+audio1+" -filter:a atempo=2 "+finish_path+"2x"+audio1
#print(cmd)
os.system(cmd)
#audio.a_speed(audio_path+aud程式設計客棧io1, "2", finish_path+"2x"+audio1)
run()
後來發現,最好音訊的檔名不要有漢字
上面另兩個**應該都是可以的
總結
python 用python對xml進行操作
首先,我先給出一段xml文件 liechtenstein yes 2 2008 141100 austria direction e switzerland direction w singapore yes 5 2011 59900 malaysia direction n panama yes ...
Apache Hadoop進行版本公升級的操作
3月份,公司最大的集群要從hadoop2.4公升級到hadoop2.8 是乙個大版本跨度的公升級操作,所以前期對hadoop2.8版本進行了很多功能和效能方面的驗證和測試。同時也擬定了幾個公升級和回滾方案。由於集群的離線任務一般在夜間,所以夜間的hdfs壓力很大,rpc延遲很高,導致集群效能下降,最...
學習筆記 使用Python對檔案進行簡單操作
函式 shutil.rmtree path ignore errors onerror 該函式刪除乙個完整的目錄樹,path必須指向乙個目錄。如果ignore errors為true,移除失敗的error會被忽略。否則,該error將會被onerror處理。onerror funciton,path...