1

我目前正致力于在 flex 中创建一个基于网络的游戏。游戏的功能之一是它能够记录游戏玩法并将其保存在 flv 视频文件中。这是通过捕获游戏的每一帧,将其放在位图数据对象上,然后以 FLV 格式将其编码到字节数组中,然后将其保存为文件来完成的。

但目前,生成的 flv 视频文件比平时大,10 秒视频大约 4mb。这是因为我只使用屏幕视频编解码器将 bitmapData 编码为 FLV 格式。我希望它更小以节省内存空间,因为所有录制的视频都打算在网络服务器中。

我现在要做的是使用 h.264 编码而不是屏幕视频。将位图数据作为帧写入 H.264 编码。经过一番研究,我发现了 x264 库。

现在,我想问一下是否可以在 Flex 项目中使用 x264?如果是我将如何使用它?我是否需要先将 x264 源迁移到操作脚本中才能使用其 API?或者我可以直接在我的 flex 项目中导入 x264vfw.dll 库然后使用它的 API 吗?如果在 flex 中使用 x264 根本不可行,我还有哪些其他选择?

一些关于如何在 flex 项目中使用 x264 的例子会很棒。=)

谢谢。

4

1 回答 1

1

Flash 播放器包含实现此功能所需的所有组件,但 Adob​​e 并未将其打包并为其导出 API。您所要求的基本上是一个Camera对象,它指的是舞台/屏幕而不是网络摄像头。您应该为此向 Adob​​e 索取

Flex 不能帮助您,因为它不能做任何您在 ActionScript 中做不到的事情。Flex 只是对原始 Flash 开发 API 的一个非常有用的包装器,外加一些支持工具。归根结底,这只是 ActionScript 3 代码。

可以通过新的NativeProcess 类对 AIR 2.0 及更高版本执行您的要求。这将允许您将 x264 二进制文件与您的 AIR 应用程序捆绑在一起,并调用它来进行压缩。当然,您需要为要支持的每个平台提供单独的 x264 本机二进制文件。将 Flex 应用程序重新打包为 AIR 应用程序非常容易,但您的游戏将不再是网页游戏,它更像是碰巧用 Flash 编写的原生游戏。

于 2010-12-30T20:59:07.293 回答