Command Palette

Search for a command to run...

Unir dos clips es una re-codificación, no una pasta

Unir dos clips es una re-codificación, no una pasta

T
Toolz Team
|Oct 21, 2026|18 Min Lectura
Prefiera Toolz.dev en Google

Parte de la colección Editores

Editor de vídeo

Une varios clips en un video, recorte cada uno de ellos, reordene y establezca la resolución, la velocidad y el audio. Todo se ejecuta en su navegador, por lo que no se carga nada.

Utilice el Editor de vídeo

Poner dos archivos de video de extremo a extremo suena como la operación más barata del mundo, y durante unos cinco minutos lo creí. Luego me uní a un clip de 1280x720 a 30 fps a un clip de 640 x 480 a 25 fps utilizando el método más rápido disponible, que copia las transmisiones y no reescribo nada. produjo un archivo. El archivo afirmó tener once puntos nueve de nueve seis segundos cuando los dos clips suman once, el contenedor dijo 1280x720 mientras que la segunda mitad de la corriente era de 640x480, y el muxer imprimió una advertencia sobre marcas de tiempo reescritos para cada fotograma del segundo clip. Todo sobre unirse a video se sigue de por qué sucede eso.

TL;Dr: La unión barata solo funciona cuando ambos archivos ya están de acuerdo en el códec, la resolución, la velocidad de fotogramas y la base de tiempo, que las imágenes de dos dispositivos nunca funcionan. La ruta honesta decodifica ambos y codifica un archivo nuevo, que es más lento y produce algo que se reproduce. Medido aquí: El método de copia reportó 11.996 segundos durante 11 segundos de metraje y declaró la resolución incorrecta; la re-codificación produjo exactamente 11.000 segundos en un solo 1280x720 consistente en 0.63 segundos. Primero se deben colocar clips de diferentes tamaños en un marco, o la unión se rechaza directamente. los Vídeo Editor Lo hace todo en el navegador, hasta ocho clips y treinta minutos.

¿Por qué dos clips no pueden estar pegados juntos?

Porque un archivo de video no es un flujo de imágenes con un encabezado. Es un contenedor que contiene flujos codificados y la codificación transporta el estado.

H.264 comprime al describir la mayoría de los fotogramas como diferencias con otros marcos. Un fotograma clave solo se mantiene solo; todo después de definirlo en relación con lo que vino antes, hasta el siguiente fotograma clave. El decodificador también necesita los conjuntos de parámetros de la secuencia, que describen la resolución, el formato de color y el perfil, y contiene una base de tiempo que convierte los números de cada paquete en segundos.

Dos archivos hechos por dos dispositivos no coinciden en nada de eso. Diferentes resolución significa diferentes conjuntos de parámetros. La frecuencia de fotogramas diferente generalmente significa una base de tiempo diferente. Incluso dos clips del mismo teléfono, grabados con un año de diferencia, pueden diferir porque la aplicación de la cámara cambió la configuración de su codificador.

Concatenar los bytes le da una corriente cuyo decodificador se dice una cosa en el encabezado y se entrega otra a la mitad. A veces un jugador se las arregla. A menudo muestra el primer clip y se detiene, o reproduce el segundo como ruido de color.

¿Qué produce el método rápido?

Un archivo, una pila de advertencias y una duración que es incorrecta.

ffmpeg'S demuxer de Concat Con la copia de flujo es el método cada "simplemente únase a ellos" la respuesta en línea recomienda, y es realmente la herramienta correcta cuando las entradas coinciden. Apuntando a mis dos clips que no coinciden, sale con éxito, y esto es lo que me devuelve:

Medida esperado producido
duración 11.000 s 11.996 s
resolución declarada Un valor, correcto 1280x720 para una transmisión que se convierte en 640x480
Advertencias de marca de tiempo ninguno Uno por cuadro del segundo clip

Las advertencias dicen lo mismo:

Non-monotonic DTS; previous: 90981, current: 76133; changing to 90982.
This may result in incorrect timestamps in the output file.

Las marcas de tiempo del segundo clip se reinician desde cero, como deberían dentro de su propio archivo, y el muxer no escribirá una secuencia cuyas marcas de tiempo retroceden. Por lo tanto, inventa nuevos, un cuadro a la vez, y la diferencia acumulada entre el tiempo real y el tiempo inventado es de donde proviene el segundo extra.

FFmpeg aún puede decodificar ambas mitades después, porque FFmpeg es inusualmente tolerante. Un navegador no lo es. Este es el archivo que se reproduce bien en su máquina y muestra un rectángulo negro para un espectador.

¿Cuánto cuesta unir a través de un gráfico de filtro y qué compra?

Cuesta una decodificación completa y codificación. compra un archivo que es correcto.

En lugar de copiar flujos, cada entrada se decodifica en tramas, los fotogramas se recortan y se unen dentro de un gráfico de filtro, y se codifica una nueva secuencia a partir del resultado. Cada cuadro pasa a través de un decodificador y un codificador, que es un trabajo real.

Lo que compra es que la salida tiene un códec, una resolución, una velocidad de fotogramas y un conjunto continuo de marcas de tiempo, porque todo se codifica a la vez desde cero. En los mismos dos clips:

Medida Método de copia Gráfico de filtro
duración 11.996 s 11.000 s
Resolución Declarado 1280x720, se convierte en 640x480 1280x720 en todo
cuadros 305 305
tiempo de exportación instante 0,63 s
Tamaño más pequeño 2.1 Mb

0,63 segundos de trabajo durante 11 segundos de salida, en un escritorio que ejecuta ffmpeg de forma nativa. En una pestaña del navegador a través de WebAssembly, es varias veces más lento, que es el intercambio honesto y la razón por la que se limita el número de clips.

¿Por qué cada clip necesita refundarse en las marcas de tiempo?

Porque la concatenación en un gráfico de filtro une flujos y las marcas de tiempo de una secuencia son absolutas.

Los marcos de cada clip llegan a los tiempos de carga medidos desde el comienzo de su propio archivo. Recorte una sección de la mitad de un clip y esos fotogramas todavía dicen "Esto sucede a los 42 segundos. Únete a un clip que termine en 6 segundos y tendrás una corriente que salta de 6 a 42, con 36 segundos de nada intermedio.

setpts=PTS-STARTPTS Resta el comienzo de cada clip de cada fotograma, por lo que cada clip comienza en cero antes de unirse. El equivalente de audio es asetpts. Sin ellos, la salida reproduce el primer clip, luego una congelación larga, luego la segunda. Es el error más común en los comandos de combinación ffmpeg escritos a mano, y es silencioso: el archivo es válido y la duración es simplemente incorrecta.

¿Qué sucede cuando los clips son de diferentes tamaños?

La unión se rechaza, y hasta hace poco esa negativa era toda la historia aquí.

los Filtro concat Compara sus entradas y no se ejecutará si las dimensiones de vídeo o la relación de aspecto de muestra no están de acuerdo:

Input link in0:v0 parameters (size 640x480, SAR 1:1) do not match the
corresponding output link in0:v0 parameters (1280x720, SAR 1:1)
Failed to configure output pad on Parsed_concat_8

Eso es un aborto, no una advertencia: no se produce ningún archivo. Dos teléfonos, o un clip de teléfono y una grabación de pantalla, es exactamente el caso que lo desencadena, y es la razón ordinaria por la que alguien une clips.

El audio no necesita tal ayuda, que vale la pena conocer porque es contra-intuitivo. El mismo gráfico unió una pista mono de 44,1 kHz a una estéreo de 48 kHz sin queja y produjo un archivo exacto de 11.000 segundos. Solo el lado del video es estricto.

La solución es establecer un cuadro para toda la línea de tiempo y colocar cada clip en él antes de unirse. La altura proviene de la resolución de salida que eligió, o del primer clip cuando mantiene la resolución de origen, y el ancho sigue a la relación de aspecto de clip, por lo que una línea de tiempo de las imágenes de retrato se mantiene en vertical. Luego, cada clip se escala para que quepa dentro de ese marco y se rellena para llenarlo:

scale=1280:720:force_original_aspect_ratio=decrease,
pad=1280:720:(ow-iw)/2:(oh-ih)/2,setsar=1

Adecuar en lugar de llenar significa que un clip de una forma diferente se encuentra en un buzón en lugar de estirado, que es el menor de dos males cuando un clip de 4:3 se encuentra con una línea de tiempo de 16:9. setsar=1 No es decoración: el filtro compara la relación de aspecto de muestra y las dimensiones de los píxeles, por lo que dos clips pueden ser del mismo tamaño y aún así ser rechazados.

Ambas dimensiones se redondean a números pares, porque H.264 en 4:2:0 almacena color a la mitad de resolución en cada dirección y no puede codificar un ancho o una altura impar.

¿Por qué sólo ocho clips y treinta minutos?

Porque cada clip cuesta un pase de decodificación dentro de una pestaña del navegador y la pestaña tiene una cantidad fija de memoria.

Ocho entradas significa ocho decodificadores que se ejecutan en el mismo gráfico de filtro, más el codificador, más todos los archivos de origen que se mantienen en la memoria porque no hay disco para transmitir. Treinta minutos de salida es el punto pasado que el codificador tarda el tiempo suficiente como para que la gente asuma que la página se ha colgado.

Ningún límite es una ley del formato. Ambos son la línea pasada que la compilación del navegador deja de ser agradable, y se indican por adelantado en lugar de descubrir cuando una pestaña se bloquea cuarenta minutos en una exportación. También se rechaza un clip más corto que una décima de segundo, porque debajo de eso no aporta marcos y errores de FFmpeg en lugar de advertir.

Para cualquier cosa más grande, esta es la herramienta incorrecta y un editor de escritorio es el correcto.

¿En qué se diferencia el recorte aquí de la recortadora?

Recortar dentro de una unión es preciso de marco, y no cuesta nada extra.

el dedicado recortadora de video Ofrece un modo rápido que copia la corriente y solo puede cortar en un fotograma clave, por lo que el inicio de un recorte a veces llega hasta diez segundos antes. su guía Cubre por qué en detalle.

Ese comercio no existe aquí, porque la exportación está re-codificando todo de todos modos. El recorte ocurre dentro del gráfico de filtro, en marcos decodificados, por lo que un corte a 4,3 segundos es un corte a 4,3 segundos. Obtienes la precisión del cuadro libre, como un efecto secundario del costo que ya estás pagando.

Entonces, si desea un clip recortado y nada más, el modo rápido de la recortadora es mucho más rápido. Si te unes a algo, recortar aquí.

¿Qué hace un cambio de velocidad con el audio?

Tiene que ser manejado por separado, y la aritmética no es la misma que para el video.

La velocidad de vídeo es una operación de marca de tiempo: setpts=PTS/2 Reduce el tiempo de presentación de cada cuadro y los marcos en sí están intactos. El audio no puede funcionar de esa manera, porque reproducir muestras dos veces más rápido eleva el tono una octava. los atempo En su lugar, filtre las remuestras, manteniendo el tono y cambiando la duración.

atempo Aceptado solo 0,5 a 2,0 en un solo pase durante la mayor parte de su vida, por lo que se construye un cambio de 4x como dos pases de 2x y un cambio de 0.25x cuando dos pases de 0.5x. Las construcciones actuales han elevado el techo y FFmpeg 8.1 informa un rango de 0,5 a 100. medido en un clip, un solo atempo=4 y un encadenado atempo=2,atempo=2 Aterrizó con 11 milisegundos de distancia.

La cadena sigue siendo lo que se construye, porque el núcleo de WebAssembly se recupera en el tiempo de ejecución en lugar de fijarlo a una versión, y multiplicar pases es correcto en cada compilación que haya enviado el filtro. El rango de velocidad ofrecido, 0.25x a 4x, es donde el resultado sigue siendo una edición en lugar de una novedad.

MP4 o WebM?

MP4 a menos que tenga una razón específica, y la razón casi siempre es una licencia en lugar de un argumento de calidad.

MP4 web
Códec de vídeo H.264 VP9
códec de audio TAA obra
juega en todo Navegadores, la mayoría de los jugadores modernos
Codificar la velocidad en una pestaña más rápido considerablemente más lento
Tamaño a calidad similar más grande más pequeño

VP9 produce archivos más pequeños para la misma calidad percibida, y es libre de regalías, lo que importa a algunos proyectos y no a otros. ffmpeg... Guía de codificación VP9 es contundente sobre el costo de la velocidad. Lo que no es es rápido. La ruta webM aquí se ejecuta en un CRF más alto con una fecha límite en tiempo real y cpu-used 5, que son configuraciones que una codificación de escritorio consideraría descuidada, porque sin ellas una codificación VP9 en una pestaña tarda el tiempo suficiente para sentirse roto.

La ruta MP4 usa -preset veryfast en CRF 23 con yuv420p, más -movflags +faststart, que mueve el índice al frente del archivo para que se reproduzca al descargarlo en lugar de solo después.

¿Qué tan grande será la exportación y cuánto tiempo tomará?

El tamaño es predecible a partir de la resolución. El tiempo no es predecible de nada.

Debido a que la exportación siempre vuelve a codificar, el tamaño del archivo de origen le dice muy poco sobre el resultado. En cambio, la estimación se muestra de la altura de salida: aproximadamente 5 Mbps a 1080p, 2.5 a 720p, 1.2 por debajo de eso, con WebM aterrizando alrededor del 70% de la cifra de MP4 y el audio agregando 128 kbps a menos que silenciado.

Esa es una estimación y está etiquetada como una, porque el contenido importa más que cualquier fórmula. Una toma de entrevista estática y una panorámica de mano a través de los árboles con la misma resolución y el mismo CRF difieren varias veces, ya que CRF apunta a un nivel de calidad y gasta cualquier bitrate que asuma.

El tiempo depende de su máquina, la resolución, la cantidad de clips y si la pestaña tiene algo más que hacer. La ejecución de FFmpeg nativa por encima de 11 segundos de salida en 0,63 segundos, espera que el navegador sea varias veces más lento que eso y espere que WebM vuelva a ser más lento.

que esto no hace

Se une, recorta, reorden, escala, cambia de velocidad y suelta el audio. Ese es todo el conjunto de funciones, y vale la pena tener claro la brecha entre él y un editor de video.

No hay transiciones, ni títulos, ni pista de música, ni corrección de color, ni recorte, ni volumen por clip, ni nada enmarcado, ni vista previa de la línea de tiempo terminada. Cada clip se recorta y se coloca, se aplica un conjunto de configuraciones de salida a todos ellos y el resultado se codifica.

Eso cubre un trabajo real y común: varias grabaciones que necesitan convertirse en un solo archivo, recortadas a las partes útiles, en el orden correcto, en un tamaño que aceptará algo. Para cualquier cosa que involucre una decisión creativa, use un editor.

¿En qué orden van los clips y puedes cambiarlo?

El orden que los agregaste, y sí, con los botones de arriba y abajo en cada clip.

Reordenar es una operación de lista en lugar de una video: mover un clip cambia el índice de entrada que ocupa en el gráfico de filtro y no se vuelve a leer ni decodificar nada hasta que se ejecuta la exportación. Por lo tanto, un movimiento es instantáneo por muy grandes que sean los archivos, y puede reorganizar una línea de tiempo tantas veces como desee de forma gratuita.

Los botones en lugar de arrastrar y soltar es una opción deliberada para una lista de como máximo ocho elementos. Cada uno lleva una etiqueta con el nombre del clip que mueve, por lo que el orden se puede cambiar por teclado y legible por un lector de pantalla, ninguno de los cuales le brinda un controlador de arrastre sin mucho trabajo adicional.

Lo que vale la pena comprobar antes de exportar es la dirección de la secuencia. Varias grabaciones del mismo evento suelen llegar de un selector de archivos en orden alfabético, que es el orden en que se producen los nombres de archivo de una cámara y no siempre el orden en que se realizaron las grabaciones.

¿Por qué se ejecuta esto en el navegador?

Porque el metraje suele ser del tipo que preferirías no cargar, y el trabajo no necesita servidor.

Cada operación aquí es FFmpeg y FFmpeg Compila para WebAssembly. Los archivos se leen de su disco en la pestaña, se decodifican allí, se unen allí, se codifican allí y se devuelven como descarga. No se carga nada, no hay cola contiene sus imágenes y no hay copia en una máquina que no controle.

Los clips que se unen a las personas son entrevistas, consultas, grabaciones familiares, capturas de pantalla de software interno, borradores bajo el embargo. La alternativa habitual carga varios cientos de megabytes a un servicio gratuito, lo convierte en hardware del que no sabes nada y lo mantiene bajo términos que nadie lee.

Los costos son los techos de ocho y treinta minutos, y un código que es más lento que uno de escritorio. Ambos se indican antes de comenzar, que es el comercio que vale la pena tomar.

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!