2016-03-25 8 views
1

Мне интересно, можно ли поворачивать 90 градусов видео, которое воспроизводится с VLCJ. Часть кода, используемого для отображения видео является следующее:Как повернуть видео, размещенное на JFrame (VLCJ)?

 mediaPlayerFactory = new MediaPlayerFactory();  

     mediaPlayer = mediaPlayerFactory.newEmbeddedMediaPlayer(); 

     frame.setResizable(false); 
     frame.setUndecorated(true); 

     Canvas c = new Canvas(); 
     c.setBackground(Color.black); 
     final JPanel p = new JPanel(); 

     p.setLayout(new BorderLayout()); 

     p.add(c, BorderLayout.CENTER); 
     frame.add(p, BorderLayout.CENTER); 

     mediaPlayer.setVideoSurface(mediaPlayerFactory.newVideoSurface(c)); 

     frame.setLocation(650, 200); 
     frame.setSize(1050, 600); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setVisible(true);    

     mediaPlayer.playMedia(file); 
     mediaPlayer.mute(false); 

код работает хорошо, видео можно смотреть без проблем, но я хотел бы, чтобы выполнить поворот на нем. Я посмотрел в Интернете, но большинство сообщений посвящено вращению изображений ... так что кто-нибудь может мне помочь? Спасибо!

+0

Я не уверен, что вы можете, VLCJ просто «рисует» на собственный «холст», который используется для показа видео, у вас нет никакого контроля над ним. – MadProgrammer

ответ

0

При создании MediaPlayerFactory, убедитесь, чтобы указать видео фильтр и опции, которые вы хотите в качестве заводских параметров, например:

String[] args = { 
    "--video-filter", 
    "rotate", 
    "rotate-angle", 
    "10" 
}; 

mediaPlayerFactory = new MediaPlayerFactory(args); 

Я не думаю, что есть какой-нибудь способ установить это динамически, видео играет.

имеющиеся фильтры приходят из:

$vlc --list 

Доступные варианты приходят от:

$vlc -H 

В качестве альтернативы, вы можете использовать DirectMediaPlayer, где вы сделать видео самостоятельно в Graphics2D или OpenGL или что-то контекста и применяйте любые изменения/преобразования, которые вы хотите.

+0

Приятно, я, наконец, использовал эти параметры для MediaPlayerFactory: '" --video-filter = transform "," -transform-type = 270 "'. Видео было успешно повернуто. –

+0

Да, фильтр преобразования - это другой способ поворота, но фильтр поворота, как описано в моем ответе, действительно работает и на самом деле необходим, если вы хотите вращаться под произвольным углом. – caprica

+0

HI, Я пытаюсь повернуть видеоконтент в середине воспроизведения - есть ли способ, которым мы можем достичь этого, используя «преобразование» или «поворот»? @caprica – Dinesh