gpt4 book ai didi

java - getruntime() exec() 命令中带双引号

转载 作者:太空狗 更新时间:2023-10-29 16:21:17 27 4
gpt4 key购买 nike

我想执行一个 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 - getruntime() exec() 命令中带双引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14078799/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com