Grandes mejoras de rendimiento en la concatenación de audio y video
Hace poco actualizamos nuestros Robots de concatenación de audio y video para que usen el muxer concat de FFmpeg, lo que se traduce en una mejora significativa del rendimiento en las Assemblies correspondientes.
Para que las Assemblies aprovechen el nuevo muxer, los archivos de entrada deben cumplir las siguientes condiciones:
- Estar codificados en el mismo formato (p. ej., todos MP4).
- Usar los mismos códecs para sus streams (p. ej., H.264 para video y AAC para audio).
- Tener los mismos parámetros de códec (como resolución y velocidad de fotogramas para el video, o frecuencia de muestreo para el audio).

Por qué es mucho más rápido
Concatenar con el muxer concat es mucho más rápido que usar filtros complejos y volver a transcodificar, por varias razones:
No se requiere recodificación
Al usar el muxer de concatenación con -c copy, FFmpeg no necesita decodificar y luego recodificar
los streams. La recodificación es un proceso intensivo en CPU que puede aumentar considerablemente
el tiempo de ejecución de una Assembly, sobre todo en Assemblies que procesan video de
alta resolución. Al omitir ese paso, el muxer concat evita recodificar los archivos
innecesariamente y completa la Assembly mucho más rápido.
Copia directa de datos
En esencia, el muxer concat permite que FFmpeg copie directamente los datos multimedia de los archivos de origen al archivo de salida. Como el procesamiento involucrado es mínimo (más allá de analizar las cabeceras de los archivos y ajustar las marcas de tiempo), la operación está limitada principalmente por la velocidad del medio de almacenamiento.
Preserva la calidad
Como no hay recodificación, tampoco hay pérdida de calidad por los artefactos de compresión que podrían introducirse durante el proceso de codificación. Este es un beneficio adicional, más allá de la mejora de velocidad.
En cambio, usar filtros complejos o recodificar obliga a FFmpeg a decodificar por completo todos los streams, procesarlos (lo que puede incluir escalado, filtrado u otras transformaciones) y después recodificarlos al formato de destino. Esto no solo lleva más tiempo, sino que también puede degradar la calidad y aumentar el tamaño del archivo.
Este enfoque es similar al de LosslessCut, un editor de video de código abierto creado por nuestro propio Transloadian Mikael Finstad. LosslessCut también usa el demuxer concat de FFmpeg para editar video de forma rápida y sin pérdidas.
Para sacarle el máximo partido a este cambio, asegúrate de transcodificar primero los archivos de
entrada que difieran al mismo formato, códec y resolución. Para obtener el mejor rendimiento aquí,
usa turbo: true y uno de nuestros
ajustes preestablecidos. Con ambos, puedes mejorar mucho el
tiempo de ejecución de tus Assemblies existentes.
Si los archivos de entrada ya comparten formato, códec y resolución, no hace falta añadir Steps de codificación adicionales, ya que deberías estar notando las mejoras de rendimiento de forma predeterminada. Sin embargo, si tus archivos pueden venir en distintos formatos, códecs o resoluciones, te recomendamos añadir un Step de /file/filter para enviar los archivos atípicos a un Step de codificación, y así aprovechar al máximo tus Steps de concatenación posteriores.
