En este post te mostraré cómo cortar o separar un vídeo rápidamente usando ffmpeg, de modo que no tengas que volver a codificar todo el vídeo, sino simplemente cortarlo desde un inicio hasta un fin.

De este modo el proceso será muy rápido y desde la línea de comandos (con esto puedes automatizar varias cosas) además de que no se va a volver a codificar nada, solo extraer una parte del vídeo con ffmpeg.

Instalando ffmpeg

Recuerda que ffmpeg es una herramienta libre y disponible para varios sistemas operativos. Sirve para trabajar con vídeos y hacer cosas como poner marca de agua a vídeo, unirlos o incluso extraer el audio.

En mi blog ya tengo un tutorial de cómo instalar ffmpeg y agregarlo a la PATH. Te recomiendo leerlo y después volver a este post.

Cortar vídeo con ffmpeg

Cortar vídeo con ffmpeg - Indicar inicio y duración

Cortar vídeo con ffmpeg – Indicar inicio y duración

Comencemos viendo la sintaxis. Recuerda que los comandos los ejecuto suponiendo que me he posicionado (con cd) en la carpeta donde está el o los vídeos con los que quiero trabajar.

En este caso es:

ffmpeg -i vídeo_entrada.mp4 -ss TIEMPO_INICIO -t DURACION -c:v copy -c:a copy vídeo_cortado.mp4

Ahora aquí hay algo importante, y es que al usar -ss y -t no estamos indicando el inicio y el fin.

Con -ss indicamos el inicio desde dónde vamos a extraer el vídeo, pero con -t indicamos cuánto vamos a cortar desde ahí.

Por ejemplo, si yo quiero extraer 7 segundos desde el segundo 5, usaría el siguiente comando:

ffmpeg -i Cuphead.mp4 -ss 00:00:05 -t 00:00:07 -c:v copy -c:a copy Cuphead_cortado.mp4

En ese caso el inicio sería 00:00:05 y el fin sería 00:00:12. No te confundas, estamos cortando 7 segundos a partir del 00:00:05 lo que resultará cortar el original desde 00:00:05 hasta 00:00:12.

Usando -to

Ffmpeg - Extraer porción de vídeo especificando inicio y fin

Ffmpeg – Extraer porción de vídeo especificando inicio y fin

Si el comando anterior te confunde, entonces puedes especificar -to en lugar de -t. La sintaxis es:

ffmpeg -i vídeo_entrada.mp4 -ss TIEMPO_INICIO -to TIEMPO_FIN -c:v copy -c:a copy vídeo_cortado.mp4

De este modo ahora sí vamos a especificar inicio y fin. En este caso si quisiera cortar el vídeo desde los 5 segundos hasta los 20 segundos usaría lo siguiente:

ffmpeg -i Cuphead.mp4 -ss 00:00:05 -to 00:00:20 -c:v copy -c:a copy Cuphead_cortado_to.mp4

Y la duración del mismo sería de 15 segundos.

Conclusión

No expliqué lo que significa -c:v y –c:a y eso básicamente sirve para copiar el mismo audio y vídeo sin volver a codificar.

Recuerda que entre más grande sea el vídeo, más tardado será el proceso.

Por aquí te dejo más tutoriales con ffmpeg.


Estoy disponible para trabajar en tu proyecto o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.
Si el post fue de tu agrado muestra tu apoyo compartiéndolo, suscribiéndote al blog, siguiéndome o realizando una donación.

Suscribir por correo

Ingresa tu correo y recibirás mis últimas entradas sobre programación, open source, bases de datos y todo lo relacionado con informática

Únete a otros 5,522 suscriptores

parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

2 Comentarios

H3ct0r · agosto 6, 2022 a las 9:54 pm

Excelente aporte. Podrías hacer un tutorial para pegar subtítulos con ffmpeg?

    parzibyte · agosto 7, 2022 a las 12:20 pm

    Hola. Gracias por sus comentarios. Si tiene alguna consulta, solicitud de creación de un programa o solicitud de cambio de software con gusto lo atiendo en https://parzibyte.me/#contacto
    Saludos!

Deja un comentario

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada.

A %d blogueros les gusta esto: