是否有任何方式放大视频与VLCJ类似的VLC有这个功能。我认为这被称为放大或交互式放大。它是在工具>>效果和过滤器>>视频>>几何放大>>
我在JavaFX9中使用vlcj,用EmbeddedMediaPlayer将帧呈现到画布上。我也尝试像新的MediaPlayerFactory一样将这个放大过滤器添加到MediaPlayerFactory("--video-filter=magnify")中,但是我不知道如何导航这个特性或设置缩放级别,因为"-zoom 2.0"无法工作。
我试过种植,但这对我没有用,或者我真的很努力。
谢谢你的帮助!
发布于 2020-02-10 11:41:15
作为最低限度,这应该适用于缩放:
mediaPlayer.video().setScale(float factor);其中因子为2.0倍,0.5为一半,依此类推。
在我的经验中,它可能有点浮躁,你可能确实需要将它与作物结合使用--顺便说一句,裁剪确实有效。
但是,如果您想要一个交互式缩放,那么您可以根据您控制的一些UI交互,自己来调用setCrop和setScale。
对于图片中的缩放类型,如果您使用的是VLC本身,您可以这样做:
vlc --video-filter=magnify --avcodec-hw=none your-filename.mp4它显示了一个小的覆盖,在那里你可以拖动一个矩形并改变缩放设置。
理论上,通过将参数传递给MediaPlayerFactory,可以在vlcj应用程序中使用:
List<String> vlcArgs = new ArrayList<String>();
vlcArgs.add("--avcodec-hw=none");
vlcArgs.add("--video-filter=magnify");
MediaPlayerFactory factory = new MediaPlayerFactory(args);问题是,似乎需要“-avcodec-hw=none”(禁用硬件解码)才能使放大镜过滤器工作--但在LibVLC应用程序中,该选项不受支持(也不起作用)。
因此,不幸的是,您无法使用vlcj应用程序实现本机“放大”。
最后一点--如果使用LibVLC的回调呈现API (在vlcj中这是CallbackMediaPlayer),实际上可以启用放大镜过滤器,因为它不使用硬件解码。然而,你会看到的是放大覆盖在顶部,但他们不是互动的视频,你的点击将没有任何影响。
总之,对于这个问题没有令人满意的解决方案。
从理论上讲,你可以自己建造一些东西,但我怀疑这并不容易。
https://stackoverflow.com/questions/60146011
复制相似问题