如何旋转放置在 JFrame (VLCJ) 上的视频?
How to rotate a video placed on a JFrame (VLCJ)?
我想知道是否可以将使用 VLCJ 播放的视频旋转 90 度。用于显示视频的部分代码如下:
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);
代码运行良好,视频可以毫无问题地观看,但我想对其进行旋转。我在互联网上查找过,但大多数帖子都是关于图像旋转的……所以有人可以帮我吗?谢谢!
当您创建 MediaPlayerFactory
时,请务必指定您想要的视频过滤器和选项作为工厂参数,例如:
String[] args = {
"--video-filter",
"rotate",
"rotate-angle",
"10"
};
mediaPlayerFactory = new MediaPlayerFactory(args);
我认为没有任何方法可以在播放视频时动态设置它。
可用的过滤器来自:
$vlc --list
可用选项来自:
$vlc -H
或者,您可以使用 DirectMediaPlayer
将视频自己渲染到 Graphics2D
或 OpenGL 或任何上下文中,然后应用任何 rotation/transformation 您想要的内容。
这里是错误的:
String[] args = {
"--video-filter",
"rotate",
"rotate-angle",
"10"
};
应该是
String[] args = {
"--video-filter",
"rotate",
"--rotate-angle",
"10"
};
花了半天
我想知道是否可以将使用 VLCJ 播放的视频旋转 90 度。用于显示视频的部分代码如下:
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);
代码运行良好,视频可以毫无问题地观看,但我想对其进行旋转。我在互联网上查找过,但大多数帖子都是关于图像旋转的……所以有人可以帮我吗?谢谢!
当您创建 MediaPlayerFactory
时,请务必指定您想要的视频过滤器和选项作为工厂参数,例如:
String[] args = {
"--video-filter",
"rotate",
"rotate-angle",
"10"
};
mediaPlayerFactory = new MediaPlayerFactory(args);
我认为没有任何方法可以在播放视频时动态设置它。
可用的过滤器来自:
$vlc --list
可用选项来自:
$vlc -H
或者,您可以使用 DirectMediaPlayer
将视频自己渲染到 Graphics2D
或 OpenGL 或任何上下文中,然后应用任何 rotation/transformation 您想要的内容。
这里是错误的:
String[] args = {
"--video-filter",
"rotate",
"rotate-angle",
"10"
};
应该是
String[] args = {
"--video-filter",
"rotate",
"--rotate-angle",
"10"
};
花了半天