Você pode fazer isso diretamente do ffmpeg sem o uso de um script. Essencialmente, sempre que você usar ffmpeg segment , ele irá em frente e fará o melhor para dividir perto do tempo especificado para cada segmento. Isso é baseado em key_frames , ele encontrará o quadro-chave mais próximo e cortará lá. Para cortar segmentos exatos, você precisará codificar todo o vídeo.
ffmpeg -i input.mp4 -c:v libx264 -crf 22 -map 0 -segment_time 9 -g 9 -sc_threshold 0 -force_key_frames "expr:gte(t,n_forced*9)" -f segment output%03d.mp4
Você precisará ler em -crf , -sc_threshold e -force_key_frames . Na wiki para ffmpeg .