繁体   English   中英

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

[英]LibVLC C# expose opengl texture for shaders

当加载帧以在图像上应用某种效果着色器(如 obs 或 mpv 那样)时,有没有办法获取视频的 opengl 纹理? 我想在源上应用图像过滤器( https://github.com/bloc97/Anime4K ),但为此我需要基础纹理绑定来编辑它。 为此,我需要像标准 vlc 中的内置视频效果那样的东西,但我在 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)中完成。

还有音频过滤器可用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM