C# VLC纵横比捕捉说明

C# VLC纵横比捕捉说明,c#,activex,vlc,aspect-ratio,libvlc,C#,Activex,Vlc,Aspect Ratio,Libvlc,我正在编程一个使用AxVLC库的测量工具。我已经成功地创建了该工具,但是当有人加载720x480视频时,一些测量值被关闭 在深入研究VideoLAN论坛和我的代码后,我了解到VLC在显示视频时会将视频捕捉到16:9的纵横比,但AxVLCPlugin.video中列出的高度和宽度仍然是720x480,这将是一个“3:2”的纵横比 我可以对我的测量进行编程来解释这一点,但是 我需要知道,如果VLC遇到未知的纵横比,它是否总是捕捉到16:9,或者它是否根据某个算法或查找表捕捉,因为我想修复所有视频维

我正在编程一个使用AxVLC库的测量工具。我已经成功地创建了该工具,但是当有人加载720x480视频时,一些测量值被关闭

在深入研究VideoLAN论坛和我的代码后,我了解到VLC在显示视频时会将视频捕捉到16:9的纵横比,但AxVLCPlugin.video中列出的高度和宽度仍然是720x480,这将是一个“3:2”的纵横比

我可以对我的测量进行编程来解释这一点,但是


我需要知道,如果VLC遇到未知的纵横比,它是否总是捕捉到16:9,或者它是否根据某个算法或查找表捕捉,因为我想修复所有视频维度,而不仅仅是720x480


由于AxVLCPlugin.video.aspectRatio字段始终为空,因此没有任何信息可用于建议ActiveX控件中显示的视频的当前纵横比,除非该值存在于视频元数据中,并且在代码中设置该值对实际显示的视频没有任何影响

VLC中所有可用纵横比的集合如下所示:

  • (空)
  • 违约
  • 16:9
  • 4:3
  • 1:1
  • 16:10
  • 2.21:1
  • 2.35:1
  • 2.39:1
  • 5:4
据此, 以及根据自己打开VLC媒体播放器,看看列表

到目前为止,我还没有找到一种方法,可以从vlc命令行执行(如官方vlc文档中所列)强制源纵横比,但是如果我可以强制它以其原始纵横比显示视频,那也同样有效

3:2被捕捉到16:9,在它们之间跳过了16:10,所以我知道它不仅仅是捕捉到下一个最高或最低的纵横比,而是为了好的代码,我想知道它实际上捕捉到了什么。 如果它只是在默认情况下捕捉到16:9,我可以处理它, 如果它以某种奇怪的顺序或根据某个奇怪的范围表捕捉,我可以使用它, 如果您知道如何通过C#强制activeX控件中的原始纵横比,我可以使用它


非常感谢您的帮助。

嗨,Jody-我不知道如何回答您的问题,但我想知道您是否知道如何将视频安装到AxvlcLayer控制窗口?您不能。axVLCPlayer控件是一个连接到视频缓冲区的画布。该视频缓冲区将专门以给定的纵横比生成视频。当画布上有额外的空间显示缓冲区时,它会自动填充黑色,始终保持纵横比。解决方案是,我必须做所有的数学运算,找出填充的位置,以及给定的时间,给定当前尺寸和视频尺寸,应该有多少填充,并将转换应用到所有测量值。感谢信息Jody-它的工作原理肯定与Windows Media Player activex控件有很大不同窗口:使用WMP activex控件,我可以轻松地告诉视频适合窗口。感谢Jody观看MPV!你找到解决办法了吗?我很好奇你最后做了什么。我正在跟踪VLC源代码。嗨,Jody-我不知道如何回答你的问题,但我想知道你是否知道如何将视频安装到axVLCPlayer控制窗口?你不能。axVLCPlayer控件是一个连接到视频缓冲区的画布。该视频缓冲区将专门以给定的纵横比生成视频。当画布上有额外的空间显示缓冲区时,它会自动填充黑色,始终保持纵横比。解决方案是,我必须做所有的数学运算,找出填充的位置,以及给定的时间,给定当前尺寸和视频尺寸,应该有多少填充,并将转换应用到所有测量值。感谢信息Jody-它的工作原理肯定与Windows Media Player activex控件有很大不同窗口:使用WMP activex控件,我可以轻松地告诉视频适合窗口。感谢Jody观看MPV!你找到解决办法了吗?我很好奇你最后做了什么。我正在跟踪VLC源代码。