我正在使用
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
谁能帮帮我?提前致谢!
最佳答案
我遇到了同样的问题,我的问题是:我以错误的方式调用了 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" };
不过,创建此数组的正确方法是将命令拆分为单独的字符串:
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"};
然后调用执行:
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) {
}
我在 lauffenp 对这个问题的评论中找到了这个解决方案:https://github.com/WritingMinds/ffmpeg-android-java/issues/88
关于Android ffmpeg 输出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36833323/