我想通過在Linux上的exec調用運行ffmpeg。但是我必須在命令中使用引號(ffmpeg需要它)。我一直在尋找processbuilder和exec的java文檔和stackoverflow上的問題,但我似乎無法找到解決方案。Java Runtime.getRuntime()。exec()用引號
我需要運行
ffmpeg -i "rtmp://127.0.0.1/vod/sample start=1500 stop=24000" -re -vcodec copy -acodec copy -f flv rtmp://127.0.0.1/live/qltv
我需要插入到報價以下參數字符串。注意,由於processbuilder解析和運行命令的性質,只需在反斜槓之前添加單引號或雙引號就不起作用。
String argument = "ffmpeg -i rtmp://127.0.0.1/vod/"
+ nextVideo.getFilename()
+ " start=" + nextVideo.getStart()
+ " stop=" + nextVideo.getStop()
+ " -re -vcodec copy -acodec copy -f flv rtmp://127.0.0.1/live/qltv";
任何幫助將不勝感激。
您可以刪除字符 「新的String []」;大括號會自動爲你產生一個字符串數組。 – 2010-07-06 21:08:11
這不會起作用 rtmp://127.0.0.1/vod/sample start = xxx stop = xxx 必須有引號。將參數放在字符串數組中並沒有幫助。 – 2010-07-06 21:31:31
對不起,如果您放置轉義引號,它沒有幫助,如下所示:「\」rtmp://127.0.0.1/vod/sample start = 1500 stop = 24000 \「」 – laher 2010-07-06 21:57:18