Android ffmpeg输出错误

Dan*_*her 5 video android ffmpeg

我在用

https://github.com/writingminds/ffmpeg-android-java

在android上运行ffmpeg命令.我试图在视频上叠加图像.出于某种原因,执行此命令时出现以下错误.

ffmpeg -i input.mp4 strict -2 -i overlay.jpg -filter_complex [0:v][1:v] overlay=25:25:enable='between(t,0,4)' output.mp4

Output file #0 does not contain any stream
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我吗?提前致谢!

Mat*_*dim 5

我遇到了同样的问题,我的问题是:我以错误的方式调用execute方法.我传递的字符串数组是这样的:

final String[] cmd = new String[] { "-i input.mp4 strict -2 -i overlay.jpg -filter_complex [0:v][1:v] overlay=25:25:enable='between(t,0,4)' output.mp4" };
Run Code Online (Sandbox Code Playgroud)

但是,创建此数组的正确方法是将命令拆分为单独的字符串:

final String[] cmd = new String[]{ "-i", "input.mp4", "strict", "-2", "-i", "overlay.jpg", 
                "-filter_complex", "[0:v][1:v]", "overlay=25:25:enable='between(t,0,4)'", "output.mp4"};
Run Code Online (Sandbox Code Playgroud)

然后调用execute:

try {
    final FFmpeg ffmpeg = FFmpeg.getInstance(context);
    ffmpeg.execute(cmd, new FFmpegExecuteResponseHandler() {
        @Override
        public void onSuccess(String message) {

        }

        @Override
        public void onProgress(String message) {

        }

        @Override
        public void onFailure(String message) {

        }

        @Override
        public void onStart() {

        }

        @Override
        public void onFinish() {

        }
    });
} catch (FFmpegCommandAlreadyRunningException e) {

}
Run Code Online (Sandbox Code Playgroud)

我在lauffenp对此问题的评论中找到了这个解决方案:https://github.com/WritingMinds/ffmpeg-android-java/issues/88