Was ich tun würde, ist genau das, was Sie gesagt haben, und speichern Sie eine große Datei des Streams. Verwenden Sie dann den select
FFMPEG-Filter mit dem scene
Ausdruck, der die Ähnlichkeit aufeinander folgender Frames vergleicht: select=gt(scene\,0.003)
zum Beispiel. Je höher die Zahl, desto mehr Änderungen werden zwischen den Bildern ignoriert. Bei einem Schnelltest müssen Sie je nach Art des Materials, das Sie verwenden, 0,00001-0,00005 betragen.
Kombinieren Sie das mit dem setpts
Filter, der die "Startzeit" von Video-Frames ändert, und Sie erhalten so etwas wie (für ein 25fps-Video):
ffmpeg -i input.mp4 -vf "select=gt(scene\,0.003),setpts=N/(25*TB)" output.mp4
Sie können jedoch nicht verwenden, -vcodec copy
wenn Sie Videofilter verwenden.