Recorte de video de Android a través de ffmpeg

He descargado el código de recorte de vídeo de github desde este enlace .

Está funcionando perfectamente por primera vez, pero cuando intento ejecutarlo por segunda vez el código se bloquea sin ninguna excepción, entonces de nuevo cuando intento ejecutarlo por tercera vez después del fallo funciona! ¿Alguien tiene alguna idea para este tipo de comportamiento?

También estoy desarrollando una aplicación que tiene un módulo de recorte de videos. Realmente lo agradecería, si alguien me pudiera ayudar.

https://lists.ffmpeg.org/pipermail/libav-user/2012-May/001964.html

La llamada al método nativo dos veces de una biblioteca de terceros en una actividad hace que la aplicación de Android se cierre

Lea sobre el problema con static vars en 'ffmpeg.c' …

Apuesto a que u tienen el mismo problema y la necesidad de hacer algo (3 opciones alternativas) para restablecer o GC los vars:

  1. Obtener el cargador de clases de java que cargó el lib y GC que

  2. En la capa c hacer lo que hizo el OP en enlace anterior

  3. Escriba una segunda biblioteca compartida que utilice 'dlsym' y 'dlclose' en la primera biblioteca durante cada ciclo de llamada

Github, vea el 'README' aquí

Mismo problema que tuviste

Basta con hacer un método en su ffmpeg.c que se parece a esto

void exitmycode(){ ffmpeg_exit(0); } 

ffmpeg_exit(0) ya está allí en el ffmpeg.c sólo tienes que llamar a exitmycode(); De su archivo principal de C después de la terminación del recorte video.

Ahora lo que estaba sucediendo es que cuando usted recorta un video o cualquier otra cosa con el ffmpeg no sale completamente, así que la próxima vez que ejecute el comando se salga, pero tampoco ejecuta el comando trim.Again if Ejecutar esa tercera vez, el comando se ejecutan perfectamente. Por lo tanto, lo que había hecho es llamar a la ffmpeg_exit(0) manualmente al final del proceso hecho.

Creo que podría terminar su actividad y reiniciar la aplicación después de la llamada de recorte de vídeo en el código.

Si después de la segunda vez la aplicación se bloquea y en la tercera funciona tal vez las aplicaciones inicializar y reiniciar la aplicación después de su caída.

Intenta cargar y descargar el enlace de la biblioteca nativa

Haz una cosa

Si ha instalado ffmpeg4android_os lib entonces sólo tiene que comentar 1 línea de método StopTranscoding como este

 public void stopTranscoding() { Log.d(Prefs.TAG, "stopTranscoding called"); if (_transcodeBackground != null) { //_transcodeBackground.forceCancel(); } } 

que todos….

  • Compilación de Android JNI para OpenCV en Mac OSX
  • Android, genera archivos de encabezado jni con javah, muestra error que no puede encontrar org.opencv.core.Mat
  • Código java para leer la imagen en lugar de obtener el marco
  • Android: Calling System.loadLibrary () hace que el proceso muera
  • Cómo eliminar soporte nativo de un proyecto de Android en eclipse porque eclipse está mostrando errores en jni?
  • Privilegios raíz para una aplicación Android (aplicación completa, no sólo unos pocos comandos)
  • Set / Get Java List <> del código C
  • JNI ERROR DETECTADO EN APLICACIÓN: entrada no es válida UTF-8 modificado: byte de inicio ilegal 0xfc.
  • Android ndk: Problema para la llamada del método Java desde c ++ con jni
  • Cómo llamar a un método Java desde C ++ / JNI que toma un parámetro de Contexto de Android
  • C ++ ifstream.getline () significativamente más lento que BufferedReader.readLine () de Java?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.