Getruntime () exec()在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命令,所有工作,除了这个,这是一些错误吗?

我找不到这个问题的具体解决方案,将参数分解成一个数组,然后将其传递给runtime().exec(),如其他地方建议的似乎不起作用,或者只是试图用"来逃避引号将不起作用。

上面命令中引用的两个文件都位于sdcard中,我删除了命令的连接,这样事情就不会变得混乱,请放心,当引用文件的完整路径时,这些命令在终端中工作。我使用stringbuilder和'getexternalstorageDirectory ().getabsolutepath()连接传递给getRuntime().exec()的字符串,以获得每个文件的路径,就像我在使用进程类时使用以前的命令一样。

我使用Jelly Bean 4.2,以防有任何意义。

Try

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"});

你应该把所有的参数放到一个数组中

相关内容

  • 没有找到相关文章

最新更新