我开发了一个简单的应用程序,它使用 flex 和 red5 从网络摄像头录制视频。这个应用程序是使用 flex 和扩展 red5 应用程序适配器制作的,在客户端我使用 NetStream.publish() 方法,在服务器端我会在流文件夹中找到我录制的 flv 文件,我已经在 windows 主机和 linux 服务器上尝试过. 在我的应用程序中,我使用 2 个不同的 netstreams 按音频分割视频,同时我录制了一个 audio.flv.ser 和一个 video.flv.ser 文件,最终的 flv 文件是从 .ser 文件创建的。
我注意到windows主机和linux服务器之间的区别,运行centos6,执行是这些:
- 在 Windows 主机上,两个 flv 文件一起处理,我可以看到它们的大小每时每刻都在变化,直到达到 .ser 文件大小,但在 linux 大小上,每个 flv 文件都被一个一个处理,第一个 video.flv 被处理一次done audio.flv 开始处理。
- Windows 主机比 linux 服务器快得多,大约快 10 倍,但 linux 服务器运行在比 linux 服务器更弱的 cpu 上(T4400 服务器与 Xeon 四核)。
为什么red5在windows和linux上运行的方式有这么大的区别?red5是用java写的,算法工作流在windows和linux系统应该是一样的吧?