LibVLC C#为着色器公开opengl纹理

问题描述

加载帧时,有什么方法可以获取视频的opengl纹理,以便在图像上应用某种效果着色器(就像obs或mpv一样)?我想在源上应用图像过滤器(https://github.com/bloc97/Anime4K),但为此,我需要基础纹理绑定对其进行编辑。为此,我需要像标准vlc中的内置videoeffects一样的东西,但是在LibVLC中我看不到任何绑定。如果有人可以向我指出如何获取纹理的正确方向,请 从c#代码中覆盖https://github.com/videolan/vlc/blob/e7e608e84e9e218886700a6c90e8788a01f46b4f/modules/video_filter/ripple.c之类的东西,那真是太棒了。

解决方法

libvlc 4将为此提供一个API:https://www.videolan.org/developers/vlc/doc/doxygen/html/group__libvlc__media__player.html#gafae363ba4c4655780b0403e00159be56

libvlcsharp(版本4)尚不可用,因为我们不知道该API是否为最终格式,但是欢迎您提供帮助,这绝对是我们应该添加的内容。

,

虽然可以在libvlc 4中使用新的输出回调API,如cube45所指出的,但您已经可以在libvlc 3中设置视频过滤器之一。

要检索可用视频过滤器的列表,请运行

var videoFilters = LibVLC.VideoFilters;

您应该在控制台上打印它们并将它们保存在某处。在下一次运行中,您可以像这样将它们添加到LibVLC构造函数中

--video-filter=<string>    Video filter module
          This adds post-processing filters to enhance the picture quality,for
          instance deinterlacing,or distort the video.

https://wiki.videolan.org/VLC_command-line_help

请注意,LibVLC 4将提高过滤器性能,当前在CPU(将是GPU)中完成处理。

也有音频过滤器。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...