Uso único de ffmpeg para lograr el desarrollo de video de síntesis de imagen + audio
Según el necesidades, al principio se propusieron varios planes importantes
Finalmente se decidió el tercer plan porque el público de esta función son usuarios de edad avanzada y el rendimiento del teléfono móvil puede ser deficiente. Debido a que el público de esta función son usuarios de edad avanzada, el rendimiento de los teléfonos móviles puede ser muy deficiente y es más apropiado dejar las operaciones que consumen mucho tiempo al servidor.
Niuniu no proporciona síntesis de audio y vídeo operaciones como consultas, imágenes correspondientes + videos de síntesis de audio, etc. API ~
Por lo tanto, la omnipotente herramienta de procesamiento multimedia solo se puede utilizar en el lado del servidor: ffmpeg. El plan general es el siguiente
Puede ver el plan anterior
Sitio web oficial: /p/31674583
La operación de ejecución del comando ffmpeg específico, la primera versión es la siguiente:
Consulté al instructor de ginseng y me presentó una herramienta: mediainfo. Esta herramienta puede ver la información detallada del video, como la duración de la pista de audio (Audio) y la imagen (Video). La primera versión de la operación de síntesis de audio y video se puede utilizar para sintetizar el video. La duración de la imagen es de solo 40 ms, mientras que la duración de la pista de audio es de solo 40 ms y 7 segundos, lo que produce una desincronización grave, por lo que en algunos navegadores (Safari). ), arrastrar la barra de progreso no se puede reproducir normalmente:
Referencia: use FFmpeg para combinar una imagen + un archivo de audio en un video
En la respuesta de "Community Wiki", usted Puede usar el siguiente comando ffmpeg para generar Vide_Duration y Audio_Duration que están cerca del video.
El fenómeno es que aunque es la grabación del primer PPT, la pantalla ya Después de pasar a la segunda página de el PPT, la grabación todavía está reproduciendo la primera página del PPT y el video todavía está reproduciendo la primera página del PPT. La grabación todavía reproduce la voz grabada al final de la primera página del PPT
Motivo: al ver el video final empalmado a través de mediainfo, descubrimos que Video_Duration y Audio_Duration aún son inconsistentes
Síntesis de audio/vídeo Los clips de vídeo sintetizados en el primer paso tienen problemas con Video_Duration y Audio_Duration
Video_Duration y Audio_Duration están cerca del primer paso de la síntesis de audio/vídeo. Duration y Audio_Duration no son exactamente iguales. Cuando se unen, la pista de audio y la pista de imagen se unen por separado y los dos últimos ejes son inconsistentes.
Por lo tanto, debemos procesarlo en el primer paso de la síntesis de audio/vídeo para que Video_Duration y Audio_Duration sean estrictamente consistentes o lo más parecidos posible
Después de la síntesis de audio/vídeo, hay otro paso La operación consiste en recortar manualmente los videoclips sintetizados para que Video_Duration y Audio_Duration del video sean consistentes:
De esta manera, el video resultante Video_Duration y Audio_Duration no estarán demasiado separados.
Después de comunicarme con compañeros de clase de Android, descubrí que el problema era la falta de fotogramas clave en el video y necesitaba agregar fotogramas clave al video.
Referencia:
p>Después de establecer la velocidad de fotogramas en 1, el tamaño del archivo generado se optimiza a 356k
El comando de teclado para establecer la velocidad de fotogramas en 1 es el siguiente:
Al mismo tiempo, también escribí un pequeño
Al mismo tiempo, también escribí un pequeño script e hice algunos experimentos para verificar que establecer artificialmente la velocidad de fotogramas también reducirá en gran medida la velocidad de procesamiento: p>
Del experimento anterior, durante 1 minuto para audio, establecer artificialmente la velocidad de fotogramas en 2 puede reducir el tiempo de procesamiento en al menos un 50 % y reducir el tamaño del archivo generado en casi un 60 %
Después de la síntesis de audio y video, el video viene con fotogramas clave, entonces ¿Por qué se corta el video y se pierden fotogramas clave?
Después de una comparación cuidadosa, descubrimos que los comandos para la síntesis y el truncamiento de audio/vídeo son ligeramente diferentes.
Después de observar cuidadosamente los dos comandos anteriores y buscar en línea, encontramos que -c: a y - acodec significan una cosa, indicando el modo de codificación de audio, y -c:v y -vcodec significan lo mismo, indicando el modo de codificación de video
Aquí hay dos comandos, uno especifica libx264 y el otro especifica h264. Sospecho que la inconsistencia provoca la pérdida de fotogramas clave.
Después de algunos experimentos, descubrí que mi suposición era correcta.
Al unificar los métodos de decodificación de audio para la síntesis de audio/vídeo y el truncamiento de vídeo en libx264, podemos asegurarnos de que los fotogramas clave del vídeo truncado no se pierdan:
Tres pasos:
Este comando establece artificialmente la velocidad de fotogramas de la composición en 1, reduciendo así el tiempo de procesamiento y el tamaño del archivo generado.
Este comando establece el intervalo de fotogramas clave en 1 fotograma cada 1 fotograma, resolviendo así el problema; La reproducción de Android RN no puede tirar de la barra de progreso;
Referencia: soy un enlace al blog de CSDN
El truncamiento es para garantizar que la longitud de la pista de audio sea consistente con la longitud de la pista de la pantalla
Manténgala lo más consistente posible para evitar que el empalme de audio y video no esté sincronizado