![](/img/trans.png)
[英]Java Runtime.getRuntime().exec not working with double quotes in command
[英]getruntime() exec() with double quotes in command
我想執行一個ffmpeg
命令,我使用的方法適用於列表中的每個命令,但以下命令除外,該命令包含雙引號以設置過濾器(-vf)參數
ffmpeg -i 2012-12-27.mp4 -vf "movie=bb.png [movie]; [in] [movie] overlay=0:0 [out]" -vcodec libx264 -acodec copy out.mp4
我嘗試過更改單引號的報價,但沒有運氣。 該命令在android終端上使用單引號和雙引號起作用。
我正在開發的應用程序使用約5個ffmpeg
命令,除此命令外,其他所有命令均有效,這是一些錯誤嗎?
我找不到這個問題的具體解決方案,將args分解成一個數組,然后按照其他地方的建議將其傳遞給runtime().exec()
似乎不起作用,或者只是嘗試使用\\來轉義引號。將無法正常工作。
上面命令中引用的兩個文件都位於sdcard中,我刪除了命令的串聯,以免混亂,請放心,這些命令在引用文件的完整路徑時可以在終端中使用。 我使用stringbuilder和`getexternalstorageDirectory()。getabsolutepath()來處理傳遞給getRuntime()。exec()的字符串,以獲取每個文件的路徑,就像我在使用流程類時對以前的命令所做的一樣。
我正在使用Jelly Bean 4.2,以防萬一。
嘗試
getRuntime().exec( new String[] { "ffmpeg", "-i", "2012-12-27.mp4", "-vf", "movie=bb.png [movie]; [in] [movie] overlay=0:0 [out]", "-vcodec", "libx264", "-acodec", "copy", "out.mp4" } );
在一起的參數(例如帶引號的-vf過濾器字符串)必須位於同一數組元素中。
字符串數組不能正常工作?
java.lang.Runtime.exec(String[])
java.lang.Runtime.exec(String[], String[], File)
Runtime.exec(new String[]{"ffmpeg","-i","2012-12-27.mp4","-vf",
"movie=bb.png [movie]; [in] [movie] overlay=0:0 [out]",
"-vcodec","libx264","-acodec","copy","out.mp4"});
您應該將所有參數放入數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.