情境:手機之「語音備忘錄」(錄音程式),產出格式為m4a音檔,但想轉換成MP3音檔🎶
📌需預先備妥轉換程式:
💚(開放源碼)ffmpeg轉檔工具,支援跨平台系統
💚可先安裝好Chocolatey工具,直接於Windows命令提示模式下,執行安裝ffmpeg指令choco install ffmpeg
💚安裝 ffmpeg工具後, 執行python m4a_to_mp3.py,可將單一m4a音檔 或多個m4a(需先將自己錄好的m4a音檔,預先改檔名成 file1.m4a 、file2.m4a、 file3.m4a、 ~,以利PYHTON程式做轉換) ,轉換成Mp3音樂檔案格式
💚解決方式:可使用Python程式(如下藍色部分,另存成m4a_to_mp3.py),將數個m4a檔(檔名自file1.m4a 、file2.m4a、系統會自動將所有file*.m4a檔合併起來),最後轉換成單一MP3音檔(Output.mp3)
import os
def convert_m4a_to_mp3(input_files, output_file):
# 確認輸入來源之檔案,是否存在?
for file in input_files:
if not os.path.exists(file):
print(f"來源檔案 '{file}' 不存在.")
return False
# 合併清單M4A檔案
input_list_path = 'input_list.txt'
with open(input_list_path, 'w') as f:
for file in input_files:
f.write(f"file '{file}'\n")
try:
os.system(f"ffmpeg -f concat -safe 0 -i {input_list_path} -c copy merged.m4a")
except Exception as e:
print(f"合併檔案時,發生錯誤: {e}")
return False
# 轉換為MP3格式
try:
os.system("ffmpeg -i merged.m4a -acodec libmp3lame -ab 256k -ar 44100 -y output.mp3")
except Exception as e:
print(f"轉換檔案時,發生錯誤: {e}")
return False
# 删除臨時交換檔案
os.remove(input_list_path)
os.remove("merged.m4a")
print("合併 & 轉檔完成.")
return True
if __name__ == "__main__":
input_files = []
output_file = "output.mp3" # 輸出MP3檔案名稱
file_index = 1
while True:
file_name = f"file{file_index}.m4a"
if os.path.exists(file_name):
input_files.append(file_name)
file_index += 1
else:
break
if len(input_files) == 0:
print("未找到file1.m4a 聲檔,系統將合併file1.m4a file2.m4a ~ 依序載入到最後,並自動轉出成Output.mp3格式.")
else:
if convert_m4a_to_mp3(input_files, output_file):
print(f"轉換檔案完成,輸出檔案名稱為 '{output_file}'")