
Usando ffmpeg con -ss, -t y -tpad, estoy tratando de recortar un montón de clips a una duración fija de 6 segundos en total: 2 segundos de manejo al principio + 2 segundos de interés + 2 segundos finales al final . Desafortunadamente, algunos de mis clips de entrada no tienen 2 segundos finales al final o al principio, así que trato de rellenarlos con tpad (para que la salida sea siempre de 6 segundos). Eso funciona un poco, pero ahora tengo mis dos segundos de interés siempre al principio, no en el medio, como quiero. ¿Cómo puedo arreglar esto?
Pregunta adicional: actualmente está acolchado con negro. ¿Cómo podría la opción de color utilizar el primer/último fotograma del vídeo como imagen fija?
El código que uso (llamado desde Python pero no debería hacer ninguna diferencia para la cadena de filtros):
filterchain = "[0:v]tpad=stop=-1,trim=end=6,scale='if(gt(a,1/1),-1,480)':'if(gt(a,1/1),480,-1)',setsar=1,crop=480:480"
subprocess.call(['ffmpeg', '-ss', str(inpoint-2), '-t', '6',
'-i', input_clip, '-filter_complex', filterchain, '-r', '25',
'-c:v', 'prores', '-profile:v', '1', '-c:a', 'pcm_s16le',
'-ar', '48000', "-hide_banner", '-loglevel', 'error', output])