Bilimsel amaçlar için bir videonun "her 10 tam olarak 1 kare" (yani özü 1, 9 bırakın ve tekrar) kare ayıklamak için çalışıyorum. Video 105 kare, 3,5 saniye, 29,97 fps'dir (h.264, .mov, Nikon D3100 tarafından üretilmiştir).
Buraya yükledim .
VLC
Aşağıdaki komut 10 kare üretmelidir, ancak yalnızca 6 görüntü üretir. Farklı sahne oranlarını denedim ve ikisi de doğru sayıda kare üretmedi (düzeltmeye bile yakın değil).
vlc 1.mov --video-filter=scene --vout=dummy --scene-ratio=10 --scene-prefix=img- --scene-path=. vlc://quit
Birisi bana sorunun ne olduğunu söyler mi?
FFmpeg
FFmpeg'in amacım için bir komutu yok gibi görünüyor. Komutun altında her saniyeden 3 kare çıkar, ancak FPS tam olarak 30 olmadığından (2.97 değil), bu benim için doğru sonuçlar üretmeyecek.
Ayrıca FFmpeg bile bu komutla doğru sayıda çerçeve vermez. 3,5 saniyelik video için en fazla 10 kare bekliyorum, ancak elde ettiğim 12 kare!
ffmpeg -i 1.mov -y -an -sameq -r 3 -f image2 -vcodec mjpeg %03d.jpg
İstediğimi nasıl başarabilirim?
-sameq
muhtemelen düşündüğünü yapmaz ve mevcut sürümden kaldırılmıştır (gerçek ffmpeg, Ubuntu sahte ffmpeg'de olup olmadığından emin değilim). Bunun yerine qscale kullanın.