2009-03-06 13 views
3

JMF'yi kullanarak bir video yakalama aygıtından ham video karelerini okumayı deniyorum - Java Media Framework. Ben başarıyla "yakalama" bölümünü yazdımJMF'de bir video yakalamadan ham verileri okuma

-Yöneticisi tarafından oluşturulan Oyuncu nesnesini kullanarak, bir web kamerasından gerçek zamanlı videoyu görüntüleyebilir. Ancak, gerçek karelere erişmek için özel bir bileşen oluşturmaya nasıl başlayacağımı bilmiyorum. Bu muhtemelen, şu ana kadar Yöneticisi benim için gereken her sınıf örneğini oluşturduğu için.

Videoyu görüntüleyen bir GUI bileşeni yazarak başlamak istiyorum. (AWT/Swing'e aşina değilim, fakat diğer GUI çerçevelerinin bilgisine dayanarak, bir repaint isteği yapıldığında veya yeni bir çerçeve hazır olduğunda videoyu çizen JPanel'den türeyen bir şey söyleyebilirim.) Her yeni kareyi işleyebilmeyi ve tüm pikseller üzerinde x/y'yi açabilmeyi isterim. Cihazımdaki raw/RGB formatına erişebiliyorum, ancak YUV'dan otomatik dönüşümü incitmez.

Nereden başlayacağımı bilmiyorum. JMF belgeleri, sınıfımın çeşitli yerlerden İşlemci veya DataSink'dan türetilmesini önerir. İşlemci arabirimini kullanmak bir aşırı sıkmaya benziyor - örneğin, kayıttan yürütme ve zamanlama kontrol işlevlerine ihtiyacım yok; ve onları ilk etapta nasıl uygulayacağımı bilmiyorum. DataSink'dan daha az yararsız soyut işlevlerle daha basit bir seçenek gibi görünüyor. Ancak, her iki durumda da, ben nasıl olarak tam bir kayıp değilim:

a) Video yakalama DataSource
b) sınıf içinde gerçek kare tamponlarını Erişim bileşeni bağlayın

izninizle hatta yanlış bir yöne bile giriyorlar; Sadece şimdiye kadar denediğimi belgelemek istedim. JMF dokümantasyonu kıt ve çoğunlukla medya oynatıcıları ve dönüştürücülere yöneliktir.

Not: İşleme kitaplığı bunun için basit bir çözüm gibi görünüyor. Aralarında bir örnek görüyorum: x = new Image(captureDevice.getFrame()). Bu, ara tür değilse Görüntü aracılığıyla piksel seviyesinde erişimin mümkün olduğunu gösteriyor gibi görünüyor.

Ama öncelikle JMF'de ne kadar zor olduğunu görmek isterim.

+0

Burada yayınladığım kodu deneyin: http://stackoverflow.com/questions/1382508/how-to-integrate-webcam-in-swing-application-of-java/1382841#1382841 – JRL

+0

@JRL: Bu görünüyor İyi, hiç denemek için hiç şansım olmadı. Bu soruyu sefaletinden çıkarabiliriz; Bu yorumu bir cevap haline getirin ve kabul etmeme izin verin lütfen. – aib

cevap

1

JMF ve FrameGrabber adında bir sınıf kullanan here yayınladığım kodu deneyebilirsiniz.

1

Üzgünüm, ama bu noktada, JMF aslında öldü. Bunun için muhtemelen FX kullanacaksınız, fakat FX de tam olarak iyi değil.

+0

Sanırım öyle. Her neyse, bunun ne olduğunu hatırlamıyorum. Çok erken ayrıldım :) – aib