Miałem do czynienia z tym samym problemem, a mój problem polegał na tym, że nazwałem metodę wykonywania w niewłaściwy sposób. Tablica ciąg I mijał było coś takiego:
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" };
Prawidłowe sposobem utworzenia tej tablicy jest jednak to, aby podzielić polecenia w oddzielnych ciągów:
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"};
a następnie wywołać polecenie:
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) {
}
Znalazłem rozwiązanie na komentarzu danej lauffenp w tej kwestii: https://github.com/WritingMinds/ffmpeg-android-java/issues/88
dowolny Powodzenia z tym? Mam również do czynienia z tym problemem. –
Nie. Myślę, że problemem jest konstrukcja, z której korzystamy. Spróbuj i zbuduj własną nową wersję FFMpeg. Zbuduj go, korzystając z odpowiednich funkcji. Myślę, że kompilacja, której używamy, nie zawiera właściwych rzeczy. Porzuciłem FFMpeg, zwiększyło to mój rozmiar aplikacji i było wolne. –
Rozumiem. Wydaje mi się, że znalazłem rozwiązanie tego problemu, opublikowane jako odpowiedź =) –