2012-01-11 17:59:52 +0000 2012-01-11 17:59:52 +0000
151
151

Cortar parte del archivo de video de la posición de inicio a la posición final con FFmpeg

Tengo un archivo de video de 30 minutos, pero quiero extraer un video de 00:09:23 a 00:25:33.

Puedo definir la posición de inicio con -ss, pero no pude encontrar uno para la posición final. ¿Alguna ayuda, por favor?

Respuestas (6)

255
255
255
2012-01-11 21:02:37 +0000

Install ffmpeg

Asegúrate de descargar una versión reciente de ffmpeg , y no uses la que viene con tu distribución (por ejemplo, Ubuntu). Las versiones empaquetadas de varias distribuciones suelen estar desactualizadas y no se comportan como se esperaba.

O compílalo tú mismo .

Cómo cortar un vídeo, sin recodificar

Utiliza esto para cortar el vídeo de [start] para [duration]:

ffmpeg -ss [start] -i in.mp4 -t [duration] -c copy out.mp4

Aquí, las opciones significan lo siguiente:

  • -ss especifica la hora de inicio, e. g. 00:01:23.000 o 83 (en segundos)
  • -t especifica la duración del clip (mismo formato).
  • El reciente ffmpeg también tiene un indicador para suministrar la hora de finalización con -to .
  • -c copy copia el primer flujo de bits de vídeo, audio y subtítulos de la entrada al archivo de salida sin recodificarlos. Esto no dañará la calidad y hará que el comando se ejecute en segundos.

Cómo cortar un vídeo, con recodificación

Si dejas fuera la opción -c copy, ffmpeg recodificará automáticamente el vídeo y el audio de salida según el formato que hayas elegido. Para video y audio de alta calidad, lee la Guía de codificación x264 y la Guía de codificación AAC , respectivamente.

Por ejemplo:

ffmpeg -ss [start] -i in.mp4 -t [duration] -c:v libx264 -c:a aac -strict experimental -b:a 128k out.mp4
31
31
31
2015-05-07 02:30:48 +0000

Creo que puedes usar el siguiente comando ahora.

ffmpeg -i inputFile -vcodec copy -acodec copy -ss 00:09:23 -to 00:25:33 outputFile

Mira también ffmpeg Doc , o esta página wiki .

15
15
15
2015-04-07 15:10:38 +0000

Es extraño que nadie haya sugerido el trim filtro .

Dejar todo excepto el segundo minuto de entrada:

ffmpeg -i INPUT -vf trim=60:120

Mantener sólo el primer segundo:

ffmpeg -i INPUT -vf trim=duration=1

Dejar todo excepto el segundo 13 al segundo 58:

ffmpeg -i INPUT -vf trim=13:58 OUTPUT
6
6
6
2013-10-03 19:08:40 +0000

Puedes usar estos dos métodos que funcionan para Windows y Linux.

Hay dos maneras de dividir los archivos de video por ffmpeg. La primera es buena en sí misma, más que eso - es más rápida, pero a veces crea archivos de salida con ciertos defectos. Así que para esos casos existe la segunda forma de dividir los archivos de vídeo: es considerablemente más lenta, los archivos de salida son más grandes, pero parece que siempre tienen el mismo nivel de calidad que los archivos de entrada utilizados.

Way 1:

ffmpeg -ss <start> -i in1.avi -t <duration> -c copy out1.avi

Way 2:

ffmpeg -ss <start> -i in1.avi -t <duration> out1.avi
  • <start> - el principio de la parte de un vídeo ffmpeg es recortar. Formato: 00:00:00.0000, que significa horas:minutos:segundos:milisegundos.

  • <duration> - la duración de la parte de un video ffmpeg es para cortar. El mismo formato que el anterior.

Ejemplos:

ffmpeg -ss 01:19:00 -i in1.avi -t 00:05:00 -c copy out1.avi
ffmpeg -ss 01:19:00 -i in1.avi -t 00:05:00 out1.avi

ffmpeg recorta una parte del archivo de vídeo a partir de 1 hora 19 minutos 0 segundos. La duración del corte de la secuencia de vídeo es de 5 minutos 0 segundos.

-1
-1
-1
2012-01-11 18:29:57 +0000

Puedes usar esto

ffmpeg -sameq -ss clip_start -t duration -i original.ogg clip.ogg

Aquí tienes que dar la duración del video. ie. 00:25:33-00:09:23

-2
-2
-2
2012-01-11 18:27:11 +0000

Uso la siguiente sintaxis para cortar el video con ffmpef:

ffmpeg -sameq -ss [start_seconds] -t [duration_seconds] -i [input_file] [outputfile]

-t se usa para establecer la duración en segundos- no puedes especificar el tiempo final pero esto debería funcionar para ti.