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

LibVLC C# expose opengl texture for shaders

有没有什么方法可以在加载帧时为视频获取 opengl 纹理,以便在图像上应用某种效果着色器(如 obs 或 mpv)?我想应用一个图像过滤器(https://github.com/bloc97/Anime4K) on the source, but for that I need the base texture binding to edit it. For this I need something like the built in videoeffects in standard vlc, but I dont see any bindings for that in LibVLC. If someone could point me in the right direction on how to aquire the texture or override something like https://github.com/videolan/vlc/blob/e7e608e84e9e218886700a6c90e8788a01f46b4f/modules/video_filter/ripple.c 来自 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)中完成的。

还有可用的音频过滤器。