Bhinish Dhiman

Cortar un video sin recodificar: dónde cae realmente el corte

Traducido del original en inglés. Leer el original

Un recorte sin recodificar empieza en un fotograma clave. Probando en pasos de 0.1 segundos en seis archivos, el inicio pedido se alcanzó exactamente en entre el 0.5% y el 9.2% de los casos; la diferencia media fue de 4.06 s con la configuración predeterminada de x264, 0.96 s con un fotograma clave cada 2 s y 0.46 s con uno cada 1 s. Los fotogramas sobrantes se quedan en el archivo; una lista de edición los oculta.

Todas las herramientas de recorte sin pérdida dicen que el corte se ajusta a un fotograma clave. Ninguna dice cuánto se mueve en un archivo como los que de verdad tienes. Lo medimos en seis.

Dos términos

Un fotograma clave (keyframe) es un fotograma guardado como imagen completa. Cada fotograma entre dos fotogramas clave se guarda como una diferencia respecto de sus vecinos, así que un decodificador que empieza en cualquier otro punto no tiene sobre qué aplicar esas diferencias. Un recorte por copia (copy-only trim) pasa los paquetes codificados a un contenedor nuevo sin decodificarlos; no puede empezar a mitad de una diferencia, así que el inicio real de la copia es el último fotograma clave que coincide con el punto que pediste o está antes de él.

La medición

Generamos cinco archivos con FFmpeg 6.0 y grabamos un sexto con Chromium: un clip de 60 segundos codificado con la configuración predeterminada de x264 a 30 fps (un fotograma clave cada 250 fotogramas); el mismo clip con fotogramas clave forzados cada 1 s y cada 2 s; una presentación de 42 segundos con catorce fotografías y la detección de cambios de escena de x264 activada; la misma presentación en VP9 dentro de WebM con un intervalo de 240 fotogramas; y una grabación de 9 segundos de dos páginas de este sitio, tal como la escribe Playwright. Para cada archivo le pedimos a EncodedPacketSink.getKeyPacket() de mediabunny (la llamada que hay detrás de la cifra que muestra nuestra herramienta de recorte) el fotograma clave anterior a cada punto desde 0 hasta el final en pasos de 0.1 s, y anotamos la diferencia. En total, 2 730 consultas, el 1 de octubre de 2026.

Archivo Intervalo entre fotogramas clave Diferencia media Mediana Percentil 90 Máxima Exacto Más de 1 s
x264 predeterminado, 30 fps 8.33 s 4.06 s 4.03 s 7.47 s 8.30 s 0.5% 86.5%
Fotograma clave cada 1 s 1.00 s 0.46 s 0.50 s 0.90 s 1.00 s 9.2% 0%
Fotograma clave cada 2 s 2.00 s 0.96 s 1.00 s 1.80 s 2.00 s 4.5% 49.0%
Presentación, cambios de escena cada 3 s 3.00 s 1.46 s 1.50 s 2.70 s 3.00 s 2.9% 65.7%
VP9 WebM, intervalo de 240 fotogramas 8.00 s 3.83 s 3.80 s 7.10 s 8.00 s 1.2% 85.2%
Grabación de pantalla de Chromium, VP8 5.12 s 2.29 s 2.28 s 4.30 s 5.10 s 1.1% 76.7%

La diferencia media es la mitad del intervalo entre fotogramas clave, como tiene que ser para un punto elegido de forma uniforme. La cifra que vale la pena recordar es la de la última columna: en un archivo con la configuración predeterminada de x264, que es lo que producen la mayoría de las exportaciones de escritorio, más de cuatro de cada cinco cortes empiezan más de un segundo antes del punto que elegiste.

Lo que hay en el archivo y lo que muestra un reproductor

Después hicimos la copia en sí, con la misma configuración de Conversion que la herramienta, pidiendo de 10.0 s a 15.0 s del archivo con x264 predeterminado. El fotograma clave más cercano estaba en 8.333 s. El resultado contenía 200 fotogramas, 6.67 segundos de video, pero también llevaba una lista de edición, una instrucción de MP4 que le dice al reproductor dónde empieza la presentación. FFmpeg decodificó 150 fotogramas y reportó 5.00 s. El elemento de video de Chromium reportó una duración de 5.000 s. Cuando le indicamos que ignorara la lista de edición, FFmpeg decodificó los 200 y reportó 6.67 s.

Así que la respuesta a “dónde cae el corte” tiene dos partes. Los bytes empiezan en el fotograma clave: en el archivo hay 1.67 s de imagen que no pediste, y por eso el resultado pesa más que la fracción que conservaste. La presentación empieza donde pediste en cualquier reproductor que respete las listas de edición, lo que en nuestra prueba incluyó a Chromium y a FFmpeg. Un reproductor o editor que las ignora muestra esos 1.67 s de más y parece haber cortado en el lugar equivocado.

Frente a recodificar

Solo copia Decodificar y recodificar
Punto de inicio Fotograma clave; la presentación se recorta con la lista de edición Cualquier fotograma
Imagen Bytes idénticos Pérdida por generación, peor en la segunda pasada
Tiempo para un clip 1080p Limitado por la lectura del archivo Limitado por su codificación
Codificador necesario Ninguno Un codificador de video que funcione
Fotogramas de más en el archivo Hasta un intervalo entre fotogramas clave Ninguno

Qué decide la cifra en tu archivo

El intervalo entre fotogramas clave lo define el programa que codificó el archivo. Las exportaciones pensadas para streaming suelen usar uno o dos segundos, porque un reproductor que salta a un punto de una transmisión tiene exactamente la misma restricción que una herramienta de recorte. El valor predeterminado de x264 es de 250 fotogramas, y los grabadores de pantalla a menudo usan intervalos todavía más largos, porque un escritorio estático se comprime tan bien que los fotogramas clave salen caros. Una vez hecho el archivo, lo único que puede hacer una herramienta de recorte es medir y decirlo, y por eso nuestra herramienta busca el fotograma clave real del punto que defines y muestra la diferencia antes de que pulses el botón.