最近公司有一個公交項目,要生成報站語音,采用的是 報站前綴 + 站點名 + 報站后綴,3個MP3文件拼接的方式,拼接成一個完整的語音,且需要轉(zhuǎn)碼率和比特率,使用到了ffmpeg。
我們提供的服務(wù)有:網(wǎng)站建設(shè)、成都網(wǎng)站制作、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、山海關(guān)ssl等。為1000多家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的山海關(guān)網(wǎng)站制作公司
去網(wǎng)上找了一些ffmpeg相關(guān)的命令,參考:
安裝命令參考
音頻轉(zhuǎn)碼:
ffmpeg -i **.mp3 -ar 8000 -ac 2 -y -b:a 32k -vol 400 **.mp3
音頻拼接:
//音頻拼接 (1) ffmpeg -i "concat:test4.mp3|180_out.mp3" -acodec copy third.mp3 (third格式和first保持一致) (2) ffmpeg -i "concat:first.mp3|second.mp3" -i second.mp3 -acodec copy test.mp3 -map_metadata 0:1 (third格式和second保持一致) (3)ffmpeg -i test4.mp3 -i test5.mp3 -filter_complex '[0:0] [1:0] concat=n=2:v=0:a=1 [a]' -map [a] j5.mp3
音頻混合:
//音頻混合 ffmpeg -i 180_out.mp3 -i 181_in.mp3 -strict -2 -filter_complex amix=inputs=2:duration=longest:dropout_transition=2 -ar 8000 -ac 2 -y -b:a 64k -vol 2500 test.aac
ffmpeg下載地址:http://www.ffmpeg.org/download.html
當(dāng)然,主要用到的還是音頻轉(zhuǎn)碼和音頻拼接。音頻轉(zhuǎn)碼沒問題,音頻拼接的坑就來了......下面是公司項目主要用到的拼接語句:
ffmpeg -i 1.mp3 -i 2.mp3 -i 3.mp3 -filter_complex '[0:0] [1:0] [2:0] concat=n=3:v=0:a=1 [a]' -map [a] -b:a 32k -ar 8000 4.mp3
重點關(guān)注這一段:-filter_complex '[0:0] [1:0] [2:0] concat=n=3:v=0:a=1 [a]'
在本機(jī)(Windows)和公司服務(wù)器(Linux)上都安裝了ffmpeg,上面的拼接語句在服務(wù)器上(Linux)能拼接MP3成功,但在本機(jī)DOS命令運(yùn)行報錯:
??腫么肥四!!回想windows和linux的區(qū)別,難道是目錄的斜桿和反斜杠的問題??
把MP3路徑的斜桿替換"/"為"\\",還是報錯,一頓查找,發(fā)現(xiàn)是單引號和雙引號的問題。
windows系統(tǒng)下,把 ' 改為 " 拼接成功。類似改為 -filter_complex "[0:0] [1:0] [2:0] concat=n=3:v=0:a=1 [a]"
linux系統(tǒng),單、雙引號都能拼接成功。
那么好,Dos窗口能拼接MP3成功,java代碼運(yùn)行cmd就出問題了:在本機(jī)測試能成功拼接MP3文件,但放到服務(wù)器上去報錯?!?/p>
No such filter: '"' Error configuring filters.
提示配置的過濾器錯誤,我把拼接條件又單獨(dú)拿出來去Linux運(yùn)行,拼接成功。
沒辦法,嘗試把雙引號改為單引號試試怎么樣:
No such filter: '[0:0]' Error configuring filters.
又是提示過濾器配置錯誤。同樣,把拼接條件單獨(dú)拿出來去Linux運(yùn)行,拼接成功。
What?。??去百度找答案,沒有找到。回頭看報錯信息,單引號會報錯到第一個空格,雙引號則直接報錯,那么我把中間的空格去掉,改成這樣:
-filter_complex '[0:0][1:0][2:0]concat=n=3:v=0:a=1[a]'
dos窗口成功,java運(yùn)行cmd命令失敗,換成雙引號呢?
-filter_complex "[0:0][1:0][2:0]concat=n=3:v=0:a=1[a]"
還是dos窗口成功,java運(yùn)行cmd命令失敗,去掉引號?
-filter_complex [0:0][1:0][2:0]concat=n=3:v=0:a=1[a]
成功!
回頭再去百度了下,發(fā)現(xiàn)還真有"解決方案"(可能之前沒好好找):
http://www.ffmpeg-archive.org/Concat-error-No-such-filter-0-0-td4654771.html#a4654803
改成類似這樣的(好多單引號):
-filter_complex '[0:0]' '[1:0]' '[2:0]' 'concat=n=3:v=0:a=1' '[a]'
報錯,雙引號呢?
-filter_complex "[0:0]" "[1:0]" "[2:0]" "concat=n=3:v=0:a=1" "[a]"
也是報錯。
不測了不測了,就用這個吧:
ffmpeg -i 1.mp3 -i 2.mp3 -i 3.mp3 -filter_complex [0:0][1:0][2:0]concat=n=3:v=0:a=1[a] -map [a] -b:a 32k -ar 8000 4.mp3
總結(jié)
到此這篇關(guān)于解決java執(zhí)行cmd命令調(diào)用ffmpeg報錯Concat error - No such filter ''[0,0]''問題的文章就介紹到這了,更多相關(guān)java執(zhí)行cmd命令調(diào)用ffmpeg報錯內(nèi)容請搜索創(chuàng)新互聯(lián)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持創(chuàng)新互聯(lián)!
標(biāo)題名稱:解決java執(zhí)行cmd命令調(diào)用ffmpeg報錯Concaterror-Nosuchfilter'[0,0]'問題
網(wǎng)站路徑:http://jinyejixie.com/article0/ijgeoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計公司、ChatGPT、企業(yè)建站、自適應(yīng)網(wǎng)站、網(wǎng)站設(shè)計、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)