Per farlo a livello di codice, vorrei semplicemente calcolare la somma delle differenze assolute per l'intero fotogramma. Questo potrebbe, tuttavia, traboccare abbastanza facilmente, quindi forse qualcosa come la somma media delle differenze assolute per due fotogrammi. È quindi possibile utilizzare un valore di soglia per determinare se si tratta di un fotogramma chiave.
Utilizzando librerie come ffmpeg, dovresti riuscire a trovare la somma delle differenze assolute per i macro-blocchi come parte dei suoi algoritmi di stima del movimento. Dato che non ho familiarità con la libreria (ho usato solo lo strumento da riga di comando), non posso dire se sia possibile trovare le somme senza generare il vettore di movimento, o se le somme saranno disponibili dopo. Se genera i vettori di movimento, potrebbe segnalare i macro-blocchi che non hanno blocchi simili vicini.
Si noti che pentole, dolly o zoom veloci possono essere facilmente rilevati come tagli in questo modo.
Le dissolvenze incrociate non vengono rilevate a meno che non siano sufficientemente veloci.
Se maggiore precisione è importante, il suggerimento di Paul di utilizzare un clicker semplice è un'opzione decente.
È possibile scrivere un programma che tagga tutti i tagli rilevati e consente il controllo umano con semplici clic del tasto (potrebbe mostrare i due fotogrammi coinvolti e l'utente può fare clic su yo n per taggarlo come rilevato correttamente o non correttamente) . Se ci sono molti tagli, il controllo può richiedere molto tempo, ma se i tagli sono molto veloci, potrebbe essere difficile per gli umani rilevare o contare correttamente usando comunque un clicker.
Sarebbe una buona idea chiedere su [Doom9] (http://forum.doom9.org/) –
Questo suona come il tipo di cosa che dovresti fare con un clicker (premi un pulsante ogni volta che un evento di interesse appare) manualmente, come se tu avessi solo 1 video e hai solo bisogno di farlo una volta che una soluzione programmatica potrebbe essere eccessiva. –
Le dissolvenze incrociate non saranno facili da ottenere con qualsiasi programma. – claj