Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 FLV性能和垃圾收集_Actionscript 3_Garbage Collection_Flv_Flvplayback_Flashplayer 10 - Fatal编程技术网

Actionscript 3 FLV性能和垃圾收集

Actionscript 3 FLV性能和垃圾收集,actionscript-3,garbage-collection,flv,flvplayback,flashplayer-10,Actionscript 3,Garbage Collection,Flv,Flvplayback,Flashplayer 10,我正在建立一个大型flash站点(AS3),它使用巨大的FLV作为从一节到另一节的过渡视频。FLV为1280x800,并被缩放至1680x1050(其中大部分不会向屏幕较小的用户显示),每个FLV约为5-8秒。我正在使用On2的高清编解码器VP6-s对视频进行编码,本地FLV播放器、配备Perian的Quicktime和AS3内置的简单概念验证FLV播放应用程序的播放效果非常好 我遇到的问题是,在实际站点的上下文中,播放不是那么流畅;帧速率没有它应有的那么好,更麻烦的是,偶尔会出现抖动和掉帧(有

我正在建立一个大型flash站点(AS3),它使用巨大的FLV作为从一节到另一节的过渡视频。FLV为1280x800,并被缩放至1680x1050(其中大部分不会向屏幕较小的用户显示),每个FLV约为5-8秒。我正在使用On2的高清编解码器VP6-s对视频进行编码,本地FLV播放器、配备Perian的Quicktime和AS3内置的简单概念验证FLV播放应用程序的播放效果非常好

我遇到的问题是,在实际站点的上下文中,播放不是那么流畅;帧速率没有它应有的那么好,更麻烦的是,偶尔会出现抖动和掉帧(有时视频会暂停四分之一秒左右)。我的猜测是,这是由Flash player中的垃圾收集引起的,垃圾收集的发生是不确定的,因此很难对其进行测试和控制


我使用FLVPlayback的一个实例来播放视频;我最初直接使用NetStream对象等,但后来改用FLVPlayback。有没有人在FLVPlayback(或者更一般地说,在高清Flash视频)中经历过这种急促?我认为GC是罪魁祸首的说法正确吗?如果是的话,在播放这些系统密集型转换的过程中,有没有办法阻止它?

您是否尝试过用H.264编码视频?Flash player支持它们一段时间了,它最终可能会工作得更好。这就是大多数人使用Flash制作高清视频的原因(如Youtube、Vimeo等)


作为一个测试,试着在youtube上播放一段1080p高清视频,看看这段视频是否会暂停。

看看FLV/F4V播放过程中出现的不平稳几乎不是垃圾收集的结果-视频实际上一直保存在内存中,直到完全卸载,所以根本没有垃圾收集发生(除非您做了一些非常规的事情,比如将视频放在cacheAsBitmap设置为true的容器上)

如果您不需要特定的FLV功能,请切换到F4V(如-免责声明,这是我的博客)这会有所帮助,但总的来说,您还必须了解影响屏幕上视频合成的任何因素。因为大尺寸视频会强制重新渲染与之重叠的所有内容,所以任何小对象都会对性能产生很大影响

视频上方是否有内容?如果可能,请尝试将其删除,或者将cacheAsBitmap设置为true(如果没有动画)。这对于复杂的矢量图形或文本特别有用(位图/图像绘制速度更快).如果他们有不同的混合模式,你有点搞砸了-你能用普通的混合模式代替吗

你在视频下面有什么东西吗?如果有,在视频播放时把它们扔掉(只需将可见性设置为false)

若要检查不必要的渲染,请暂停视频,右键单击,打开“显示重画区域”(调试播放器)。您是否连续看到红方块图形?然后背景上发生了一些事情,最好将其清除

你有没有通过一帧或计时器/间隔在背景上发生任何事情?尝试暂停它

您的视频是30帧/秒,还是CG渲染(例如,可以使用运动模糊)?如果是,请尝试以24帧/秒或介于两者之间的速度渲染-质量仍然很好,但解码和绘制的数据要少得多

你能使用更小的视频吗?即使你仍然以同样大的尺寸渲染它们,解码和渲染更少的像素数据也会有很大帮助,而且对质量的影响可能非常小


这几乎是所有内容的总和。不过,摆脱屏幕上的所有其他内容通常是你的首要任务。

事实上,是的,在选择VP6-S之前,我们尝试了多种格式。我们对H.264的实验并不详尽,因为有太多不同的配置需要尝试,但总体而言,即使是系统密集度最低的配置文件在H.264中,我们使用VP6-S获得了更好的性能和文件大小。不过,我对这种可能性持开放态度;您能为高清、高动态flash视频的最佳H.264编码设置和工具提供一个好的资源吗?