actionscript-3 - 从播放 h.264 (mp4) 视频的视频显示器中捕获位图数据

标签 actionscript-3 air

我有一个在 Android air 应用程序中播放的视频文件。我正在尝试使用 bitmapData.Draw(video) 捕获帧,但它仅适用于 .flv 视频。

视频在本地播放 - 没有互联网或服务器。

一旦我将视频更改为 .mp4,它就会在舞台上播放,但在调用 draw 函数后有一个空白的 bitmapData。我没有说任何错误。

如何从播放的 .mp4 视频中捕获帧?

笔记 -
这是一个视频组件,而不是 StageVideo ,因为我知道这是不可能的 StageVideo .

网络流初始化。我还添加了 checkPolicyFile = true - 它没有帮助。

my_nc.connect(null);
my_nc.client = this;

_ns = new NetStream(my_nc);
_ns.client = this;
_ns.useHardwareDecoder = true;
_ns.checkPolicyFile = true;

最佳答案

更新:
似乎没有办法通过 ActionScript 在 android 设备上的位图中绘制 h.264 视频。
我测试了这个 demo ( sources ) 与 this h.264 编码的视频文件(它是 origin )在移动 FlashPlayer 11.1 和 AIR 3.5 应用程序中的 mp4 容器中使用相同的代码并且它们都失败了。我在所有渲染模式(直接、cpu 和 gpu)中都有黑色矩形。

可能的解决方法是编写 native 扩展制作屏幕截图(我找到了 this 一个,但据报道可能会使您的应用程序崩溃,但来源可能会有所帮助)并按已知矩形裁剪视频。这不是一个漂亮的解决方案,但我现在看不到其他变体。

关于actionscript-3 - 从播放 h.264 (mp4) 视频的视频显示器中捕获位图数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14512956/

相关文章:

actionscript-3 - AS3类封装导致套接字多次连接

actionscript-3 - 用Flash下载YouTube视频

android - Adobe AIR CameraRoll 无法在 Android 6.0 上选择照片

objective-c - AIR native 扩展 : Can I call ActionScript 3 method from C/Objective-C?

apache-flex - AS3 : Whats determines the order of: for. .in

actionscript-3 - 获取事件目标的名称值 - AS3

regex - Flash AS3 从字符串中提取数字(正则表达式?)

android - 使用外部 XML 在 AS3 中创建移动列表(iOs、android)?

air - 我们可以在 flashdevelop 中使用 Haxe 创建 Air Mobile 应用程序吗?

javascript - 在 Adob​​e AIR 应用程序中从 JavaScript 访问 JpegEncoder 类