我要开发一个基于手机聊天的应用程序,允许视频聊天。我使用的是HTML5、javascript和PhoneGap。使用phoneGap,我能够访问移动摄像头,捕获视频,保存视频并将其上传到服务器。我已经为android做到了这一点。但我需要视频的现场直播。有什么解决方案吗?注意:它不是任何android原生应用程序。
发布于 2012-07-27 22:31:26
您没有指定当前用于视频捕获的工具。AFAIK,当前的WebView还不支持WebRTC,这是一个很快就能让你在HTML5代码中访问视频帧的w3标准。所以我假设你使用的是PhoneGap的navigator.device.capture.captureVideo工具。
在安卓系统上,captureVideo会创建3gp文件。3gp的问题是,它们不能在捕获时流式传输或播放:文件的MOOV原子是解析其中的视频帧所必需的,并且只有在文件中的所有帧都已编码后才会写入。因此,必须先停止录制,然后才能使用该文件。
在HTML5中最好的方法是实现一个捕获短片段(3-5秒?)的循环。然后在捕获下一个块时将其发送到服务器。服务器将需要将剪辑连接到可与流服务器广播的单个文件。这将增加几秒钟的广播延迟,并且您很可能会在两个单独的区块捕获之间的空隙处遭受帧丢失的痛苦。对于某些用例(例如,安全摄像头),这可能就足够了。
如果您的应用程序不能丢失帧,我认为没有其他选择,只能用Java语言实现视频捕获和流媒体,作为PhoneGap插件。
发布于 2012-11-30 20:40:26
参见Spydroid http://code.google.com/p/spydroid-ipcamera/
它使用带有您找到的特殊FileDescriptor的解决方案。基本上,他们让视频编码器在特殊的文件描述符中使用H.264编写.mp4,该文件描述符会在写入时调用您的代码。然后,它们剥离MP4报头并将H.264NALU转换为RTP包。
https://stackoverflow.com/questions/11573920
复制相似问题