我将开发一个基于聊天的移动应用程序,该应用程序允许视频聊天.我正在使用HTML5,javascript和PhoneGap.使用phoneGap,我可以访问手机摄像头,捕获视频,保存视频并将其上传到服务器中.我已经为Android完成了.但是我需要视频直播.有什么解决办法吗?
注意:这不是任何Android本机应用程序.
解决方法:
您未指定当前用于视频捕获的设施. AFAIK,当前的WebView尚不支持WebRTC,这是w3标准,很快将使您能够访问HTML5代码中的视频帧.因此,我假设您正在使用PhoneGap的navigator.device.capture.captureVideo工具.
在Android上,captureVideo创建3gp文件. 3gp的问题在于,它们在捕获时无法流式传输或播放:解析文件中的视频帧需要文件的MOOV原子,并且只有在文件中的所有帧都已编码后才能写入文件.因此,您必须先停止录制,然后才能使用该文件.
使用HTML5最好的方法是实现一个循环,该循环捕获一小段视频(3-5秒?),然后在捕获下一个块时将其发送到服务器.服务器将需要将剪辑连接到一个文件,该文件可以通过流服务器进行广播.这将使广播延迟增加几秒钟,并且您很可能在两个单独的块捕获之间的间隙处遭受丢失帧的困扰.对于某些用例(例如,安全摄像机),这可能就足够了.
如果您的应用程序无法丢帧,那么我别无选择,只能使用Java作为PhoneGap插件来实现视频捕获和流传输.