2016-04-25 17 views
5

Sto usandoAndroid errore ffmpeg uscita

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

per eseguire i comandi ffmpeg su Android. Sto cercando di sovrapporre un'immagine a un video. Per qualche ragione, ottengo il seguente errore quando eseguo questo comando.

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 

Qualcuno potrebbe darmi una mano? Grazie in anticipo!

+0

qualsiasi fortuna con quello? Anch'io sto affrontando questo problema. –

+0

No. Penso che il problema sia la build che stiamo usando. Prova e crea la tua nuova versione di FFMpeg. Costruiscilo con le giuste caratteristiche. Penso che la build che stiamo usando non abbia le cose giuste al suo interno. Ho finito per abbandonare FFMpeg, ha aumentato le dimensioni della mia app troppo ed è stato lento. –

+0

Vedo. Credo di aver trovato la soluzione per questo problema, pubblicato come risposta =) –

risposta

4

Ero di fronte a questo stesso problema e il mio problema era: stavo chiamando il metodo di esecuzione nel modo sbagliato. L'array di stringhe stavo passando era qualcosa di simile a questo:

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" }; 

Il modo corretto per creare questa serie, però, è quella di dividere il comando nelle stringhe separate:

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"}; 

e quindi chiamare eseguire:

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) { 

} 

ho trovato questa soluzione al commento di un lauffenp su questo tema: https://github.com/WritingMinds/ffmpeg-android-java/issues/88

+0

Hey Come puoi eseguire correttamente questo comando, puoi aiutarmi con quello che sto facendo di sbagliato? Ricevo questo errore "A/libc: Segnale fatale 11 (SIGSEGV), codice 1, errore addr 0x0 in tid 14661 (AsyncTask # 4)" per ogni comando filter_complex – Nisarg