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?
Ehi Diego, puoi dirmi su quale Android O/S stai utilizzando? Questa build supporta solo dispositivi JB +. –
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. –
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). –