0

当加载帧以在图像上应用某种效果着色器(如 obs 或 mpv )时,有什么方法可以获取视频的 opengl 纹理?我想在源上应用图像过滤器(https://github.com/bloc97/Anime4K),但为此我需要基本纹理绑定来编辑它。为此,我需要标准 vlc 中的内置视频效果之类的东西,但我在 LibVLC 中看不到任何绑定。如果有人能指出我如何从 c# 代码中获取纹理覆盖https://github.com/videolan/vlc/blob/e7e608e84e9e218886700a6c90e8788a01f46b4f/modules/video_filter/ripple.c之类的东西,那将是惊人的。

4

2 回答 2

0

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

它在 libvlcsharp(第 4 版)中尚不可用,因为我们不知道 API 是否处于最终形式,但欢迎贡献,这绝对是我们应该添加的内容。

于 2020-09-09T21:33:44.640 回答
0

虽然您将能够在 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)。

还有可用的音频过滤器。

于 2020-09-10T08:16:58.867 回答