Cómo comprimir mp4 video con MediaCodec Android?
En mi aplicación para Android, quiero comprimir el video mp4 cambiando su resolución, bitrate. No quiero usar FFmpeg (porque no quiero usar NDK), así que decidí usar MediaCodec API.
Estos son mis pasos lógicos:
- Android: lee y escribe metadatos .mp4 -Tag
- Android: no se puede reproducir vídeo mp4
- Convertir PCM a AAC o MP4 archivo sin MediaMuxer
- ¿Por qué mi aplicación Android dice "No se puede reproducir el vídeo" después de la reproducción?
- Cómo agregar un átomo MOOV en un archivo de video mp4
- Extraiga el archivo de vídeo con MediaExtractor y, a continuación, descodifique los datos.
- Crear nuevo codificador con mi nueva resolución, bitrate y codificar datos.
- Uso de MediaMuxer para crear un nuevo archivo mp4.
Mi problema es: No sé cómo configurar la conexión entre la salida del decodificador y la entrada del codificador. Puedo decodificar el video a una superficie o codificar un nuevo video de una superficie. Pero no entiendo cómo conectarlos.
He leído estos enlaces: Android MediaCodec: Reduzca el tamaño de vídeo mp4 , la compresión de vídeo en android utilizando la nueva biblioteca de MediaCodec y el ejemplo de Bigflake: https://android.googlesource.com/platform/cts/+/jb-mr2-release/tests /tests/media/src/android/media/cts/DecodeEditEncodeTest.java
¿Puede alguien darme una explicación clara de lo que tengo que hacer?
- Adición de un recurso de imagen sobre archivo de vídeo desde la tarjeta sd mediante ffmpeg o MediaMuxer para android
- Android, ¿cómo establecer los metadatos en el archivo MP4?
- Adición de mapa de bits de marca de agua en video en android: MediaMuxer de 4.3 o ffmpeg
- Fusionar archivos de video mp4 en Android
- Decodificar mp4 / h.264 usando MediaCodec sin MediaExtractor, formato de unidad de acceso esperado
- Android VideoView error (1,16) y muestra la pantalla en negro
- Guarda la grabación de vídeo en tiempo real en la tarjeta sd mediante el Socket local en Android - El vídeo no se puede reproducir
- Android MediaCodec: Reduce el tamaño del video mp4
He utilizado esto para ver cómo manipular vídeo en android: https://github.com/hoolrory/AndroidVideoSamples , compruebe el VideoResampler.java
en la CommonVideoLibrary
.
- Arrastrar y soltar RecyclerView que se rellena desde SQLiteDatabase
- Cómo obtener los límites adecuados de una vista después de la transformación Matrix