解決java執(zhí)行cmd命令調(diào)用ffmpeg報(bào)錯(cuò)Concat error - No such filter '[0,0]'問(wèn)題
最近公司有一個(gè)公交項(xiàng)目,要生成報(bào)站語(yǔ)音,采用的是 報(bào)站前綴 + 站點(diǎn)名 + 報(bào)站后綴,3個(gè)MP3文件拼接的方式,拼接成一個(gè)完整的語(yǔ)音,且需要轉(zhuǎn)碼率和比特率,使用到了ffmpeg。
去網(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)碼沒(méi)問(wèn)題,音頻拼接的坑就來(lái)了......下面是公司項(xiàng)目主要用到的拼接語(yǔ)句:
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
重點(diǎn)關(guān)注這一段:-filter_complex '[0:0] [1:0] [2:0] concat=n=3:v=0:a=1 [a]'
在本機(jī)(Windows)和公司服務(wù)器(Linux)上都安裝了ffmpeg,上面的拼接語(yǔ)句在服務(wù)器上(Linux)能拼接MP3成功,但在本機(jī)DOS命令運(yùn)行報(bào)錯(cuò):
??腫么肥四?。』叵雡indows和linux的區(qū)別,難道是目錄的斜桿和反斜杠的問(wèn)題??
把MP3路徑的斜桿替換"/"為"\\",還是報(bào)錯(cuò),一頓查找,發(fā)現(xiàn)是單引號(hào)和雙引號(hào)的問(wèn)題。
windows系統(tǒng)下,把 ' 改為 " 拼接成功。類似改為 -filter_complex "[0:0] [1:0] [2:0] concat=n=3:v=0:a=1 [a]"
linux系統(tǒng),單、雙引號(hào)都能拼接成功。
那么好,Dos窗口能拼接MP3成功,java代碼運(yùn)行cmd就出問(wèn)題了:在本機(jī)測(cè)試能成功拼接MP3文件,但放到服務(wù)器上去報(bào)錯(cuò)?!?/p>
No such filter: '"' Error configuring filters.
提示配置的過(guò)濾器錯(cuò)誤,我把拼接條件又單獨(dú)拿出來(lái)去Linux運(yùn)行,拼接成功。
沒(méi)辦法,嘗試把雙引號(hào)改為單引號(hào)試試怎么樣:
No such filter: '[0:0]' Error configuring filters.
又是提示過(guò)濾器配置錯(cuò)誤。同樣,把拼接條件單獨(dú)拿出來(lái)去Linux運(yùn)行,拼接成功。
What!??去百度找答案,沒(méi)有找到?;仡^看報(bào)錯(cuò)信息,單引號(hào)會(huì)報(bào)錯(cuò)到第一個(gè)空格,雙引號(hào)則直接報(bào)錯(cuò),那么我把中間的空格去掉,改成這樣:
-filter_complex '[0:0][1:0][2:0]concat=n=3:v=0:a=1[a]'
dos窗口成功,java運(yùn)行cmd命令失敗,換成雙引號(hào)呢?
-filter_complex "[0:0][1:0][2:0]concat=n=3:v=0:a=1[a]"
還是dos窗口成功,java運(yùn)行cmd命令失敗,去掉引號(hào)?
-filter_complex [0:0][1:0][2:0]concat=n=3:v=0:a=1[a]
成功!
回頭再去百度了下,發(fā)現(xiàn)還真有"解決方案"(可能之前沒(méi)好好找):
http://www.ffmpeg-archive.org/Concat-error-No-such-filter-0-0-td4654771.html#a4654803
改成類似這樣的(好多單引號(hào)):
-filter_complex '[0:0]' '[1:0]' '[2:0]' 'concat=n=3:v=0:a=1' '[a]'
報(bào)錯(cuò),雙引號(hào)呢?
-filter_complex "[0:0]" "[1:0]" "[2:0]" "concat=n=3:v=0:a=1" "[a]"
也是報(bào)錯(cuò)。
不測(cè)了不測(cè)了,就用這個(gè)吧:
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報(bào)錯(cuò)Concat error - No such filter ''[0,0]''問(wèn)題的文章就介紹到這了,更多相關(guān)java執(zhí)行cmd命令調(diào)用ffmpeg報(bào)錯(cuò)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
spring boot整合shiro安全框架過(guò)程解析
這篇文章主要介紹了spring boot整合shiro安全框架過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11Spark學(xué)習(xí)筆記 (二)Spark2.3 HA集群的分布式安裝圖文詳解
這篇文章主要介紹了Spark2.3 HA集群的分布式安裝,結(jié)合圖文與實(shí)例形式詳細(xì)分析了Spark2.3 HA集群分布式安裝具體下載、安裝、配置、啟動(dòng)及執(zhí)行spark程序等相關(guān)操作技巧,需要的朋友可以參考下2020-02-02使用Java和WebSocket實(shí)現(xiàn)網(wǎng)頁(yè)聊天室實(shí)例代碼
WebSocket是HTML5一種新的協(xié)議,它實(shí)現(xiàn)了瀏覽器與服務(wù)器全雙工通信,這里就將使用WebSocket來(lái)開(kāi)發(fā)網(wǎng)頁(yè)聊天室,對(duì)Java和WebSocket實(shí)現(xiàn)網(wǎng)頁(yè)聊天室的實(shí)例代碼感興趣的朋友一起學(xué)習(xí)吧2016-06-06Java使用CountDownLatch實(shí)現(xiàn)統(tǒng)計(jì)任務(wù)耗時(shí)
這篇文章主要為大家詳細(xì)介紹了Java如何使用CountDownLatch實(shí)現(xiàn)統(tǒng)計(jì)任務(wù)耗時(shí)的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2023-06-06Java 程序設(shè)計(jì)總復(fù)習(xí)題(java基礎(chǔ)代碼)
這篇文章主要介紹了Java 程序設(shè)計(jì)總復(fù)習(xí)題,主要是java基礎(chǔ)代碼,方便學(xué)習(xí)java的同學(xué)2021-05-05springboot+mybatis-plus實(shí)現(xiàn)自動(dòng)建表的示例
本文主要介紹了springboot+mybatis-plus實(shí)現(xiàn)自動(dòng)建表的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-06-06IDEA中程序包Org.Springframework.Boot不存在問(wèn)題及解決
這篇文章主要介紹了IDEA中程序包Org.Springframework.Boot不存在問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07Java獲取當(dāng)?shù)氐娜粘鋈章鋾r(shí)間代碼分享
這篇文章主要介紹了Java獲取當(dāng)?shù)氐娜粘鋈章鋾r(shí)間代碼分享,國(guó)外猿友寫的一個(gè)類,需要的朋友可以參考下2014-06-06