gpt4 book ai didi

android - 带有空格的文件路径的 FFMPEG 命令失败

转载 作者:行者123 更新时间:2023-12-04 22:50:50 28 4
gpt4 key购买 nike

我正在执行以下 ffmpeg用于修剪视频的命令。我遇到的问题是,如果文件路径包含空格,则命令失败。我尝试了多种处理空格的方法,但除了将文件移动到没有空间的路径然后执行命令外,它们都不起作用以新文件路径作为源。
下面是命令-

 execFFmpegBinary("-i " +  filepath   + " -ss " + startMs / 1000 + " -to " + endMs / 1000 + " -strict -2 -async 1 " + dest.getAbsolutePath());



private void execFFmpegBinary(final String command) {
try {
ffmpeg.execute(command, new ExecuteBinaryResponseHandler() {
@Override
public void onFailure(String s) {
Log.e("Previewragment", "FAILED with output : " + s);
}

@Override
public void onSuccess(String s) {
Log.e("Previewragment", "SUCCESS with output : " + s);
}

@Override
public void onProgress(String s) {
Log.e("Previewragment", "Started command : ffmpeg " + command);
Log.e("Previewragment", "progress : " + s);
}

@Override
public void onStart() {
Log.e("Previewragment", "Started command : ffmpeg " + command);

}

@Override
public void onFinish() {



}
});
} catch (FFmpegCommandAlreadyRunningException e) {
// do nothing for now
}
}

我看到了 answer并尝试过
 String addQuotes(String in ) {
return "\"" + in + "\"";
}
execFFmpegBinary("-i " + addQuotes(filepath) + " -ss " + startMs / 1000 + " -to " + endMs / 1000 + " -strict -2 -async 1 " + dest.getAbsolutePath())

;

最佳答案

//Process ffmpeg;
public string exec(string input, string output, string parametri,string fileName)
{
//Create the output and streamreader to get the output
string output1 = null; StreamReader srOutput = null;
input = addQuotes(input);
Process ffmpeg = new Process();
try
{

ffmpeg.StartInfo.Arguments = " -i " + input + " -ss 00:00:00.100 -vframes 1" + " " + output;
ffmpeg.StartInfo.FileName = fileName;
ffmpeg.StartInfo.UseShellExecute = false;
ffmpeg.StartInfo.RedirectStandardOutput = true;
ffmpeg.StartInfo.RedirectStandardError = true;
ffmpeg.StartInfo.CreateNoWindow = true;
ffmpeg.Start();
ffmpeg.WaitForExit();
//get the output
srOutput = ffmpeg.StandardError;
//now put it in a string
output1 = srOutput.ReadToEnd();
ffmpeg.Close();
}
catch
{
ffmpeg.Close();
output = string.Empty;
}
finally
{
//now, if we succeded, close out the streamreader
if (srOutput != null)
{
srOutput.Close();
srOutput.Dispose();
}
}
return output;
}


public string addQuotes(string s)
{
return "\"" + s + "\"";
}

关于android - 带有空格的文件路径的 FFMPEG 命令失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33149606/

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