9

Videoda görünebilecek yedekli kareleri kaldırmak için bir video için temsili çerçeveler almaya çalışıyorum. Çerçeveleri almak için kullandığım şey bu. Videodan ffmpeg kullanarak sahne değişikliği/çekim algılama/görüntü çıkarma

./ffmpeg -i video.mp4 -vf select="eq(pict_type\,PICT_TYPE_I)" -vsync 2 -s 320x240 thumb-%02d.png

Ben de bu önemli konu bulanık

./ffmpeg -i video.mp4 -f image2 -vf "select=gt(scene\,.4)" -vsync vfr thumb%04d.png

çalıştık. Her 5 saniyede bir kareleri örneklesem, herhangi bir bulanıklık görmüyorum, ancak yukarıdaki iki komutu kullanarak çok fazla bulanıklık elde ediyorum.

http://www.cs.umd.edu/~bharat/video.mp4

videoyu her 10 saniyede bir örnek için, aşağıdaki kullanan video burada bulunabilir

:

./ffmpeg -i video.mp4 -r 1/10 filename%03d.jpg

çıkış kullanılarak normal örnekleme: sampling output

Seçim kullanılarak çıktı: Bununla birlikte, normal örnekleme bazı videolar için kötü olabilir ve gereksiz çerçeveler oluşturabilir. Ffmpeg'de bazı seçenekleri kullanabileceğim ve bu bulanıklık olmadan çerçeveler almanın bir yolu var mı? Normal örnekleme iyi kareler elde edebiliyorsa, çevresinde bulanık olmayan çerçeveler olmalıdır. Ffmpeg'deki scenecut gibi seçeneklere baktım ancak bunları bu uygulama için kullanmaya alışkın değilim.

+0

Bu sonuç, düzenli çerçeve örneklemesiyle bekleniyor. Mutlaka 'ffmpeg' olması gerekmiyor mu? Birçok serbest atış algılama uygulaması vardır. – bjou

+0

zorunlu olarak, bir şey yapacak, sadece bağlantı için teşekkürler bulanık çerçeve – Bharat

cevap

2

Diğer serbest atış algılama uygulamalarına da göz atmanızı öneriyorum. Shot Detection with jmathe's Shotdetect

Ancak, soru video stabilizasyonu problemiyle daha başa o sahneyi yaptığından daha görünüyor: Örneğin, Johan Mathe en Shotdetect ile 47 özel bir eşiği (her çekimin ilk karesi) aşağıdaki sonuçları verir değişiklik veya atış algılama. OP'de olduğu gibi yukarıda gördüğünüz bulanıklık videoya özgü "yapay varlıklar" dır ve videoyu kesmek veya örneklemek için kullanılan algoritmalara bağlı değildir. Hareket miktarını azaltmak istiyorsanız, this post'a bakmanız ve OpenCV's Video Stabilization modülüne bakmanız gerekir. Ayrıca, this ve this dahil olmak üzere bu soruna hitap eden çok fazla araştırma vardır.

+0

kurtulmak için, videoda doğal olarak mevcut bulanıklık olduğunu anlamak, ne zaman sadece kullandığınız zaman ffmpeg bulanık çerçeveler seçiyordu şaşırtıcı seçim seçeneğini, sonuçlarınız daha iyi görünüyor, muhtemelen ffmpeg tarafından seçilen karelerde maksimum varyasyon var. – Bharat

+0

"Maksimum varyasyon" ile ne kastettiğinizden emin değilim, ancak seçtiğiniz kareyi de denemek isteyebilirsiniz. Verdiğiniz komut I-Frame'i seçer, ancak aşağıdakilerden herhangi birini de seçebilirsiniz: 'I, P, B, S, SI, SP, BI'. – bjou

+0

Çok fazla karenin normal karelerden farklı olacağını ve ffmpeg'in çekimde bir değişiklik olarak algılayabileceğini kastediyorum, P, B karelerinin ne verdiğini görmek ilginç olurdu, tekrar teşekkürler, başka kareleri de seçebileceğimizi bilmiyordum .Doğru hatırlamıyorsam, birçok P, B karesi olmalı, hangi P/B çerçevesinin – Bharat