linux命令實現音頻格式轉換和拼接


安裝FFmpeg flac
eric@ray:~$ sudo apt install FFmpeg flac

安裝lame faac
eric@ray:~$ sudo apt install lame faac

將一個后綴為.ape格式的視頻轉換成m4a(mp4)格式

首先用ffmpeg命令或者flac 命令將它轉換成mav格式,再用lame將wav轉換成mp4格式

eric@ray:~/Music$ ffmpeg -i Gracie-Theme.ape Gracie-Theme.wav

##或者

eric@ray:~/Music$ flac -d Gracie-Theme.flac Gracie-Theme.wav

再使用lame命令 壓縮成MP3


##使用lame命令:使用VBR動態碼率壓縮,0表示質量最高,9表示質量最低,默認為4

eric@ray:~/Music$ lame -v Gracie-Theme.wav

##或者使用faac編碼得到m4a(mp4)、mp3格式文件:100表示質量最高 100%

eric@ray:~/Music$ faac -w -q 100 Gracie-Theme.wav -o Gracie-Theme.mp4

也可以使用ffmpeg壓縮得到m4a格式:


#這里使用的是ffmpeg內置的aac編碼起,設置碼率為固定的320k

eric@ray:~/Music$ ffmpeg -i Gracie-Theme.wav -strict experimental -c:a aac -b:a 320k Gracie-Theme.m4a

#還可以使用ffmpeg將解壓和壓縮為一條命令:-map_metadata 表示保留歌曲元數據,即名稱、演唱者等

eric@ray:~/Music$ ffmpeg -i Gracie-Theme.flac -ab 320k -map_metadata 0 Gracie-Theme.m4a

批量腳本


#!/bin/bash

for FILE in *.ape;
do
ffmpeg -i "$FILE" temp.wav;
lame -b 320 temp.wav "${FILE%.*}.mp3";
rm temp.wav
done

對於一個ape/flac文件包含多首歌曲
這種情況,通常會有一個cue文件,這個文件中包含這個ape/flac文件的專輯名稱、演唱者名稱、還有每首歌曲的名稱、時間范圍。可以先用上面的方法將整個文件轉化為Mp3格式之后,再用mp3splt工具進行分割。

將cue文件分割為mp3:

eric@ray:~/Music$mp3splt -c song.cue -o @n.@t song.mp3
1
常用參數:

@a:歌手名稱
@b:專輯名稱
@t:歌曲標題
@n:音軌序號

音頻合並

#音頻合並(兩個音頻重疊)

eric@ray:~/Music$ffmpeg -i first.mp3 -i second.mp3 -filter_complex amix=inputs=2:duration=first:dropout_transition=2 -f mp3 third.mp3

#兩個音頻拼接

eric@ray:~/Music$ffmpeg -i d1.mp3 -i d2.mp3 -filter_complex '[0:0] [1:0] concat=n=2:v=0:a=1 [a]' -map [a] j5.mp3

#三個音頻拼接

eric@ray:~/Music$ffmpeg -i 片頭.wav -i 內容.WAV -i 片尾.wav -filter_complex '[0:0] [1:0] [2:0] concat=n=3:v=0:a=1 [a]' -map [a] 合成.wav

參考資料

FFmpeg and AAC Encoding Guide https://trac.ffmpeg.org/wiki/Encode/AAC


免責聲明!

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



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