
Tengo muchos clips h265, todos de seis segundos de duración. Ahora quiero unirlos con ffmpeg (preferiblemente sin recodificar), pero solo usar las partes del segundo 2 al 4 de cada clip. Hago esto con el demuxer concat, pero tan pronto como especifico el punto y la duración, mis resultados se vuelven bastante aleatorios. No arroja ningún error y produce nuevos clips, pero las longitudes y los puntos de entrada están totalmente equivocados.
Como mis clips son h265 y bastante cortos, mi primera sospecha fue que simplemente no hay fotogramas clave que pueda editar, así que intenté lo mismo con clips Quicktime Prores (codificados dentro de fotogramas), lo que me dio resultados igualmente extraños. Entonces me pregunto si el problema podría estar en otra parte.
Este es mi código (llamando desde Python):
subprocess.call(['ffmpeg', '-f', 'concat', '-safe', '0', '-i', 'concatlist.txt', '-c', 'copy', '-hide_banner', '-loglevel', 'error', output])
Esta es una muestra de mi archivo de texto (generado automáticamente):
file videos_squares/vt_5Hn8lze0G8A.mp4
inpoint 2.0
duration 2.0
file videos_squares/vt_J8DuC93hLq0.mp4
inpoint 2.0
duration 2.0
file videos_squares/vt_u8twUOpagZs_seg3.mp4
inpoint 2.0
duration 2.0
Respuesta1
Para limitar la duración usando el demuxer concat, establezca outpoint
(con valor en punto + duración prevista).
La duration
palabra clave tiene un nombre incorrecto y básicamente establece el desplazamiento de la marca de tiempo inicial del siguiente clip con respecto a la marca de tiempo inicial del clip actual. Pero no limita la salida del clip actual.