2012-07-04 10 views
3

Я хочу написать программу, которая может захватывать видео через мою веб-камеру с использованием языка Java, т. Е. Потокового видео. Я нашел несколько тем по этой теме, но проблема в том, как я могу сделать свою программу независимой от операционной системы, например, как захватить видео на 32-битных и 64-битных операционных системах.Запись видео (потоковое видео в реальном времени) через Java

Прошу помочь мне решить эту проблему. очень короткое время для этой работы. Кроме того, если кто-то может привести к этой теме, напишите здесь свою ссылку. Спасибо.

ответ

3
  1. Поскольку нет классов в J2SE, которые могут быть использованы для захвата видео с веб-камеры, так что вам нужно внешнюю библиотеку, как JMF или JavaCV, чтобы сделать то же самое.

  2. Для установки JavaCV вы найдете инструкции по этим ссылкам:

    а. ganeshtiwaridotcomdotnp.blogspot.in Link

    b. code.google.com Link

  3. Код для захвата видео в реальном времени с камеры:

    import com.googlecode.javacv.CanvasFrame; 
    import com.googlecode.javacv.FrameGrabber; 
    import com.googlecode.javacv.VideoInputFrameGrabber; 
    import com.googlecode.javacv.cpp.opencv_core.IplImage; 
    import static com.googlecode.javacv.cpp.opencv_core.cvFlip; 
    
    class GrabberShow implements Runnable 
    {  
        IplImage image; 
        CanvasFrame canvas = new CanvasFrame("Web Cam"); 
        public GrabberShow() { 
         canvas.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE); 
        } 
        @Override 
        public void run() { 
         FrameGrabber grabber = new VideoInputFrameGrabber(0); // 1 for next camera 
         try { 
          grabber.start(); 
          IplImage img; 
          while (true) { 
           img = grabber.grab(); 
           if (img != null) { 
            cvFlip(img, img, 1);// l-r = 90_degrees_steps_anti_clockwise 
            canvas.showImage(img); 
           } 
          } 
         } catch (Exception e) {} 
        } 
    } 
    
    public class Main 
    { 
         public static void main(String[] args) 
         { 
          GrabberShow gs = new GrabberShow(); 
          Thread th = new Thread(gs); 
          th.start(); 
         } 
    } 
    

надеюсь, что это помогает.

Смежные вопросы