Eu preciso juntar vários vídeos juntos, com o próximo começando em algum lugar no meio do anterior. Portanto, não posso simplesmente colocá-los um após o outro, em vez disso, preciso descobrir onde o próximo começa.
Para ser mais preciso, eu tenho várias partes de um vídeo, divididas de maneira desigual, que eu gostaria de unir em uma. No entanto, cada um repete os últimos minutos do anterior. Por exemplo, se o original tiver 30 minutos de duração, a primeira parte pode ser executada de 00:00:00 até 00:07:00, enquanto a segunda parte é de 00:05:37 até 00:14:56 e a terceira parte vai de 00:12:53 até 00:18:21 e assim por diante. Eles não seguem nenhum padrão, mas eles têm a mesma resolução, codec, framerate, etc.
O que eu gostaria de fazer é concatená-los para que eles sejam um novamente. Melhor seria um programa que pode fazer isso sozinho, mas um que me diga em que ponto da primeira parte [a segunda parte] a segunda parte [a terceira parte] começa seria o suficiente, a partir desse ponto eu poderia fazer a união por conta própria (usando o ffmpeg).
O que eu já pensei é usar o ffmpeg para produzir todos os quadros de vídeo em uma imagem. Eu então escreveria um pequeno programa que usaria o hash de cada imagem e saída se uma das partes 1 e 1 da parte 2 fosse igual, então eu poderia juntar-me a elas neste ponto usando o ffmpeg. No entanto, isso seria muito lento e muito entediante e criaria uma enorme quantidade de arquivos e dados. Eu gostaria de usá-lo apenas como um "último recurso".
Esse programa ou script ou algo que poderia me ajudar de alguma forma existe para o Windows? E se não, há uma maneira melhor (em termos de velocidade e entrada necessária, ou, preferencialmente, ambos) do que eu propus? Eu não preciso de uma conexão perfeita, mas ainda assim parece que foi um vídeo em primeiro lugar (sem segundos segundos para pular ou pausar ou grandes artefatos).
Muito obrigado antecipadamente!