问题描述
加载帧时,有什么方法可以获取视频的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)中完成处理。
也有音频过滤器。