Java 如何旋转放置在JFrame(VLCJ)上的视频?
我想知道是否有可能将VLCJ播放的视频旋转90度。用于显示视频的部分代码如下所示:Java 如何旋转放置在JFrame(VLCJ)上的视频?,java,swing,rotation,vlcj,Java,Swing,Rotation,Vlcj,我想知道是否有可能将VLCJ播放的视频旋转90度。用于显示视频的部分代码如下所示: mediaPlayerFactory=新的mediaPlayerFactory(); mediaPlayer=mediaPlayerFactory.newEmbeddedMediaPlayer(); frame.setresizeable(false); 框架。设置未装饰(真实); Canvas c=新画布(); c、 挫折背景(颜色:黑色); 最终JPanel p=新JPanel(); p、 setLayout
mediaPlayerFactory=新的mediaPlayerFactory();
mediaPlayer=mediaPlayerFactory.newEmbeddedMediaPlayer();
frame.setresizeable(false);
框架。设置未装饰(真实);
Canvas c=新画布();
c、 挫折背景(颜色:黑色);
最终JPanel p=新JPanel();
p、 setLayout(新的BorderLayout());
p、 添加(c,BorderLayout.CENTER);
框架。添加(p,边框布局。中心);
mediaPlayer.setVideoSurface(mediaPlayerFactory.newVideoSurface(c));
帧设置位置(650200);
框架设置尺寸(1050600);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
playMedia(文件);
mediaPlayer.mute(假);
代码工作得很好,视频可以毫无问题地观看,但我想对其执行旋转。我在网上查过,但大多数帖子都是关于图像旋转的。。。有人能帮我吗?谢谢大家! 创建
MediaPlayerFactory
时,请确保指定所需的视频过滤器和选项作为出厂参数,例如:
String[] args = {
"--video-filter",
"rotate",
"rotate-angle",
"10"
};
mediaPlayerFactory = new MediaPlayerFactory(args);
我不认为有任何方法可以在视频播放时动态设置
可用的过滤器来自:
$vlc --list
$vlc -H
可用选项来自:
$vlc --list
$vlc -H
或者,您可以使用
DirectMediaPlayer
,将视频自己渲染到Graphics2D
或OpenGL或任何上下文中,并应用所需的任何旋转/变换。当您创建MediaPlayerFactory
时,确保将视频过滤器和选项指定为出厂参数,例如:
String[] args = {
"--video-filter",
"rotate",
"rotate-angle",
"10"
};
mediaPlayerFactory = new MediaPlayerFactory(args);
我不认为有任何方法可以在视频播放时动态设置
可用的过滤器来自:
$vlc --list
$vlc -H
可用选项来自:
$vlc --list
$vlc -H
或者,您可以使用DirectMediaPlayer
将视频自己渲染到Graphics2D
或OpenGL或任何上下文中,并应用您想要的任何旋转/变换。这里有一个错误:
String[] args = {
"--video-filter",
"rotate",
"rotate-angle",
"10"
};
应该是
String[] args = {
"--video-filter",
"rotate",
"--rotate-angle",
"10"
};
花了半天时间这里有个错误:
String[] args = {
"--video-filter",
"rotate",
"rotate-angle",
"10"
};
应该是
String[] args = {
"--video-filter",
"rotate",
"--rotate-angle",
"10"
};
花了半天的时间我不确定你能不能,VLCJ只是“绘制”到用于显示视频的
画布
的本机对等体上,你对它没有任何控制权我不确定你能不能,VLCJ只是“绘制”到用于显示视频的画布
的本机对等体上,你对它没有任何控制权,我最后为MediaPlayerFactory使用了以下选项:“--video filter=transform”、“--transform type=270”
。视频被成功地旋转了。是的,变换过滤器是一种不同的旋转方式,但是在我的答案中描述的旋转滤波器确实是有效的,并且实际上是必要的,如果你想在任意角度旋转。嗨,我试图在回放中间旋转视频内容。有没有一种方法可以使用“变换”来实现呢?“旋转”?@caprica播放期间不能更改旋转。@caprica VLC player可以在播放媒体内容时动态执行此操作工具->效果和过滤器->视频效果->几何体->变换->更改下拉列表。想知道EmbeddedMediaPlayer是否可以执行此操作。例如String[]媒体播放器\工厂\参数={”--视频过滤器=转换“,};mediaPlayerComponent=新嵌入的mediaPlayerComponent(){受保护的字符串[]onGetMediaPlayerFactoryArgs(){返回媒体\u播放器\u工厂\u ARGS;}};字符串[]媒体\u选项={”--转换类型=180“,};mediaPlayerComponent.getMediaPlayer().playMedia(媒体\u MRL,媒体\u选项)很好,我终于为MediaPlayerFactory使用了这些选项:“--video filter=transform”,“--transform type=270“
。视频被成功地旋转了。是的,变换过滤器是一种不同的旋转方式,但是在我的答案中描述的旋转滤波器确实是有效的,并且实际上是必要的,如果你想在任意角度旋转。嗨,我试图在回放中间旋转视频内容。有没有一种方法可以使用“变换”来实现呢?“旋转”?@caprica播放期间不能更改旋转。@caprica VLC player可以在播放媒体内容时动态执行此操作工具->效果和过滤器->视频效果->几何体->变换->更改下拉列表。想知道EmbeddedMediaPlayer是否可以执行此操作。例如String[]媒体播放器\工厂\参数={”--视频过滤器=transform“,};mediaPlayerComponent=new EmbeddedMediaPlayerComponent(){protected String[]onGetMediaPlayerFactoryArgs(){return MEDIA\u PLAYER\u FACTORY\u ARGS;};String[]MEDIA\u OPTIONS={--transform type=180”,};mediaPlayerComponent.getMediaPlayer().playMedia(MEDIA\u MRL,MEDIA\u OPTIONS);