Um cliente tem uma coleção de vídeos tutoriais, todos com a seguinte estrutura:
Tenho a tarefa de fundir esses vídeos criando um vídeo para cada 10 vídeos contendo apenas UMA introdução, uma OUTRO e o conteúdo de todos os 10 vídeos.
O problema são partes repetidas variáveis do vídeo anterior que eu não quero duplicar. Minha primeira idéia foi extrair todos os frames (ou somente keyframes) com ffmpeg e mux-los com framemd5. Em seguida, compare o fluxo resultante de md5 para decidir onde o conteúdo repetido será interrompido.
Essa abordagem parece um pouco implacável, pois não posso presumir que o mesmo quadro seja codificado perfeitamente idêntico em ambos os vídeos. A próxima ideia é gerar um histograma para cada quadro e depois combinar a função do histograma entre os vídeos com alguma medida de tolerância (5%?).
Outra ideia era usar o OpenCV e executar o matchTemplate para encontrar imagens semelhantes, mas isso precisaria ser executado em todos os quadros e acho que ele teria problemas de desempenho muito rápidos.
Existem soluções testadas e verdadeiras para este problema? Ou talvez soluções experimentais? Posso gerar um framehistogram com ffmpeg da mesma maneira que o framemd5 funciona?
Alguma ideia de qual técnica o Youtube usa para corresponder conteúdo protegido por direitos autorais em vídeos enviados?