请输入您要查询的百科知识:

 

词条 帧速率
释义

帧速率也称为FPS(Frames Per Second)的缩写——帧/秒。是指每秒钟刷新的图片的帧数,也可以理解为图形处理器每秒钟能够刷新几次。对影片内容而言,帧速率指每秒所显示的静止帧格数。要生成平滑连贯的动画效果,帧速率一般不小于8;而电影的帧速率为24fps。捕捉动态视频内容时,此数字愈高愈好。

如果具体到手机上就是指每秒钟能够播放(或者录制)多少格画面。同时越高的帧速率可以得到更流畅、更逼真的动画。每秒钟帧数(FPS)越多,所显示的动作就会越流畅。

视频是连续快速地显示在屏幕上的一系列图像,可提供连续的运动效果。每秒出现的帧数称为帧速率,是以每秒帧数 (fps) 为单位度量的。 帧速率越高,每秒用来显示系列图像的帧数就越多,从而使得运动更加流畅。视频品质越高,帧速率也越高,也就需要更多的数据,从而占用更多的带宽。 在处理数字压缩视频时,帧速率越高,文件将越大。要减小文件大小,请降低帧速率或比特率。如果降低比特率,而将帧速率保持不变,图像品质将会降低。

以原有帧速率(视频最初录制时的帧速率)观看视频的效果要更好,因此,如果传送通道和播放平台允许的话,Adobe 建议您保留较高的帧速率。对于全动态 NTSC 视频,请使用 29.97 fps;对于 PAL 视频,请使用 25 fps。如果降低帧速率,Adobe Media Encoder 会在线性速率下丢失桢,如果必须降低帧速率,均分速率将能获得最佳效果。例如,如果源帧速率为 24 fps,请将帧速率降为 12 fps、8 fps、6 fps、4 fps、3 fps 或 2 fps。

对于移动设备,请使用设备特定的编码预设。您也可以使用 Adobe Device Central 来确定许多特定移动设备的相应设置。

注: 如果使用嵌入的视频创建 SWF 文件,视频剪辑的帧速率必须与 SWF 文件的帧速率相同。如果对 SWF 文件和嵌入的视频剪辑使用不同的帧速率,则回放时会不一致。

Flash player的帧速率

网上也有许多关于flash帧速率的讨论,至今Flash Player的帧速率还有一些令人费解的问题。

Flash使用“相对定时模型”(relative timing model),这意味着它并不考虑全局的帧速率问题,只是尽可能地强制保持帧间隔时间。假设你设置影片速率为30帧/秒,这就意味着Flash Player要在帧间等待33毫秒(包括处理帧内容的时间),这种不精确的定时方法导致了许多问题。首先Flash Player依赖高级的操作系统级事件传递定时信息。最坏的情况下使用基于NetScape plugin API 的WM_TIMER,或者最好的情况下使用Internet Explorer API提供的多媒体时钟。第二,因为windows或者MacOS使用的最小时间单位是毫秒,所以只能近似到毫秒的帧间隔单位。第三,操作系统、浏览器、Flash Player在执行帧上的脚本时还会有额外的开销,所以最终的实际帧速率在设计帧速率上有-10到+5帧/秒的浮动,因此系统环境的性能影响很大。

资料1

下面来讨论一下最大的帧速率。在IE中理论上是100帧/秒。为什么呢?WINDOWS的最小时间片是10毫秒。而FireFox的插件不使用特定的时钟,并不控制最大帧速率。从用户抱怨FireFox下的插件很耗CPU资源就可以看出。flash广告一般都在8-12帧/秒以上,CPU占用在3%左右,单个广告不会有问题,一个页面可以轻松放两个到三个广告。前不久看新浪汽车首页的时候觉得浏览器就像死掉了一样,看了代码也没有什么大问题,用firefox的developer tool bar,标记了所有SWF元素之后才发现,一个页面竟然有31个flash(多数是广告),IE的flashplayer使得浏览器过载,会出现慢的情况,尤其是在IE升级activeX的控制方式后,可能有某种后台隔离机制,使flash暂时在后台运行,直到用户单击一下。并且这些广告可能存在不合理的制作方法,使得系统资源占用严重。

资料2

如果你的SWF或FLV在隐藏的标签中不被播放的时候,不要惊奇。而Apple 则做的更进一步,在Safari中如果浏览器处于非活动状态,插件的帧速率只有4帧/秒,主要是为了节省电能和CPU资源。你可以试试,在GOOGLE video中播放一段视频,切换到其他程序。

资料3

降低CPU占用的方法有不少,来自不同域的SWF文件将获得较低的优先权,可以有真速率限制;OS有了GPU的帮助可以解放部分CPU的绘图工作(好显卡很有用)。多数情况下最大帧速率可以达到60帧/秒,在较高的CPU负载情况下,可能会打对折,也就是30帧/秒,OS X 系统已经是这样处理了。

Flash帧速率测试器

Flash作品中预设的帧速率只是理想化的,实际上Flash处理程序或是渲染图像时需要消耗一定的时间,加上机器的差别,动画运行时每一帧的显示速度不尽相同。比如在一帧中放置过多的符号,该帧的帧速率就会远远低于预设的帧速率,导致画面播放不流畅,或是掉帧的情况。如果使用帧速率测试器来检测您的动画,则可发现上述问题。因为帧速率测试器工作时会显示出影片当前的平均帧速率。总之,无论是设计游戏还是制作大型动画,速度慢、运行不稳定的作品是不会有吸引力的,谁也无法去忍受一个只有4帧/秒的动画。

设计要点

首先测试器本身要尽量的简单,否则会影响测试效果。测试器中主要就是一个用来输出测试结果的动态文本和一个重置按钮。使用重置按钮是为得到一个经过准确计算的帧速率,其工作方式就是刷新测试器。测试器测试本身时,显示的帧速率应该和预设值是一样的。

设计步骤

1、打开Flash MX,设置场景大小为350px×100px,背景色为"#0E6A99"(其实,场景的设置是无关紧要的)。按快捷键"Ctrl+F8"新建一个名为"fps"的影片剪辑符号。

2、在符号"fps"的场景里点击选中工具面板中的文本工具 ,然后创建一个静态文本,输入"帧速率:"几个字,如图1所示。接着再创建一个动态文本框,点选中该动态文本框,在其属性面板里进行如图2所示的设置。最关键的设置是一定要定义变量"out"。

3、按快捷键"Ctrl+F8"新建一个名为"button"的按钮符号(按钮的设计要尽量简单)。在按钮上输入"重置"两个字,如示例所示。

4、点击按钮,点选弹出菜单中的"动作"命令,在"动作"面板中输入如下代码:

on(release){ //release事件是在鼠标指针经过按钮时释放鼠标按钮

frame = 0; //变量frame的作用是纪录当前帧数

n = getTimer(); //函数getTimer()可以返回影片已经播放的时间,单位为毫秒

}

5、回到主场景中。按快捷键"Ctrl+L"打开库,把库中的影片剪辑符号"fps"拖拽到主场景中。

6、右键点击影片剪辑"fps",点选弹出菜单中的"动作"命令,并在"动作"面板中输入如下代码:

//onClipEvent是一个"事件"触发器。当某个事件发生时,就执行花括号中的语句。

//load事件是当影片剪辑被载入时,即执行语句。

onClipEvent (load) {

frame = 1;

n = 0;

}

onClipEvent (enterFrame) { //enterFrame事件是以影片每执行一帧就执行一次语句

//变量time用来纪录当前影片运行的时间

time = (getTimer( )- n)/1000;

//Math对象的ceil方法可以返回大于等于括号中数值并与其最接近的整数

//当前帧数frame除以播放时间time即可得到当前的帧速率

out = Math.ceil(frame/time);

//变量frame(帧数)进行累加

frame++;

}

到这里,这个帧速率测试器就设计好了。现在只要把它直接复制并粘贴到所要测试的动画中就可以使用了。注意,使用测试器时,最好先在被测试动画的场景中新建一层,然后再把测试器复制、粘贴到该层中,这样便于调整测试器的位置以及修改和清除。

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/2/26 5:35:49