/ / ffmpeg wyodrębnianie klatek kluczowych - ffmpeg, klatka kluczowa

Wyciągnięcie klatki kluczowej ffmpeg - ffmpeg, klatka kluczowa

Próbowałem wyodrębnić klatki kluczowe zwideo za pomocą ffmpeg 0.11.1. Jak dotąd wszystkie polecenia, które wypróbowałem, nie wyodrębniają klatek kluczowych, ale zwracają wszystkie klatki, tj. 25 klatek na sekundę * całkowita liczba klatek na wyjściu. Próbowałem ustawić keyint_min jako 25, aby upewnić się, że istnieje amximum 1 klatki kluczowej na sekundę.

ffmpeg -vf select="eq(pict_type,PICT_TYPE_I)" -g 250 -keyint_min 25 -i C:test.mp4 -vsync 2 -f image2 C:testTempthumbnails-%02d.jpeg

Ale nadal wszystkie ramki są zwracane.

Następnie próbowałem oddzielić klatki kluczowe o 20 sekund.

ffmpeg -i C:test.mp4 -vf select="eq(pict_type,I)*(isnan(prev_selected_t)+gte(t-prev_selected_t,20))" -vsync 0 -f image2 C:testTemp%09d.jpg

Znowu ten sam wynik, wszystkie ramki są zwracane.

Co powinienem zrobić?

Odpowiedzi:

9 dla odpowiedzi № 1

W pierwszym poleceniu używasz filtru jako opcji wejściowej. Nie wiem, jak to zinterpretuje ffmpeg.

Spróbuj tego:

ffmpeg -i C:test.mp4 -vf select="eq(pict_type,I)",setpts="N/(25*TB)" C:testTemp%09d.jpg

Zmiana 25 do liczby klatek Twojego źródła: 30000/1001 dla wideo NTSC, 24000/1001 dla filmu NTSC, 25 dla PAL, itp.

Kontroluj jakość wyjściową za pomocą -q:v lub -qscale:v opcja (po prostu wywołana -qscale w starym ffmpeg). Zakres dla mpeg * to 1-31, gdzie 31 to najgorsza jakość.

Następnym razem pamiętaj, że pytania dotyczące użycia ffmpeg należy zadawać na stronie superuser.com, ponieważ stackoverflow jest przeznaczony do programowania.