h.264 - color - ¿Hay una desventaja de poner el átomo de MOOV al comienzo de un archivo MP4?
hr html (2)
La codificación de MOOV al final del archivo suele ser una operación predeterminada para los codificadores de video, ya que tienden a funcionar al escribir el archivo de salida en una sola pasada, y el contenido exacto y el tamaño del átomo de MOOV solo se pueden conocer después de haber escrito audio y datos de video en su totalidad, porque contiene tamaños de archivo absolutos.
El ejemplo principal para esto es FFMpeg, con una explicación encontrada en esta respuesta: https://stackoverflow.com/a/8066089/393701
FFMpeg tiene una opción para reservar espacio para este átomo, pero no se garantiza que los datos se ajusten perfectamente.
Tener el átomo de MOOV al final no tiene ningún beneficio especial, simplemente no es tan inconveniente en situaciones de reproducción local donde la búsqueda al final del archivo antes de la reproducción no es tan costosa como en la entrega de descarga progresiva.
Veo toneladas de preguntas sobre la reubicación del átomo de moov
desde el final de un contenedor de video MP4 hasta el principio, para hacer que el video esté "optimizado para la web" o sea más fácil de transmitir. Parece que la mayoría de las herramientas requieren una opción explícita para hacer esto cuando se codifica el video por primera vez, si está disponible.
Si colocar el átomo al principio hace que la transmisión funcione mejor, y es costoso hacerlo después del hecho, ¿por qué querría codificar el video con el átomo al final? ¿Cuál es el beneficio?
Siempre querrá colocar la información del índice al principio del archivo, no hay un costo oculto para este diseño, excepto el único: mientras realiza la captura / transcodificación, es posible que no pueda saber de antemano cuánto espacio necesita para ese MOOV. átomo al principio, y sus datos aún no están disponibles. Por lo tanto, normalmente escribe la carga útil directamente en el archivo y completan la escritura agregando MOOV y actualizando el resto del archivo.