我的Android代码中ffmpeg的错误部分是什么?

我的Android代码中ffmpeg的错误部分是什么?,android,video,ffmpeg,Android,Video,Ffmpeg,我想要混合视频。(图像+视频) 原始视频的总持续时间为180秒。我想把图像放在视频的前面。所以,我在android studio中编写了一些代码。 但是我看不到任何吐司。 怎么了?如何检查流程结束 。。。 path=“图书馆文件夹” 私有类ProcessVideo扩展异步任务{ @凌驾 受保护的Void doInBackground(Void…参数){ 进程ffmpegProcess=null; 试一试{ //初始化进程视频的命令 //库是视频处理库。 String[]command={pat

我想要混合视频。(图像+视频) 原始视频的总持续时间为180秒。我想把图像放在视频的前面。所以,我在android studio中编写了一些代码。 但是我看不到任何吐司。 怎么了?如何检查流程结束

。。。 path=“图书馆文件夹”

私有类ProcessVideo扩展异步任务{
@凌驾
受保护的Void doInBackground(Void…参数){
进程ffmpegProcess=null;
试一试{
//初始化进程视频的命令
//库是视频处理库。
String[]command={path,“-i”,input,“-r”,“1”,“-q:v”,“2”,“-f”,“image”,input};
ffmpegProcess=newprocessbuilder(ffmpegCommand).redirectErrorStream(true.start();
OutputStream ffmpegOutStream=ffmpegProcess.getOutputStream();
BufferedReader=new BufferedReader(new InputStreamReader(ffmpegProcess.getInputStream());
弦线;
Log.v(这个标签,***开始FFMPEG***”);
而((line=reader.readLine())!=null)
{
//进行中
Log.v(此标记为“***”+行+“***”);
}
//完成所有流程
Log.v(此标签,***结束FFMPEG***”);
videoProcessFinishFlag=true;
}捕获(IOE异常){
e、 printStackTrace();
}
if(ffmpegProcess!=null){
ffmpegProcess.destroy();
}
返回null;
}
受保护的void onPostExecute(void…result){
//显示结果
Toast Toast=Toast.makeText(VideoEditorActivity.this,“处理视频完成”,Toast.LENGTH\u LONG);
toast.show();
}
}

您遗漏了一些参数。 试试这个: String[]Command={path,“-y”,“-i”,input,“-strict”,“experional”,“-r”,“1”,“-q:v”,“2”,“-f”,“image”,input}; 上面的命令有两个“输入”,那么它们是不同的。 第一个参数:视频路径 第二个参数:图像文件路径 对吗?我认为,这个命令需要花费很长时间来处理视频。
谢谢您的承诺。

那么您对ffmpeg了解多少?我对你的回答很感兴趣。然后jim22,我还有更多的问题。你想回答我更多的问题吗?
    private class ProcessVideo extends AsyncTask<Void, Integer, Void> {
            @Override
            protected Void doInBackground(Void... params) {

                Process ffmpegProcess = null;

                try {
          // initialize command for process video
              // library is video process library.
                    String[] command ={path,"-i", input, "-r", "1", "-q:v", "2", "-f", "image", input};


                    ffmpegProcess = new ProcessBuilder(ffmpegCommand).redirectErrorStream(true).start();

                    OutputStream ffmpegOutStream = ffmpegProcess.getOutputStream();
                    BufferedReader reader = new BufferedReader(new InputStreamReader(ffmpegProcess.getInputStream()));

                    String line;

                    Log.v(THISTAG,"***Starting FFMPEG***");
                    while ((line = reader.readLine()) != null)
                    {
// in progress 
                        Log.v(THISTAG,"***"+line+"***");
                    }
// finish all process
                    Log.v(THISTAG,"***Ending FFMPEG***");
                    videoProcessFinishFlag = true;

                } catch (IOException e) {
                    e.printStackTrace();
                }

                if (ffmpegProcess != null) {
                    ffmpegProcess.destroy();
                }
                return null;
            }

            protected void onPostExecute(Void... result) {
// show result
               Toast toast = Toast.makeText(VideoEditorActivity.this, "Done Processing Video", Toast.LENGTH_LONG);
                toast.show();
            }
        }