2014-09-01 9 views
6

Ho un file eseguibile ffmpeg compilato per ARM Android nella mia cartella /data/data/APP/files, con autorizzazione di esecuzione. Sto cercando di eseguire un comando basato su un esempio estratto da FFmpeg site.Esegui binario eseguibile FFmpeg in Android

Questa è la riga di comando che sto scrivendo:

./ffmpeg -loop 1 -i /mnt/sdcard/com.example.test/image.png -c:v libx264 -t 30 -pix_fmt yuv420p /mnt/sdcard/com.example.test/video.mp4 

Il mio scopo principale è quello di eseguirlo dalla mia app, ma anche in linea di comando, sto ottenendo questo errore:

./ffmpeg: 1: Syntax error: "(" unexpected 

Qualcuno sa cos'è e come risolverlo?

- AGGIORNAMENTO

Ho trovato un newer version e penso che ho passato attraverso tale errore.

Ma ora, per qualsiasi chiamata a ffmpeg eseguibile, sto ottenendo un errore come questo:

# ./ffmpeg -loop 1 -i /mnt/sdcard/com.example.teste/imagem.png -c:v libx264 -t 30 -pix_fmt yuv420p /mnt/sdcard/com.example.teste/video.mp4 
[1] + Stopped (signal)  ./ffmpeg -loop 1 -i /mnt/sdcard/com.example.teste/imagem.png -c:v libx264 -t 30 -pix_fmt yuv420p /mnt/sdcard/com.example.teste/video.mp4 
[1] Segmentation fault  ./ffmpeg -loop 1 -i /mnt/sdcard/com.example.teste/imagem.png -c:v libx264 -t 30 -pix_fmt yuv420p /mnt/sdcard/com.example.teste/video.mp4 

Che cosa significa?

+0

Ehi Diego, puoi dirmi su quale Android O/S stai utilizzando? Questa build supporta solo dispositivi JB +. –

+0

Ho appena provato a eseguire il comando precedente e in grado di generare correttamente il file di output, controlla l'output qui https://gist.github.com/hiteshsondhi88/48783de48248ab72fc23, ho anche aggiunto binari precompilati al progetto che puoi utilizzare, l'errore di segmentazione potrebbe verificarsi a causa di un binario errato, ad esempio si potrebbe utilizzare il neon binario su dispositivi non neon. –

+0

Bene. Non so quale fosse il vero problema. Stavo ricevendo quell'errore nell'esecuzione della riga di comando in un emulatore API di livello 19. Ho risolto il mio problema in realtà codificandolo nella mia app usando 'logcatProc = Runtime.getRuntime(). Exec();' ed eseguendo l'app sul mio dispositivo reale (Galaxy S2 con ICS API 15). –

risposta

1

Ho risolto il problema utilizzando i suggerimenti e i file di @HiteshSondhi su Cross Compiling FFmpeg with x264 for Android.

In realtà, non ho compilato l'intero FFmpeg da solo. Invece, ho usato e configurato lo SampleFFmpegApp che distribuisce allo his GitHub page.

E il suggerimento finale: provalo in un dispositivo reale. Questo è l'unico posto in cui potrei davvero farlo funzionare bene.

Problemi correlati