我花了很多时间解决这个问题,但看起来我需要一些帮助。我有一个网络会议应用程序,它提供了流式传输实时视频、聊天、共享文档、在白板上绘图、共享桌面等功能。现在我想记录在所谓的网络研讨会中发生的所有事情,包括视频和声音。所以我正在寻找可以帮助实现这一目标的工具。
这是输入数据:
- 这是基于 Adobe Flash 的应用程序
- 使用wowza 服务器
- 一切都应该记录在服务器上
- 许多网络研讨会可以同时处于录制模式
- 记录应以视频形式表示(flv、mp4 或其他)
到目前为止我所做的以及我遇到的问题:
我已经在服务器端实现了录制。但这不是视频,这只是重新创建已通过网络研讨会的命令列表。它可以工作,但有很多限制和倒带问题。现在我正在测试这个FLV 编码库。我创建了 AIR 应用程序,它在需要记录时在服务器上启动,连接到网络研讨会并使用BitmapData.draw()方法从自身获取屏幕截图。工作得非常整洁,但有一些限制,我正在寻求帮助:
- 首先,这是声音问题。我不知道如何在 flash 中捕捉所有来源的所有声音。到目前为止,从我的测试和谷歌搜索来看,我得出的结论是SoundMixer.computeSpectrum()不会帮助我做到这一点。也许这可以通过在正确的时间混合所有流在服务器端完成,但我认为这会导致同步问题,我更喜欢在客户端捕获声音。也许有办法以某种方式从 rtmp 流中捕获音频字节数组?
- 安全问题。我们有两种。第一个是流媒体视频。
<StreamAudioSampleAccess>true</StreamAudioSampleAccess> <StreamVideoSampleAccess>true</StreamVideoSampleAccess>
即使在服务器上添加后,BitmapData.draw() 方法也会引发异常。有很多关于这个问题的帖子,没有好的解决方案。但更复杂的问题是 YouTube 视频可以使用 api 播放器在网络研讨会中打开。在这种情况下,我不知道如何解决安全问题。也许有人知道在 YouTube AS3 播放器上使用 BitmapData.draw() 的方法或解决方法?
或者也许还有另一种解决我的录音问题的好方法?