现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

VLC如何装载功能模块

2013-07-12 06:40 工业·编程 ⁄ 共 1327字 ⁄ 字号 暂无评论

VLC由一个运行核和多个功能模块组成。

没有功能模块,VLC做不了什么事情。功能模块提供大部分我们需要的功能。

VLC 有两个主要属性:

  • 能力(VLC_MODULE_CAPABILITY):决定模块的类别。

  • 分数( VLC_MODULE_SCORE):模块装载的优先级。

模块如何被装载

当第一次装载VLC的时候,程序扫描默认的插件目录(该目录包含VLC模块),并生成一个缓冲区,在VLC需要的时候,可以很快装载模块。模块根据功能组织成多个目录,这些目录是插件目录的子目录。

近期版本的VLC需要模块名字遵守一定的规范,否则,无法装载。模块按照下面的格式进行命名:libmodule_name_plugin.ext,这里模块名字需要小写。Ext为系统库扩展名。例如: windows系统上的http访问模块就为libaccess_http_plugin.dll

当VLC需要模块的时候,会尝试打开与请求的能力匹配分数比较高的模块。

下面举一个例子。

当VLC需要解码器模块,将打开所有的解码器模块哦,直到找到一个匹配的模块。

具体做法:

  1. 打开所有的模块,按照匹配值分数从大到小配列;

  2. 调用模块的Open函数。如果模块返回OK,VLC将装载该模块。

关于模块装载的进阶信息

分数为0

如果模块的分数为 0,就需要显示调用或调用,如强制编解码或视频输出。

all,none 和其它选项
  • "all"模式表示所有的模块先按照分数大小进行将序排列,然后调用。

  • "none"模式表示不需要检测模块的匹配分数。

  • 任何模块都可以直接使用它的短文件名称进行调用。该方法可以用于分数为0的模块。

例子

模块请求时,可以使用模块链。如 :

--codec avcodec,all
在所有模块里面,优先使用avcodec模块。
--demux avformat,none
 只尝试avformat模块

默认情况下,模块请求的时候在 "全部"模式,"全部" 可以省略。

如何显示模块清单

  • 控制台: vlc --list

  • GUI 界面:Menu -> Tools -> Pluginsand extensions

功能模块主要功能

  • audiofilter : 语音滤波器,如均衡器。

  • audiomixer  : 语音通道混合器,如downmixer ?

  • audiooutput  : 语音输出,如WindowsDirectX语音输出

  • decoder : 解码器,如theora

  • demux : 解复用器,可以打开一个文件,如mkv

  • encoder : 编码器,如x264

  • interface : 用户界面,如Qt界面

  • metareader  : 元都取器,可以都去元数据

  • packetizer :打包器,估计用于网络数据

  • playlistexport : 保存播放清单的模块,输入到文件如m3u

  • services_discovery :从网络或计算机获取额外信息的模块,如 Upnp,DLNA 。

  • soutaccess : 访问媒体流

  • soutmux : 编码和流传输的复用器

  • stream_filter :流滤波器。

  • textrenderer : 在图像上显示子标题或文本的模块

  • videofilter : 视频滤波器,如调节对比度。

  • Visualization2 :可视化模块,可以从音频数据中创建视频图像。

  • vout display :视频输出,显示图像,如Direct3D或Xv

给我留言

留言无头像?