Próbowałem wyodrębnić jedną N klatek z wideo za pomocą ffmpeg. Próbowałem użyć tego polecenia:
ffmpeg -i input.mp4 -vf "select=not(mod(n\,10))" 1_every_10/img_%03d.jpg
Chciałem sprawdzić, czy działa zgodnie z oczekiwaniami. Więc wyodrębniłem wszystkie ramki, używając: ffmpeg -i input.mp4 -vf "select = not (mod (n \, 1))" all / img_% 03d.jpg
A potem próbowałem sprawdzić, czy drugi obraz z pierwszego polecenia odpowiada obrazowi nr 20 z drugiego polecenia i nie pasuje. Potwierdzono zarówno wizualnie, jak i za pomocą polecenia diff podobnego
diff all/img_020.jpg 1_every_10/img_002.jpg
Binary files all/img_020.jpg and 1_every_10/img_002.jpg differ
Czy ktoś wie, co się dzieje? Dzięki!
1_every_10/img_001.jpg
iall/img_001.jpg
pasuję, ale potem nic więcej w1_every_10
meczach.for f in all/*.jpg; do diff $f 1_every_10/img_002.jpg; done | wc -l
daje 136.for f in all/*.jpg; do diff $f 1_every_10/img_001.jpg; done | wc -l
daje 135.for f in all/*.jpg; do diff $f 1_every_10/img_003.jpg; done | wc -l
<br/> daje 136.-q:v 1
aby ustawić stałą jakość i-flags +bitexact
uniknąć osobliwości metadanych związanych z platformą / środowiskiem wykonawczym.n
że zaczyna się od 0, a numer klatki zaczyna się od 1. Więc 1 mecze z 1, 2 mecze z 11, 3 z 21 i tak dalej ... Kiedy dodam wspomniane flagi, one dopasuj krok po kroku z diff. Odkryłem również, że właśnie -q: v 1 dało mi dokładne dopasowanie. Kiedy dodałem,-flags +bitexact
rozmiar pliku był nieco mniejszy niż kiedy miałem-q:v 1
18 bajtów mniej. Nie wiem jednak dlaczego.