帧的宽高 值 可以是奇数吗?

迷途的书童 2016-03-21 05:27:26
帧的宽高 值 可以是奇数吗?

我看了好多建议都把要求把宽,高设定为16的倍数。

好像一设定为奇数调用ffmpeg函数就挂了。

大家来讨论一下 帧的宽高问题, 应该是什么倍数呢? 谢谢!
...全文
478 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2016-03-22
  • 打赏
  • 举报
回复
这应该是基础问题。
ooolinux 2016-03-22
  • 打赏
  • 举报
回复
图像熵编码的区块大小好像是8还是16的倍数
ynsenyu 2016-03-21
  • 打赏
  • 举报
回复
听建议应该错不了,图片都要是4的倍数的,不然自己补齐的
TMPGEnc 是日本人堀浩行开发的一套老牌的画质视频编码转换工具软件,在 Canopus ProCoder v2.0 Final 推出以前,一直是视频转换领域的画质冠军,支持 VCD、SVCD、DVD 以及所有主流媒体格式 (Windows Media、Real Video、Apple QuickTime、Microsoft DirectShow、Microsoft Video for Windows、Microsoft DV、Canopus DV、Canopus MPEG-1 和 MPEG-2 编码),而且还提供对清晰度视频格式的支持。 TMPGEnc Xpress 4.0 最新推出的版本,在保证原有的质量视频转换品质的前提下,对新近推出的英特尔和 AMD 处理器进行了代码优化,支持最新的多媒体扩展指令,令其在提视频转换质量的情况下大大加快了视频转换的速度。同时,软件在提供各类视频格式的标准编码设置外还提供了各种自定义设置,加强了编码的灵活性。 程序安装时如出现提示错误则选择“忽略”,安装完成后点击绿化然后退出程序,再运行软件即可使用!小日本TMPGEnc为津波同享(TMPGEnc)的商业版。津波同享(TMPGEnc)应广大用户的期待,郑重推出商品版津波视像编码(TMPGEnc Plus )。 即使非专业人员也能易如反掌地进行编码设定的“项目助手”功能 装备面向更画质的“新2次处理可变码率编码引擎” 制作原版DVD/VCD的“DVD,SVCD和VCD源码”生成之功能对AVI等类型的影片文件进行MPEG-1/2软编码 编码时画面大小,比调整视频与音频的码流合成/分解 TMPGEnc小日本参数设定详解 本文并不介绍tmpgenc的菜单部分,因为影响mpeg编码效率/质量的主要是参数设置。TMPGEnc小日本菜单提供了一些很好的功能,比如压缩完成自动关机等,请大家自己摸索。 A. video(视频)部分: 本部分设定输出的视频码流的类型和参数,大部分参数在模版中已经固定。 1)基本类型:有mpeg1/mpeg2,mpeg1用于vcd, mpeg2用于svcd/dvd. 2)大小:PAL vcd标准为352x288, pal svcd标准为480x576, pal dvd标准为720x576 3)画面比:一般应该用4:3 625 line PAL, 这是电视机的屏幕比例 4)桢率:pal 的标准为25fps 5) 码率控制:码率控制算法是造成各种编码器编码效率和质量不同的关键因素。mpeg标准中并没有对次算法的具体实现做规定,这通常也是商业版本的知识产权内容。 CBR(固定码率):保持码率基本维持在平均码率。实现简单,对复杂场景会因码率不足造成马赛克现象,对于简单场景则不能充分利用编码空间。(老枯这里讲的复杂场景是指细节/边缘丰富以及快速变化场景)。 VBR, (2-pass VBR), “二次处理VBR”。老枯认为其意思是通过对整个视频源进行2次处理使编码效率最:第一遍判断何处为复杂场景和简单场景,第二遍根据码率的上下限,把码 率重新分配更多给复杂场景。可以在实验中看出,tmpgenc在进行这种编码时进度指示在50%以前是没有预览图象的,而且桢进度指示为0。所以老枯建议 威龙改译为“二次处理”。这种码流控制方式应该在给定码率下得到最好的质量,但是和具体2次分配算法关系很大。同时耗时最长。一些其他编码器甚至有3次处 理的码率优化。 MVBR (手动可变码率),设定最大码率和对不同的类型设定不同的信息损失量,实现局部码率优化。可以通过手工指定复杂场景为I对之进行较精细的编码。参见对于GOP参数设定部分。 CQ-VBR (自动可变码率),设定主观质量和码率上下限,以主观质量标准对编码器量化环节进行控制,在可选参数中设定主观质量以后,编码器就在能达到此质量标准 的前提下尽量节省码率。关键在于编码器对主观质量的评价方法。这是CQ和VBR的综合,也可以看作自动的MVBR. 威龙汉化5版在可选参数中有一行是“不破坏最小码率的状态而填充数据”,老枯的理解是,如果码率过低就填充无意义码(好浪费啊,不过可能是为了兼容性的原 因),英文版这一句没有翻译,还是日文。 :-( CQ (固定品质),就是比MVBR多了一个主观质量的设定。老枯不明白到底是怎么控制的。 RT-CBR (实时固定码率):连GOP层次的码率优化也不做了的CBR,快一点,质量不 RT-CQ (实时固定品质):连GOP层次的码率优化也不做了的CQ,快一点,质量不 6)码率:这个码率是指CBR方式下的平均码率 7)VBV缓冲区大小:缓冲区大的话,编码优化会好一些,但是解码的时候也要求大一些的缓冲区。因此,vcd/svcd标准中参数是固定的,否则可能机器无法播放。 8)Pofile & level(类别与级别): 这个参数是mpeg1没有的。在svcd/dvd应用中应该是MP&ML,模版自动选定。 MP&HL是为HDTV定义的,分辨率可以达 19??x11?? . 9)制式:好象这个也是mpeg2相关的参数。我们应该用PAL. 10) 隔行扫描:mpeg1只支持逐行扫描(25 frame/sec),mpeg2可以选择隔行(50 field/sec)。如果成品在电视上播放,老枯建议选择隔行,使运动平滑。但是隔行的视频在pc上看会有毛刺现象,在水平运动景象中尤其明显。 11)播放时实现3:2下拉: 这是在film/NTSC制式转换中需要的,即在编码时维持率不变,不做3:2下拉,而在播放中实现。参见 B.advanced部分。感谢威龙指正。 12)YUV格式:给亮度/红色差/蓝色差分配的码位。对于人眼来说,亮度信号是最敏感的,所以就分配比较多的编码空间以求精细,对于色差则粗糙些。一般就是4:2:0了。(其实4:2:0方案给蓝色差的码位不是0,老枯不知道为什么这样写) 13)DC分量精度:在mpeg编码中需要对8x8的图象块进行DCT(离散余弦变换),DC分量的意义基本是代表8x8块中的平均,一般需要为之分配比较大的编码空间,否则马赛克的边缘效应就比较明显。(8bit就不小啦,图象压缩中是每个bit的油水都要榨干的) 14)运动检测精度:mpeg是对I进行内编码,对P进行预测误差编码。就是对于P的图块,在I中寻找对应的部分,然后对两个图块的差异部分进 行编码,可以大大节省码率。运动检测精度越,图块搜索匹配的范围越大,编码效率越,同时编码速度越慢。这部分算法同样没有在mpeg标准中定义,各个 厂商实现水平相差会很大。一般来说,在tmpgenc中设置为普通即可。 B. Advanced (影象源)部分: 本部分设置视频源相关的参数,以及在编码之前对视频源进行的预处理。 1)视频源类型:隔行扫描/逐行扫描。这个参数在打开视频源文件的时候会对之自动判断设置。Tmpgenc12版不能自动识别type 1 DV,在12a版本中已经解决。参看老枯的编码测试页。 2)场顺序:这是整个tmpgenc甚至整个桌面视频领域中最混乱的一部分。tmpgenc12a好象也不能根据视频源自动设置这个参数。老枯在这个问题 上搞了很久,才算明白了一点。这个参数是至关重要的,设置反了会造成生成图象的明显闪动,打个比方,一个物体的运动位置次序本来是1-2-3-4-5-6 -……,设置反了以后就成了2-1-4-3-6-5-8……对于模拟视频源,其场序是由捕捉卡类型决定的,对于dv,则定义为 field order A。讲到这里还没有什么麻烦,但麻烦的是虽然场序只有2种,对于他们的叫法却有3种: field order A/B (在ulead软件中的叫法), even/odd line first (tmpgenc的叫法), field top/bottom first(bitrate viewer叫法),这3种叫法之间的对应关系是最让人头疼的。在英文版的tmpgenc12a中,缺省的设置为“even line first (field A)”,,但在威龙汉化中缺省设置为“奇数场->偶数场”,老枯曾就此请教威龙,威龙讲这是日文版的原意,注意不要在字面上混淆了。总之,3种叫法 的关系是这样的:field A = even line first(奇数场->偶数场) = field bottom first。最可*的方法,是用不同的设置对速运动场景各生成一段隔行扫描的视频,并在电视上观察,应该能够看到差别。 3)视频源的比:tmpgenc可以自动识别设置,一般应该为4:3 625line PAL. 4) 画面显示比例和位置:一般选用“全画面显示并比不变”,所谓“全画面显示并比不变2”选项可能是会造成部分画面不可见,老枯没有尝试过这一种。在 4:3视频源中可能没有差别,但对于16:9屏影象在4:3屏幕上输出而言,“全画面显示并比不变”是在上下留出空白,“全画面显示并比不变 2”会截掉左右两端画面。。。没有这样试过,仅为老枯猜测,不正确的地方请朋友们指正。 5)滤镜选项组: 这一组设置可以对视频源进行预处理以提影象质量。一般来说,老枯都是在非编软件中实现这些功能的。另外,对滤镜的使用要适度,因为客观上任何滤镜的使用都是引入了信息损失,这是对低品质视频源提主观质量的代价。 影象源范围:选取部分影象源进行压缩 24fps化:24fps是电影标准,一般不选 消除鬼影:鬼影是影象的重影,视频源不好的时候会出现。老枯在dv中没有遇到过。 消除噪点:在低光条件下的拍摄中影响中回出现明显的颗粒噪点,利用此滤镜可以消除。不过副作用是平滑了图象,比如人的面部会象橡皮娃娃一样,光滑但没有质感。 锐化边缘:可以对横向/纵向边缘分别设置参数,做增强处理。 简单色彩校正:调整亮度,对比度,gamma,色度等 级色彩校正:可以按照不同的色彩空间RGB/YUV等进行色彩校正。 消除交错信号(de-interlace):把隔行扫描的视频源转换成逐行扫描的视频,如果对输出的视频设置为隔行扫描(如在打算电视上播放的 svcd/dvd),则不要选用。老枯认为在做vcd(逐行扫描mpeg1)时候也未必需要选用,要看视频源的大小决定。比如老枯用dv 576线,在做vcd时候只需要288线,简单舍弃一个场就可以,不需要deinterlace. 相反,如果视频源是352x288的隔行扫描视频,则需要做de-interlace. 裁剑画面:由于电视机播放视频的时候对边缘四周的部分做舍弃,所以可以利用这一点只对可见部分进行编码,这样可以加快编码速度,并且因为节省的码率可以利用在未裁剪区域从而提画面质量。一般来说对上下左右各裁剪5%是安全的。 3:2下拉变换:因film 24fps和 NTSC 30fps率不同,在制式转换中所需要做的调整。一般不用。 率不变:没什么好讲的 声音处理:可以增大/减小音量,并做声音的淡入/淡出。 C. GOP结构 GOP = group of picture. 在mpeg中一个GOP就是一组时间上连续的画面。mp4视频中的画面分为3种:I,P,B. I是内部编码,编码方式基本上就是jpeg的格式。P是前向预测,编码方式是使用运动检测误差编码,参看A部分对运动检测的说明;B是双向内插,根 据前后I/P进行插运算,对插误差进行编码。 建议一般不要修改GOP结构,以取得压缩比例和图象质量之间的最好平衡。极端的例子是只用I,图象质量会有保证,但码流会很大。 1)输出编辑用的码流:这个选项会把GOP最后的B取消。因为B是双向内插的,其编码/解码不仅需要以前的I/P,也需要以后的I/P。取消最后的B,可以去除GOP之间的依赖性,从而便于编辑。 2)检测场景变化:对于快速变化的场景,强行设置为I,以保证画面质量 3)手工强制设定类型:手工设定需要精细编码的画面为I。结合MVBR码流控制可以全面控制码流分配。 D、量化矩阵 mpeg中的量化是对8x8 YUV 信号图块进行DCT变换之后的系数的量化。通过对频分量使用比较大的量化阶从而达到减小频分量的编码空间,达到压缩的目的。代价就是丧失图像细节,边缘模糊等。 1)内编码量化矩阵:这是指对I使用的内编码量化矩阵 2)间编码量化矩阵:是指对非I间预测误差编码所用的量化矩阵。威龙汉化版中叫外部矩阵。 3)矩阵模版的选择:建议对一般的视频选用mpeg标准,可以看到,其间编码矩阵统一为16,这是因为间误差已经抵消了低频分量,频分量丰富,所以 和内编码矩阵有所不同。对于计算机动画尤其是2维线条为主的动画,建议选用CG模版,可以看到因为CG本身频信号丰富,其内编码矩阵也统一为32。 4)YUV输出为YCrCb: YCrCb色彩空间分配给Y亮度信号的编码空间更大,如果视频源是YCrCb格式的话,这个选项可以增加画面质量。不过一般都是采用YUV(CCIR601),如dv,所以不要选择这个选项,否则白白浪费码率。 5)浮点离散余弦变换:整点运算的速度比浮点要快很多,但精度不如浮点。老枯猜测这里的浮点其实只是把DCT变换的系数从8bit增大为16bit的精度,并不需要浮点运算器单元参与变换,否则速度是不可忍耐的。 6)不对静止部分做半像素的运动检测:由于视频源是隔行的,对于精细的静止边缘线条(1个像素度)比如静止字幕会出现一个场中出现,另一个场中不出现的闪动。选中这个选项会消除闪动。。不过老枯觉得好像这个和量化矩阵无关。 F. 系统: mpeg的系统是指视频+音频。vcd/svcd/dvd模版中已经设定好。
AE CS4 CDkeyae 附加表达式中英对照 全局对象 Comp comp(name) 用另一个名字给合成命名。 Footage footage(name) 用另一个名字给脚本标志命名。 Comp thisComp 描述合成内容的表达式。例如:thisComp.layer(2) Layer, Light, or Camera thisLayer 是对层本身的描述,thisLayer是一个默认的对象,对它的应用是可选的。例如, 用表达式 thisLayer.width 或 width 可获得同样的结果。 Property thisProperty 描述属性的表达式。例如,如果写一个旋转属性的表达式就能获取旋转属性的。 Number time 描述合成的时间, 单位是秒。 Number colorDepth 返回8或16表示的彩色深度位数。例如, 当项目的每通道的彩色深度为16位时colorDepth 返回16 。 Number posterizeTime(framesPerSecond) {framesPerSecond 是一个数}返回或改变率。允许用这个表达式设置比合成低的率。 向量数学方法 Array add(vec1, vec2) {vec1 和 vec2 是数组} 两个向量相加。 Array sub(vec1, vec2) {vec1 和 vec2 是数组}两个向量相减。 Array mul(vec1, amount) {vec1 是数组, amount 是数} 向量的每个元素被 amount相乘。 Array div(vec1, amount) {vec1 是数组, amount 是数}向量的每个元素被 amount相除。 Number or Array Clamp(value, limit1, limit2) 限制value中每个元素的在 limit1 到 limit2之间。 Number dot(vec1, vec2) {vec1 和 vec2 是数组} 返回点积, 结果为两个向量相乘。 Array [2 or 3] cross(vec1, vec2) {vec1 和 vec2 是数组 [2 or 3]} 返回向量的交积。 Array normalize(vec) {vec 是数组} 格式化一个向量,如某长度表示为1.0. Number length(vec) {vec是数组}返回向量的长度。 Number length(point1, point2) {point1 and point2 是数组} 随机数方法 Nothing seedRandom(seed, timeless=false) {seed 是一个数, 默认 timeless 为 false} 取现有的seed 增量一个随机,这个随机依赖于层的 index (number) 和 stream (property),但不总是这样. 例如, seedRandom (n, true)通过给第二个参数赋 true ,seedRandom()获取一个0到1间的随机数. Number random()返回0和1间的随机数. Number or Array random(maxValOrArray) {maxValOrArray 是一个数或数组}返回0到maxVal间的数,维度 与 maxVal相同; 或返回与maxArray相同维度的数组, 数组的每个元素在 0 到 maxArray之间 Number or Array random(minValOrArray, maxValOrArray) {minValOrArray 和 maxValOrArray 是一个数或数组} 返回一个minVal 到 maxVal间的数, 或返回一个与 minArray和maxArray有相同维度的数组,其每个元素的范围在 minArray 与 maxArray之间.例如, random([100, 200], [300, 400]) 返回数组的第一个在 100 到300间, 第二个在 200 到400间.如果两个数组的维度不同,较短的一个后面自动用0补齐. Number gaussRandom()返回一个0到1之间的随机数. 结果为钟形分布,大约90%的结果在 0 到1之间, 剩余10%在边沿. Number or Array gaussRandom(maxValOrArray){maxValOrArray是一个数或数组}当用maxVal,它返回一个0到maxVal之间的随机数. 结果为钟形分布,大约90%的结果在0到maxVal之间,剩余10%在边缘.当用maxArray,它返回一个与maxArray相同维度的数组, 结果为钟形分布,大约90%的结果在 0到maxArray之间, 剩余10%在边缘. Number gaussRandom(minValOrArray, maxValOrArray){minValOrArray和maxValOrArray是一个数或数组} 当用minVal和 maxVal, 它返回一个minVal到maxVal之间的随机数. 结果为钟形分布,大约90%的结果在minVal到maxVal之间, 剩余10%在边缘.当用minArray和maxArray, 它返回一个与 minArray和maxArray相同维度的数组, 结果为钟形分布,大约90%的结果在 minArray到maxArray之间, 剩余10%在边缘. 剩余10%在边缘. Number noise(valOrArray) {valOrArray是一个数或数组 [2 or 3]}返回一个0到1间的数.噪声不是事实上的随机,但它是在样本附近相关的随机数.它基于花边噪声 . 例如, add(position, noise(position)*50). 插方法 Number or Array linear(t, value1, value2) {t 是一个数, value1 和 value2 是一个数或数组}当t的范围从0到1时,返回一个从value1到value2的线性插。当 t = 1时返回 value2 。 . Number or Array linear(t, tMin, tMax, value1, value2) {t, tMin和 tMax are 数, value1和value2 是数或数组} 当 t = tMax时,返回value2 ;当tMin < t < tMax 时, 返回 value1和value2 的线性联合。 Number or Array ease(t, value1, value2) {t 是一个数, value1 和 value2 是数或数组} 返回与linear相似, 但在开始和结束点的速率都为0。这种方法的结果是动画非常平滑。 Number or Array ease(t, tMin, tMax, value1, value2) {t, tMin, 和 tMax 是数, value1 和 value2 是数或数组} 返回 与 linear相似, 但在开始和结束点的速率都为0。这种方法的结果是动画非常平滑。 Number or Array easeIn(t, value1, value2) {t 是一个数, and value1 and value2 是数或数组} 返回 与ease相似, 但只在切入点value1 的速率为0,靠近value2 一边是线性的。 Number or Array easeIn(t, tMin, tMax, value1, value2) {t, tMin和tMax 是一个数, value1和value2 是数或数组}返回 与ease相似, 但只在切入点tMin 的速率为0,靠近tMax 一边是线性的。 Number or Array easeOut(t, value1, value2) {t 是一个数, value1和value2 是数或数组}.返回 与ease相似, 但只在切入点value2 的速率为0,靠近value1 一边是线性的。 Number or Array easeOut(t, tMin, tMax, value1, value2) {t, tMin和tMax 是数, value1 value2 是数或数组} 返回 与ease相似, 但只在切入点tMax的速率为0,靠近tMin 一边是线性的。 彩色转换方法 Array [4] rgbToHsl(rgbaArray) {rgbaArray 是数组 [4]} 转换 RGBA 彩色空间到 HSLA彩色空间。输入数组指定红、绿、蓝、透明, 它们的范围都在 0.0 到 1.0之间。结果是一个指定色调、饱和度、亮度和透明的数组,它们的范围都在 0.0 到 1.0之间。例如, rgbToHsl.effect("Change Color")("Color To Change")。 Array [4] hslToRgb(hslaArray) {hslaArray 是数组[4]}. 转换 HSLA彩色空间到RGBA 彩色空间。其操作与rgbToHsl相反。 其它数学方法 Number degreesToRadians(degrees)转换度到弧度。 Number radiansToDegrees(radians) 转换弧度到度。 Comp属性和方法 -------------------------------------------------------------------------------- Layer, Light, or Camera layer(index) {index 是一个数} 得到层的序数(在时间线窗口中的顺序). 例如, thisComp.layer(3). Layer, Light, or Camera layer("name") {name是一个字串} 得到层名。指定的名字与层名匹配,或者在没有层名时与源名匹配。如果存在重名,After Effects 使用时间线窗口中的第一个. 例如, thisComp.layer("Solid 1"). Layer, Light, or Camera layer(otherLayer, relIndex) {otherLayer 一 个层对象, relIndex 是一个数} 得到otherLayer (层名)上面或下面relIndex (数) 的一个层。 例如, layer(thisLayer, -2) 返回 在时间线窗口中比写这个表达式的层两层的一个层。 Number marker(markerNum) {markerNum 是一个数}得到合成中一个标记点的时间。你可以用它减淡标记点的透明,实现淡出。例如, markTime = thisComp.marker(1); linear(time, markTime - .5, markTime, 100, 0). Number numLayers 返回 合成中层的数量。 Camera activeCamera 从在当前中着色合成所经过的摄象机获取。这不一定是你在合成窗口所看到的。 Number width 返回合成的度,单位为像素(pixels.) Number height 返回合成的度,单位为像素(pixels.) Number duration 返回合成的持续时间,单位为秒。 Number frameDuration 返回画面的持续时间. Number shutterAngle 返回合成中快门角度的度数. Number shutterPhase 返回合成中快门相位的度数 Array [4] bgColor 返回合成背景的颜色。 Number pixelAspect 返回合成中用width/heigh表示的像素(pixel )比。 String name 返回合成的名字。 脚本属性和方法 -------------------------------------------------------------------------------- Number width 返回脚本的度,单位为像素。 Number height返回脚本的度,单位为像素。 Number duration 返回脚本的持续长度,单位为秒。 Number frameDuration 返回画面的持续长度,单位为秒。 Number pixelAspect 返回脚本的像素比, 表示为 width/height. String name 返回脚本的名字。 层子对象属性和方法 -------------------------------------------------------------------------------- Comp or Footage source 返回层的源 Comp 或源Footage 对象。默认时间是在这个源中调节的时间。例如, source.layer(1).position. Effect effect(name) {name是一个字串} 返回 Effect 对象。 After Effects 在效果控制窗口中用这个名字查找对应的效果。这个名字可以是默认名,也可以是用户自定义名。如果这里有一些相同的效果名则选择效果控制窗口中同名字的最上面的一个效果。 Effect effect(index) {index 是一个数} 返回 Effect 对象。After Effects 在效果控制窗口中用这个序号查找对应的效果。起始于1 且从顶部开始。 Mask mask(name) {name是一个字串} 返回层 Mask 对象。 这个名字可以是默认名,也可以是用户自定义名。 Mask mask(index) {index 是一个数} 返回层 Mask 对象。After Effects 在时间线窗口中用这个序号查找对应的遮罩。起始于1 且从顶部开始。 层的一般属性和方法 Number width 返回以像素为单位的层度。 它与 source.width相同。 Number height 返回以像素为单位的层度。 它与 source.height相同。 Number index 返回合成中层数. Layer, Light, or Camera parent 返回层的父层对象, 例如, position[0] + parent.width. Boolean hasParent 如果有父层返回 true ,如果没有父层返回 false . Number inPoint 返回层的入点,单位为秒. Number outPoint 返回层的出点,单位为秒. Number startTime 返回层的开始时间,单位为秒. Boolean hasVideo 如果有视频(video)返回 true ,如果没有(video)返回 false. Boolean hasAudio 如果有音频(audio)返回 true ,如果没有音频(audio)返回 false. Boolean active 如果层的视频开关(眼睛 )打开返回 true ,如果层的视频开关(眼睛 )关闭返回 false. Boolean audioActive 如果层的音频开关(喇叭 )打开返回 true ,如果层的音频开关(喇叭 )关闭返回 false. Layer 特征属性和方法 -------------------------------------------------------------------------------- Property [2 or 3] anchorPoint 返回层空间内层的锚点. Property [2 or 3] position 如果该层没有父层,返回本层在世界空间的位置;如果有父层,返回本层在父层空间的位置 . Property [2 or 3] scale 返回层的缩放,表示为百分数. Property rotation 返回层的旋转度数, 对于3D 层, 它 返回 z旋转度数. Property [1] opacity 返回层的透明,表示为百分数. Property [2] audioLevels 返回层的音量属性,单位为分贝.这是一个2维;第一个表示左声道的音量,第二个表示右声道的音量.这个不是源声音的幅度,而是音量属性关键. Property timeRemap 当时间重测图被激活时,返回重测图属性时间,单位是秒. Marker Number marker.key(index) {index 是一个数} 返回层的标记数属性. 可能用到的方法和属性只有key(), nearestKey和numKeys. Marker Number marker.key("name") {name是一个字串} 返回层中与指定名对应的标记号.这个名字是标记名, 它在标记对话框的注释区,例如, marker.key("ch1"). 这个对于 marker keys是一个字串, 不是数字.例如, m1 = marker.key("Start").time; m2 = marker.key("End").time; linear(time, m1, m2, 0, 100); Marker Number marker.nearestKey 返回最接近当前时间的标记. Number marker.numKeys 返回层中标记的总数. String name 返回层名. Layer 3D属性和方法 -------------------------------------------------------------------------------- Property [3] orientation对3D层 ,返回3D 方向的度数。 Property [1] rotationX 对3D层,返回 x旋转的度数。 Property [1] rotationY 对3D层,返回 Y 旋转的度数。 Property [1] rotationZ 对3D层,返回 Z 旋转的度数。 Property [1] lightTransmission 对3D层,返回光的传导属性。 Property castsShadows 如果层投射阴影返回 1.0 。 Property acceptsShadows 如果层接受阴影返回 1.0 。 Property acceptsLights 如果层接受灯光返回 1.0 。 Property ambient 返回环境因素的百分数。 Property diffuse 返回慢射因素的百分数。 Property specular 返回镜面因素的百分数。 Property shininess 返回发光因素的百分数。 Property metal 返回才质因素的百分数。 层空间转换方法 -------------------------------------------------------------------------------- Array [2 or 3] toComp(point, t = time) {point 是一个数组[2 or 3], t 是一个数} 从层空间转换一个点到合成空间,例如, toComp(anchorPoint)。 Array [2 or 3] fromComp(point, t=time) {point 是一个数组[2 or 3], t 是一个数}从合成空间转换一个点到层空间。得到的结果在 3D 层可能是一个非0。例如 (2D layer), fromComp(thisComp.layer(2).position). Array [2 or 3] toWorld(point, t=time) {point 是一个数组[2 or 3], t 是一个数} 从层空间转换一个点到视点独立的世界空间。例如, toWorld.effect("Bulge")("Bulge Center"). Array [2 or 3] fromWorld(point, t=time) {point 是一个数组[2 or 3], t 是一个数}从世界空间转换一个点到层空间。例如, fromWorld(thisComp.layer(2).position). Array [2 or 3] toCompVec(vec, t=time) {vec 是一个数组[2 or 3], t 是一个数} 从层空间转换一个向量到合成空间。例如, toCompVec([1, 0]). Array [2 or 3] fromCompVec(vec, t=time) {vec 是一个数组[2 or 3], and t 是一个数} 从合成空间转换一个向量到层空间例如 (2D layer), dir=sub(position, thisComp.layer(2).position); fromCompVec(dir). Array [2 or 3] toWorldVec(vec, t=time) {vec 是一个数组[2 or 3], t 是一个数} 从层空间转换一个向量到世界空间。例如, p1 = effect("Eye Bulge 1")("Bulge Center"); p2 = effect("Eye Bulge 2")("Bulge Center"); toWorld(sub(p1, p2)). Array [2 or 3] fromWorldVec(vec, t=time) {vec 是一个数组[2 or 3], t 是一个数}从世界空间转换一个向量到层空间。例如, fromWorld(thisComp.layer(2).position). Array [2] fromCompToSurface(point, t=time) {point 是一个数组[2 or 3], t 是一个数} 在合成空间中从激活的摄象机观察到的位置的层表面(Z为0)定位一个点。这对于设置效果控制点有用。仅用于3D层。 摄象机属性和方法 -------------------------------------------------------------------------------- Property [3] pointOfInterest 返回在世界空间中摄象机兴趣的的。 Property zoom 返回摄象机的缩放,单位为像素。 Property depthOfField 如果摄象机景深打开返回 1,否则返回0。 Property focusDistance 返回摄象机焦距,单位为像素。 Property aperture返回摄象机光圈,单位为像素。 Property blurLevel 返回摄象机的模糊水平的百分数。 Boolean active (a) 如果摄象机的视频开关 打开, 返回 true ; (b) 当前时间在摄象机的出入点之间,(c)且它是时间线窗口中列出的第一个摄象机,若以上条件之一不满足,返回 false 。 灯光属性和方法 -------------------------------------------------------------------------------- Property [3] pointOfInterest 在工作区 返回灯光兴趣点。 Property intensity 返回灯光亮度的百分数。 Property [4] color 返回灯光彩色。 Property coneAngle 返回灯光光锥角度的度数。 Property coneFeather 返回灯光光锥的羽化百分数。 Property shadowDarkness 返回灯光阴影暗的百分数。 Property shadowDiffusion 返回灯光阴影扩散的像素。 Note: 灯光对象的大部分属性和方法与层对象相同, 除 source, effect, mask, width, height, anchorPoint, scale, opacity, audioLevels, timeRemap, 和所有的material 属性。 效果的属性和方法 -------------------------------------------------------------------------------- Boolean active 返回 a true value if the effect is turned on in both the 如果效果在时间线窗口和效果控制窗口都打开返回 true , 如果在以上任意一个窗口关闭,返回false。 Property param(name) {name是一个字串} 返回 效果里面的属性。例如, .effect("Bulge")("Bulge Height")。效果点控制总是在层空间。 Property param(index) {index 是一个数} 返回 效果里面的属性。例如, .effect("Bulge")(4) 返回 Bulge Height 属性。 效果点控制总是在层空间。 遮罩属性和方法 -------------------------------------------------------------------------------- Property MaskOpacity 返回遮罩透明的百分数。 Property MaskFeather 返回遮罩羽化的像素。 Boolean invert 如果遮罩是反向的,返回 true ;否则返回 false。 Property MaskExpansion 返回 遮罩的像素。 String name 返回遮罩名。 String name 返回效果名。 特征属性和方法 -------------------------------------------------------------------------------- Number or Array value 返回当前时间的属性。 Number or Array valueAtTime(t) {t 是一个数} 返回指定时间(单位为秒)的属性。 Number or Array velocity 返回当前时间的即时速率。对于空间属性,例如位置,它返回切向量。结果与属性有相同的维度。 Number or Array velocityAtTime(t) {t 是一个数} 返回指定时间的即时速率。 Number speed 返回 1D量,正的速度,等于 在默认时间属性的改变量。 这个元素仅用于空间属性。 Number speedAtTime(t) {t 是一个数} 返回在指定时间的空间速度。 Number or Array wiggle(freq, amp, octaves=1, ampMult=.5, t=time) {freq, amp, octaves, ampMult, 和 t 是数} 属性随机摆动(wiggles) 。 Freq 计算每秒摆动的次数,用于计算属性的基本幅度单位,octaves 是加到一起的噪声的倍频数,ampMult 与 amp 相乘的倍数。 t 基于开始时间。例如, position.wiggle(7, 30, 3). Number or Array temporalWiggle(freq, amp, octaves=1, ampMult=.5, t=time) {freq, amp, octaves, ampMult, 和 t 是数} 取样摆动时的属性。Freq 计算每秒摆动的次数,用于计算属性的基本幅度单位,octaves 是加到一起的噪声的倍频数,ampMult 与 amp 相乘的倍数。 t 基于开始时间。 对于这个函数意味着取样的属性必须被激活,因为这个函数仅在取样期间改变属性,而不是改变了对应的属性。. 例如, scale.temporalWiggle(5, .2). Number or Array smooth(width=.2, samples=5, t=time) {width, samples, 和 t 是数} 应用一个箱形滤波器到指定时间的属性,并且随着时间的变化使结果变得平滑。Width (秒) 是经过滤波器平均时间的范围。Samples 等于离散样本的平均间隔数 。通常, 你需要的采样( samples)数是奇数。例如, position.smooth(.1, 5). Number or Array loopIn(type = "cycle", numKeyframe = 0)在层中从入点到第一个关键之间循环一个指定时间段的内容。被指定为循环内容的基本段,是从层的第一个关键向后到层的出点方向的某个关键间的内容。 numKeyframe是指定以第一个关键为起点设定循环基本内容的关键数目(计数不包括第一个关键)。例如, loopIn("cycle", 1)从层的入点开始到第一个关键结束循环第一个关键到第二个关键间的内容。循环的次数由入点到第一个关键间的时间和循环内容长度决定 。 Number or Array loopOut(type = "cycle", num关键 = 0) 在层中从最后一个关键到层的出点之间循环一个指定时间段的内容。被指定为循环内容的基本段,是从层的最后关键向前到层的入点方向的某个关键间的内容。 numKeyframe是指定以最后一个关键为倒数起点设定循环基本内容的关键数目(计数不包括最后一个关键)。例如, loopOut("cycle", 1)从层的最后关键开始到出点结束循环最后一个关键到倒数第二个关键间的内容。循环的次数由最后关键到出点间的时间和循环内容长度决定 。 Number or Array loopInDuration(type = "cycle", duration = 0)在层中从入点到第一个关键之间循环一个指定时间段的内容。被指定为循环内容的基本段,是从层的第一个关键向后到层的出点方向duration秒的内容。 duration是指定以第一个关键为起点设定循环基本内容的时间秒数。例如, loopInDuration("cycle", 1) 从层的入点开始到第一个关键结束循环第一个关键以后1秒的内容。循环的次数由入点到第一个关键间的时间和循环内容长度决定 。 Number or Array loopOutDuration(type = "cycle", duration = 0) 在层中从最后一个关键到层的出点之间循环一个指定时间段的内容。被指定为循环内容的基本段,是从层的最后关键向前到层的入点方向duration秒的内容。 duration是指定以最后一个关键为倒数起点设定循环基本内容的的时间秒数。例如,loopOutDuration("cycle", 1) 从层的最后关键开始到出点结束循环最后一个关键到倒数倒数1秒时间的内容。循环的次数由最后关键到出点间的时间和循环内容长度决定 。 Key key(index) 用数字 返回 key对象。例如, key(1) 返回第一个关键对象。 当访问 key 对象时能获得Time, Index, 和属性。 例如, 下面的表达式给出了第3个位置关键处的位置:position.key(3).value。下面的表达式,当将它写到设置透明属性动画的层时,将忽略在透明属性中设置的关键而仅用关键定位在什么时间层闪现。d = Math.abs(time - nearestKey(time).time); easeOut(d, 0, .1, 100, 0). Key key(markerName) 用这个名字 返回标记的 key 对象。仅用于标记属性。 Key nearestKey(time) 返回指定时间最近的关键对象。 Number numKeys 返回 在一个属性中 关键 的数目。 关键属性和方法 -------------------------------------------------------------------------------- Number or Array value 返回关键。 Number time 返回关键的时间。

24,860

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧