Recorte sin recodificar

Si solo necesitás mover los puntos de entrada y salida, FFmpeg puede copiar los flujos sin decodificarlos ni recodificarlos. Es rápido y no pierde calidad, pero el inicio efectivo puede quedar condicionado por el punto de búsqueda y los fotogramas clave; el corte no siempre coincide exactamente con el tiempo pedido:

ffmpeg -ss 00:01:30 -to 00:02:15 -i entrada.mp4 -c copy salida.mp4

El orden importa: antes de -i, -ss busca en la entrada y puede situarse en un punto anterior al solicitado. Después de -i, FFmpeg decodifica y descarta hasta la posición, lo que puede tardar más. Al transcodificar, la búsqueda precisa está habilitada por defecto y FFmpeg descarta el tramo previo al punto solicitado. Con -c copy, mover -ss no elimina por sí solo las limitaciones de precisión. En ambos ejemplos, -to indica una posición de parada; -t expresaría una duración. Así, 00:02:15 es la posición de finalización solicitada, no una duración de 45 segundos. El resultado efectivo también puede depender de los timestamps y puntos de búsqueda del archivo.

Recodificar cuando hace falta

Si necesitás mayor precisión en el corte, puede ser útil decodificar y recodificar; no es obligatorio para todos los recortes ni garantiza precisión absoluta. También puede hacer falta recodificar si los flujos o códecs no son compatibles con el contenedor de salida:

ffmpeg -i entrada.mp4 -ss 00:01:30 -to 00:02:15 -c:v libx264 -crf 20 -c:a aac salida.mp4
  • -crf controla calidad/bitrate (más bajo, mejor)
  • -c:a aac codifica el audio con AAC; no normaliza sus niveles de volumen

Verificar el resultado

Antes de dar por bueno un corte, reviso su duración:

ffprobe -v error -show_entries format=duration -of csv=p=0 salida.mp4

Si el material de origen vino de una descarga, el flujo completo empieza en descargar vídeos con yt-dlp.