Profile 配置文件
配置消费器或输出(Configuring the Consumer or Output)
配置文件(profiles,规格)在 v0.2.4 中引入。
配置文件定义了输出的视频属性,这会影响图像处理。它取代了对 MLT_NORMALISATION 的旧有使用,但仍保留了向后兼容和覆盖能力。配置文件文档是可以由工厂(factory)或按需加载的文本文件。随 MLT 一起提供了一批配置文件文档,它们可以在不知道其位置的情况下通过名字加载。应用程序可以调用函数通过绝对路径和名字来加载一个文件。此外,应用程序还可以传入一个包含配置文件定义的字符串。
配置文件文档示例:
description=DV PAL
frame_rate_num=25
frame_rate_den=1
width=720
height=576
progressive=0
sample_aspect_num=59
sample_aspect_den=54
display_aspect_num=4
display_aspect_den=3
colorspace=601- num = 分子(numerator)
- den = 分母(denominator)
- Description 是可选的,但推荐使用
- num/den 让你可以在不引入浮点舍入误差的情况下指定一个分数。
- 可以指定一个 “name”。通常,name 是文件名的 basename,通常等价于 MLT_PROFILE。然而,如果应用程序是通过一个属性对象或字符串来设置配置文件,那么它应当包含一个 “name” 属性。
- 当你指定从系统配置文件目录加载某个文档时,你使用文档的文件名而不带其路径(basename)。
- 系统配置文件目录是 $prefix/share/mlt/profiles
环境变量(全局配置文件)
环境变量控制框架如何选择并加载一个配置文件。以下是支配使用环境变量加载全局配置文件的规则:
- MLT_NORMALISATION 已被弃用(deprecated)
- MLT_PROFILE 是新引入的,其优先级高于 MLT_NORMALISATION
- MLT_PROFILE 指向一个配置文件文档
- 不带路径时,它指向系统配置文件目录中的一个文件
- 它也可以指向一个特定的文件
- 如果 MLT_PROFILE 未设置:
- 如果 MLT_NORMALISATION=NTSC,那么 MLT 加载 dv_ntsc
- 如果 MLT_NORMALISATION=PAL,那么 MLT 加载 dv_pal
- 自 v0.2.5 起,设置 MLT_PROFILES_PATH 会覆盖系统配置文件目录。目前它只接受单个目录,而不接受以冒号分隔的目录列表。
- 如果 MLT_NORMALISATION 和 MLT_PROFILE 都未设置,那么它使用等价于 dv_pal 的硬编码默认值
- 环境变量并不是必须的!
消费器配置文件属性
你也可以通过在消费器上设置 “mlt_profile” 属性来指定要使用的配置文件。这会覆盖任何环境变量的设置。此外,出现在 “mlt_profile” 之后的以下任何属性都会覆盖相应的配置文件设置:
- fps
- frame_rate_num
- frame_rate_den
- width
- height
- progressive
- aspect_ratio(通常由配置文件的 sample_aspect_num / sample_aspect_den 计算得出)
- sample_aspect_num
- sample_aspect_den
- display_ratio(通常由配置文件的 display_aspect_num / display_aspect_den 计算得出)
- display_aspect_num
- display_aspect_den
- colorspace
“aspect_ratio” 在整个系统中被大量使用。“display_ratio” 也被大量使用。如果你覆盖 aspect_num 或 aspect_den,务必要同时以浮点数设置对应的比率!
生产器属性(Producer Properties)
生产器基类从配置文件初始化以下属性:
- fps
- frame_rate_num
- frame_rate_den
- aspect_ratio(sample_aspect_num / sample_aspect_den)。然而,这通常由生产器根据其文件资源或固有属性来更新(例如,来自静止图像生产器的方形像素为 1.0)。
重要: 然而,生产器并不会继承你在消费器属性上所覆盖的任何单个配置文件参数。
帧属性(Frame Properties)
生产器构造帧(frame)对象。帧从配置文件初始化以下属性:
- width
- height
- aspect_ratio(sample_aspect_num / sample_aspect_den) 然而,这通常由生产器根据其文件资源或固有属性来更新(例如,来自静止图像生产器的方形像素为 1.0)。
重要: 然而,帧并不会继承你在消费器属性上所覆盖的任何单个配置文件参数。
melt (opens in a new tab) 用法示例:
- melt -profile dv_ntsc some.dv …
- MLT_PROFILE=dv_ntsc melt some.dv
- melt some.dv -consumer sdl2 mlt_profile=dv_ntsc
- melt some.dv -consumer sdl2 mlt_profile=dv_ntsc progressive=1
- MLT_PROFILE=./my_profile.txt melt some.dv
Luma 与数据馈送文件(Luma and Data Feed Files)
Luma 擦除(wipes)以及数据馈送/展示(data feed/show)文件仍然使用 MLT_NORMALISATION 环境变量。目前没有计划去解决如何将它们与新的配置文件系统整合。然而,在加载一个配置文件时,MLT 会尝试在 MLT 环境中设置 MLT_NORMALISATION 以支持旧有行为。它会识别 MLT_PROFILE 或配置文件 “name” 属性中的以下帧率字符串:ntsc, 60, 30, pal, 50, 25。