Construyendo FFmpeg para Android para usar argumentos de línea de comandos
Estoy intentando construir la biblioteca de FFmpeg para utilizar en mi androide app con el NDK. La razón de esto es porque estoy utilizando la característica de captura de vídeo nativa en android, porque realmente no quiero escribir mi propia grabadora de vídeo. Sin embargo, la captura de vídeo nativa solo permite la codificación de alta calidad o la codificación de baja calidad. Quiero algo intermedio, y creo que la solución es utilizar la biblioteca FFmpeg para volver a codificar el vídeo de alta calidad para ser más ligero.
Hasta ahora he sido capaz de construir la biblioteca FFmpeg de acuerdo con esta guía: http://www.roman10.net/how-to-build-ffmpeg-for-android/ y cuáles son algunos de los ajustes que he podido obtener trabajar.
- Android - Integración de ffmpeg y android-ndk-r9c
- Compilación ffmpeg neón en android - errores de ensamblador
- ¿Dónde hay un lugar donde el reproductor ffmpeg se conecta al servidor y empieza a almacenar en búfer?
- Android ffmpeg y aceleración de hardware
- Excluyendo los dispositivos ARMv5 y ARMv6 de Google Play
Sin embargo, todo lo que he encontrado parece ser sobre la escritura de su propio codificador, que parece como una excesiva para mí. Todo lo que realmente quiero hacer es enviar una cadena en formato de línea de comandos a la función main () de FFmpeg y volver a codificar mi video. Sin embargo, no puedo imaginar cómo construyo FFmpeg para darme acceso al método principal. He encontrado este post: Compile ffmpeg.c y llame a su main () a través de JNI que enlaza a un proyecto haciendo lo que quiero más de menos, pero para la vida de mí no puedo entender lo que está pasando. También parece que está compilando más de lo que quiero, y me gustaría realmente mantener mi aplicación lo más ligera posible.
Alguna dirección adicional sería extremadamente útil. Gracias.
- Java.io.IOException: Error ejecutando exec () Directorio de trabajo: null Medio ambiente: null
- FFMPEG para Android en Windows no se compila correctamente
- Android: concatenar dos videos
- ffmpeg para un android (usando el tutorial: "ffmpeg y Android.mk")
- Android: ExoPlayer - Obtener el número de fotograma actual del vídeo
- Compilar FFMPEG para el uso de la línea de comandos
- ¿FFMpeg jni en Android?
- Cómo jugar raw h264 producido por MediaCodec encoder?
En Android NDK no hay main () en su aplicación en el sentido típico, por lo que no puede hacer lo que quiere directamente. Sin embargo, todavía puede llamar a la principal () de FFmpeg usted mismo y proporcionar todos los parámetros necesarios para ello. Aquí hay 2 posibilidades para obtener los parámetros:
-
Actividad de Android recibe un intento después de la creación. Puede pasar los parámetros a través de la intención al iniciar su actividad y luego extraerla de la siguiente manera:
Intent CommandLine = this.getIntent(); Uri uri = CommandLine.getData();
-
Puede leer los parámetros del archivo que cree en algún lugar de una tarjeta SD y pasarlo a FFmpeg.
El segundo contestador parece tener su respuesta. Por favor, consulte este enlace. ¿Puede FFmpeg ser utilizado como una biblioteca, en lugar de un programa independiente?
- El método HttpTransportSe.call () tarda hasta un minuto en llamar al servicio web
- JSON publica en Rails desde Android