小编典典

Android:ffmpeg,文件名包含空格

java

我想从Android应用程序执行ffmpeg,非常像这里所述:将FFmpeg与Android-NDK结合使用

执行以下命令可以正常工作:

Process p = Runtime.getRuntime().exec("/data/data/yourpackagename/ffmpeg -i infile.mp4 outfile.mp4");

要么

Process p = Runtime.getRuntime().exec(new String[]{"/data/data/yourpackagename/ffmpeg", "-i", "infile.mp4", "outfile.mp4");

但是,当输入或输出文件名包含空格时,ffmpeg失败,并显示“找不到文件”错误:

Process p = Runtime.getRuntime().exec("/data/data/yourpackagename/ffmpeg -i \"in space file.mp4\" outfile.mp4"); // fails
Process p = Runtime.getRuntime().exec("/data/data/yourpackagename/ffmpeg -i 'in space file.mp4' outfile.mp4"); // fails
Process p = Runtime.getRuntime().exec(new String[]{"/data/data/yourpackagename/ffmpeg", "-i", "\"in space file.mp4\"", "outfile.mp4"); //fails

FFMPEG对于包含空格的文件也失败,但引用如下:

Process p = Runtime.getRuntime().exec("/data/data/yourpackagename/ffmpeg -i \"infile.mp4\" outfile.mp4"); // fails

如何正确将包含空格的文件名传递给ffmpeg命令?

问候,


阅读 652

收藏
2020-11-30

共1个答案

小编典典

我终于明白了。我忘记了一种可能性,而实际上这是可行的:

Process p = Runtime.getRuntime().exec(new String[]{"/data/data/yourpackagename/ffmpeg", "-i", "in space file.mp4", "outfile.mp4"); //OK
2020-11-30