在flash mx中,我们可以导入quicktime或windows播放器支持的标准媒体文件。对于导入的视频对象,可以进行缩放、旋转、扭曲和遮罩处理,也可以通过编写脚本来创建视频对象的动画。flash mx 6播放器加入了sorenson spark解码器,可以直接支持视频播放。此外,flash mx还支持运行期动态载入jpeg和mp3文件,支持mp3、adpcm和新的语音音频压缩技术。依据视频文件的格式和导入方法,在flash mx中导入的视频可以发布成包含视频的flash mx动画(.swf)或quicktime电影(.mov)。
flash mx支持导入的视频格式包括:mpeg(运动图像专家组)、dv(数字视频)、mov (quicktime电影)和avi等。如果你的系统安装了quicktime 4或更高版本,在windows和macintosh平台就可以导入这些格式的视频。如果你的windows系统只安装了directx 7(或更高版本),没有安装quicktime,则只能导入mpeg、avi和windows媒体文件(.wmv和.asf)文件。
在默认情况下,flash mx使用sorenson spark编解码器导入和导出视频。编解码器是控制导入、导出时多媒体文件怎样压缩和解压缩的一种算法。因此,对其它视频格式的支持,取决于你的系统安装的是什么编解码器。
如果试图导入的视频文件的格式flash mx不支持,它会显示一个提示信息,说明不能完成导入。对于某些视频文件,flash mx只能导入其中的视频部分而无法导入其中的音频,这时flash mx同样会提醒你。
一、sorenson spark编解码器
sorenson spark是flash mx内置的运动视频编解码器,它让我们能够在flash mx中添加视频内容。spark是一个高质量的视频编码/解码器,它可以在提高视频质量的同时显著降低带宽要求。以前的flash 只能使用连续位图图像来模拟视频,包含spark后, flash mx在视频支持能力方面有了很大的提高。
二、嵌入视频剪辑
在flash mx中,可以用嵌入视频文件的方式导入视频剪辑。嵌入视频剪辑将成为动画的一部分,就像导入的位图或矢量图一样,最后发布为flash mx动画形式(.swf)或者quicktime(.mov)电影。采用嵌入视频的形式,可以导入flash mx支持的任何格式的视频文件。
三、链接quicktime视频剪辑
如果我们导入的是quicktime视频剪辑,可以选择嵌入或链接两种方式。以链接方式导入的quicktime视频并不成为flash mx文件的一部分,而是在flash mx中保存一个指向quicktime电影的链接。以链接方式导入quicktime视频就只能发布为quicktime电影(.mov),不能发布为flash mx动画(.swf),因此也就不能以swf格式显示链接的quicktime视频。对于在flash mx中链接的quicktime视频,可以执行缩放、旋转和动画*作,但不能对quicktime视频的内容创建内插动画。
四、查看导入的视频文件
在编辑区选择嵌入或链接的视频的实例,打开属性面板(如果属性面板没有打开,选择window>properties),属性面板显示该剪辑的实例名(嵌入视频剪辑)、像素大小和它在编辑区中的位置。
五、创建视频对象
flash mx还允许我们创建视频对象,这可用于显示摄像头摄取的现场直播视频流。
(一)、sorenson spark编解码器
sorenson spark是flash mx内置的运动视频编解码器,它让我们能够在flash mx中添加视频内容。spark是一个高质量的视频编码/解码器,它可以在提高视频质量的同时显著降低带宽要求。以前的flash 只能使用连续位图图像来模拟视频,包含spark后, flash mx在视频支持能力方面有了很大的提高。
spark视频编解码器由编码器和解码器组成。编码器的作用是压缩视频内容,解码器的作用是对经过压缩的内容解压。解码器包含在flash mx播放器中。
应用与数字媒体的压缩有两种类型:空间上的和时间上的。时间上的压缩区分帧间差异,只存储帧间不同的部分,这样就可以依据与前一帧的不同来描述当前帧。不变的区域(即帧间相同的部分)只需简单重复前一帧的就可以了。时间压缩帧常常称为间帧。时间压缩是一种帧间压缩。
空间上的压缩应用于单帧数据的压缩,与周边的帧无关。空间压缩可以是无损压缩(图像中的数据不丢弃),也可以是有损压缩(有选择地丢弃部分数据)。空间压缩帧常常称为内帧。空间压缩是一种帧内压缩。
sorenson spark是一个间帧编解码器。sorenson spark的高效间帧压缩是它不同于其它压缩技术之处。与其它编解码器相比,它需要的很低的数据率就可以产生高质量的视频。很多其它的编解码器都是采用帧内压缩,例如jpeg就是一个帧内压缩编解码器。
不过,帧间压缩编解码器也会采用帧内压缩技术。在这种情况下,内帧被作为间帧的参考帧(关键帧)。sorenson spark编码总是从关键帧开始,每个关键帧就成为后面的间帧的主参考帧。如果下一帧与前一帧有显著的不同,编解码器就把它压缩为新的关键帧。
怎样压缩视频在很大程度上取决于视频的内容。一个只有说话动作的头部视频的压缩与足球比赛视频的压缩就有很大的不同。要获得最佳的视频压缩效果,使用sorenson spark创建flash mx视频时应该注意以下几个问题:
1.力求简单。要尽量避免详细转换,因为详细转换不能很好的压缩,将会导致压缩视频最后很“肥胖”。硬剪裁通常效果最好,或者快速淡入淡出。缩放镜头、翻页、绕几圈后飞出屏幕,看起来很cool,但压缩效果很差,应尽量避免使用。
2.了解用户的数据传输速度。在internet上传送视频时,你应该以较低的内部网数据传输速度生成文件。快速连接的用户观看你的动画时几乎无需等待,但拨号用户却需要等待文件下载。在这种情况下,最好生成较短的剪辑,以保持下载时间在拨号用户能够容忍的限度之内。
3.选择适当的播放速度。帧速指示播放速度,用每秒钟播放多少帧表示。如果数据传输速度较高,较低的帧速可以改善低端用户的回放效果。
4.选择与数据传输速度相适应的帧大小。帧大小对在flash mx动画生成高质量的视频有着重要的影响。在给定的数据传输速度(连接速度)下,增加帧大小会降低视频质量。在选择帧大小时也必须考虑帧速和连接设备。如果采用moden连接,常用的帧大小是160×120;192×144;320×240。
5.了解下载进程。你应该知道下载你的视频需要多长时间。在下载视频时,应该让其他内容显示以“掩盖”视频的下载。对于较短的视频剪辑可以用下式大略计算暂停时间:
暂停时间 = 下载时间 – 播放时间 + 播放时间×10%
例如,如果你的视频剪辑的长度是30秒,下载时间需要1分钟,那么就需要有33秒的暂停时间(60-30+30×10%)。
6.使用没有噪音的视频。视频原文件的质量越高,最后的动画质量就越好。虽然internet视频的帧速和大小通常比你在电视上看到的小,但计算机的监视器比一般的电视机有更好的色彩*真度、饱和度、清晰度和分辨率。即便是在很小的窗口中,数字视频的图像质量也要比标准模拟电视更重要。在tv几乎不注意到的信号噪音在计算机上却是难以接受的。捕获视频之后应该去除噪音和交错。音频也应该像视频一样使用没有噪音的文件。
(二)、嵌入视频剪辑
在flash mx中,可以用嵌入视频文件的方式导入视频剪辑。嵌入视频剪辑将成为动画的一部分,就像导入的位图或矢量图一样,最后发布为flash mx动画形式(.swf)或者quicktime(.mov)电影。采用嵌入视频的形式,可以导入flash mx支持的任何格式的视频文件。
在导入视频设置对话框中,我们可以控制嵌入视频的帧速与动画主时间轴的帧速同步,调整视频帧速与主时间轴帧速之比,还可以在回放过程中丢弃导入视频的某些帧。如果你不希望嵌入视频与flash mx动画同步(例如,有时需要防止嵌入视频的帧被丢弃或复制),此时只需取消synchronize(同步)选项的选择即可。
对于已经导入flash mx中的视频,还可以使用外部编辑器编辑,然后更新;也可以导入另一个视频来替换嵌入的视频。可以给视频剪辑实例指派不同的图符,此时在编辑区会将显示不同的实例,但可以保留原实例的所有属性(如颜色和旋转角度等)。
可以从图符库面板把导入视频的实例拖到编辑区来创建视频对象。像其它图符一样,你可以创建导入视频剪辑的多个实例,且不会增加文件的大小。
嵌入视频剪辑的操作步骤如下:
1.选择file>import,把视频剪辑直接导入当前文档的编辑区;或选择file>import to library(文件>导入到图符库中),把视频剪辑导入当前文档的图符库中。
2.在import video settings(导入视频设置)对话框中,拖动quality(质量)的滑块或直接输入数值,控制应用于视频剪辑的压缩量。较低的质量设置产生较小的文件,但会降低图像的完整性。
3.拖动keyframe interval(关键帧间隔)的滑块或直接输入数值,控制视频剪辑的关键帧频率(包含完整数据的帧)。例如,设置帧间隔为30时,在视频剪辑中将每隔30帧就存储完整的一帧。间隔之间的帧只存储与前一帧不同的数据。间隔越小,存储完整帧就越多,在视频中的搜寻更快,但生成的文件也就越大。
提示:设置关键帧间隔为1时,视频中的每一帧都储存为完整的帧。只有在视频文件很小时才推荐使用这种设置。
4.拖动scale(缩放)的滑块或直接输入数值,减少视频的像素数。小的像素数可以减小文件的大小,改善回放性能。例如,一个数字视频(dv)文件的像素数为640×480像素,降低缩放比例为25%可以改善flash mx动画中视频的性能。
5.选择synchronize video to macromedia flash mx movie frame rate(使视频与flash mx动画的帧速同步)选项,使导入视频的回放速度与flash mx动画的主时间轴回放速度匹配。取消此项选择,可以防止帧速同步。
6.在number of video frames to encode per number of flash mx frames(编码视频帧数与flash mx帧数之比)选项中选择一个值,指定导入视频帧数与flash mx动画主时间轴帧数之比。例如,flash mx动画主时间轴每播放1帧,导入视频就播放1帧,选择1:1;flash mx动画主时间轴每播放2帧,导入视频就播放1帧,选择1:2,依次类推。
丢弃导入视频的帧不会降低视频的运动速度,而是每秒钟显示更少的帧,使视频在回放时显得更加跌宕起伏。
7.选择import audio(导入声音),指定在导入视频剪辑中包含音轨(如果有的话)。取消此项选择将不导入视频剪辑中的音轨。
提示:如果你的系统不支持音轨中使用的音频编解码器,当你在导入视频设置对话框中单击ok按钮时flash mx将会提醒你。这时你仍可以继续导入视频,但没有声音;你也可以回到视频编辑程序中,用你的系统支持的音频编解码器重新保存视频。
8.单击ok按钮。
9.如果在步骤1直接导入视频剪辑到编辑区,且导入的视频包含的帧数超过了当前flash mx文档中放置它的时间轴的帧跨度,flash mx就会提醒你。此时,可以单击yes(是)按钮,延长时间轴帧跨度;也可以单击no(否),保持当前的帧跨度不变,导入视频的帧超过flash mx时间轴的帧跨度的部分不会显示,除非你延长flash mx的帧跨度。
如果你在flash mx中导入了一个视频剪辑,然后又用外部编辑区器编辑该视频剪辑,你就需要更新导入的视频。方法是:在图符库面板中选择要更新的视频剪辑,单击图符库面板右上角的小三角(或在选定的视频剪辑上右击),从弹出的菜单上选properties(属性),然后在弹出的embedded video properties(嵌入视频属性)对话框中单击update(更新)按钮,即可用编辑过的视频文件更新图符库中的视频。
如果你想用另一个视频剪辑更新图符库中的视频,可以在图符库面板选择要替换的视频并右击,然后在弹出的embedded video properties对话框中单击import(导入)按钮,在接着弹出的import对话框中选择用来替换的视频剪辑,单击打开按钮,即可实现替换。
(三)、链接quicktime视频剪辑
如果我们导入的是quicktime视频剪辑,可以选择嵌入或链接两种方式。以链接方式导入的quicktime视频并不成为flash mx文件的一部分,而是在flash mx中保存一个指向quicktime电影的链接。以链接方式导入quicktime视频就只能发布为quicktime电影(.mov),不能发布为flash mx动画(.swf),因此也就不能以swf格式显示链接的quicktime视频。对于在flash mx中链接的quicktime视频,可以执行缩放、旋转和动画*作,但不能对quicktime视频的内容创建内插动画。
链接quicktime视频的*作步骤如下:
1.选择file>import,把quicktime视频直接导入当前文档的编辑区;或选择file>import to library,把视频导入当前文档的图符库中。
2.在import video(导入视频)对话框中,选择link to external video file(链接外部视频文件)选项(如果选择embed video in macromedia flash mx document,则以嵌入的形式导入)。
提示:如果你的系统没有安装quicktime,导入视频对话框不会显示,也不能导入quicktime视频。
3.如果在步骤1直接导入视频剪辑到编辑区,且导入的视频包含的帧数超过了当前flash mx文档中放置它的时间轴的帧跨度,flash mx就会显示一个提示框。单击该提示框中的yes按钮,可延长时间轴帧跨度,你就可以在flash mx中预览quicktime视频;如果单击no,将保持当前的帧跨度不变,导入视频的帧超过flash mx时间轴的帧跨度的部分不会显示(除非你延长flash mx的帧跨度)。
提示:要预览链接的quicktime视频可使用control>play命令,但不能像以嵌入方式导入的视频那样用control>test movie命令预览。
用链接方式导入的quicktime视频动画可以包含路径。我们可以在图符库中设置路径,方法是:
1.在图符库面板中选择要设置路径的链接quicktime视频并右击。
2.在右键快捷菜单上选择properties,弹出linked video properties(链接视频属性)对话框。
3.在链接视频属性对话框中单击set path(设置路径)按钮,弹出打开对话框。
4.在打开对话框中选择要链接的视频剪辑文件,单击打开按钮。
5.在链接视频属性对话框中单击ok按钮。
(四)、查看导入的视频文件
在编辑区选择嵌入或链接的视频的实例,打开属性面板(如果属性面板没有打开,选择window>properties),属性面板显示该剪辑的实例名(嵌入视频剪辑)、像素大小和它在编辑区中的位置。
在属性面板的实例名文本框中,我们可以给嵌入视频剪辑指定新的实例名字。单击属性面板中的swap(交换按钮),我们可以交换视频剪辑的实例,即用当前文档中另一个视频剪辑替换该实例。在嵌入视频属性对话框中,我们可以查看嵌入视频剪辑的信息,包括它的名称、路径、创建日期像素大小、长度和文件大小。在链接视频属性对话框,我们可以查看链接视频的名称和路径。
提示:沿着时间轴拖拽播放头,可以预览导入视频的各帧,但声音不能回放。要在预览时播放声音,请选择control>test movie命令。
(五)、创建视频对象
flash mx还允许我们创建视频对象,这可用于显示摄像头摄取的现场直播视频流。创建视频对象的*作方法如下:
1.选择window>library,打开图符库面板。
2.单击图符库面板右上角的小三角,弹出选项菜单。
3.在选项菜单上选择new video(新视频),即可在图符库中创建一个嵌入视频图符。
4.从图符库中把刚才创建的视频剪辑图符拖到编辑区中,然后在属性面板中给该视频剪辑实例命名。
通过动作脚本即可该处理视频对象。
本文介绍了在flash mx中导入视频的基本*作方法。根据笔者的试用,一个5m的视频文件(.avi)导入flash mx后,再发布为flash动画(.swf),文件大小只有700kb左右,画质与原来的视频文件没有明显的差别。
