2013-07-24 25 views
11

Bir .avi dosyasının her bir çerçevesini çıkarmak ve sağlanan bir dizine kaydetmek için bir C# kodu yazmaya çalışıyorum. Bu amaçla kullanmak için uygun bir kütüphane biliyor musunuz?Bir .avi dosyasının kareleri çıkartılıyor

Not: Son sürüm, yüklü kodek veya sistem mimarisi ne olursa olsun tüm sistemlerde çalışmalıdır. Makinede başka bir programın (MATLAB gibi) bulunmasını gerektirmez.

Şimdiden teşekkürler. Tunç

Sen FFmpeg'den bir göz olabilir

cevap

12

dosyaları oluşturmak veya bunları oluşturmak için kullanılan kodlayıcı üzerinde kontrol sahibi olmak. Bir görüntü elde etmek için önce şifresini çözmeniz gerekir ve bunun için uygulamanızla yüklü veya dağıtılmış uygun bir kod çözücüye ihtiyacınız olacaktır. Ve orada her codec'i hesaba katmak veya hepsini kurmak/dağıtmak mümkün. Yani hayır, 'u sadece avi dosyasını açamayacaksınız. Bununla birlikte, en popüler (veya içeriğinizde ortak) kodekleri destekleyebilirsiniz.

Bunu yapmanın en kolay yolu, aslında bir FFMPEG kullanıyor, çünkü aldatılan en yaygın kodeklerden bazılarını içeriyor (eğer uygulamanıza ekstra 30 + Mb eklediyseniz). Sarmalayıcılar için, geçmişte AForge ambalaj kağıdı kullandım ve bununla çalışmak ne kadar kolay olduğu için gerçekten beğendim. Dış kütüphaneleri kapsayan olmadan basit tutmak istiyorsanız

// create instance of video reader 
VideoFileReader reader = new VideoFileReader(); 
// open video file 
reader.Open("test.avi"); 
// read 100 video frames out of it 
for (int i = 0; i < 100; i++) 
{ 
    Bitmap videoFrame = reader.ReadVideoFrame(); 

    videoFrame.Save(i + ".bmp") 

    // dispose the frame when it is no longer required 
    videoFrame.Dispose(); 
} 
reader.Close(); 

da (varsayılan olarak Windows'un dahildir) bir VfW AForge içinde sarıcı vardır: İşte dokümanlardan bir örnektir. Yine de, VfW uyumlu codec bileşenlerinin kurulu olması gerekir (bazıları Windows'a varsayılan olarak dahil edilmiştir, çoğu değildir).

+1

.avi videoları üzerinde çalışmak için basit bir kütüphane gerektirenler için, AForge'ı kullandım. Bu ücretsizdir ve program boyutunu fazla artırmaz. Çalışmak için FFMPEG elde edemediğimden VFW kütüphanesini kullandım, ancak makinenin belirli bir .avi video için uygun kod çözücüye sahip olması şartıyla kareleri çıkarmak gerçekten çok kolay. – talkanat

İlgili konular