科尔多瓦|将视频发送到手机

时间:2015-05-30 07:57:05

标签: javascript cordova video

我正在寻找一种方法将视频文件传输到客户端的移动而无需流式传输。原因是(客户的要求)由于预期的一次性高流量而消除了这种服务器的成本。

所以我查看了base64编码,下面是获取19mb文件所需的时间(一个是100mb互联网连接,另一个是3G连接)。这可能会使等待变得痛苦,特别是在3G连接上。 base64 video encode timing

我还考虑使用字节数组来显着减小文件大小,但很难通过JSON传递所有转义的反斜杠......

最后,我查看了另一种可能的解决方案,即在应用关闭时视频直接传输到客户端的手机上(当文件上传到客户端手机时推送通知),但这可能是科尔多瓦的限制之一(据我所知)。

我现在正在寻找一个解决方案,因此我已经给了它一个赏金,因为我认为这是一个值得回答的问题。总有一天会有人感谢我们。 :)我会成为第一个。

非常感谢,并且编码很快。

1 个答案:

答案 0 :(得分:2)

托管与应用服务

首先,您需要了解无论文件来自何处 - 文件服务器(流媒体)或应用程序服务器(base64编码的字符串),托管成本都将类似(嗯,文件托管)服务器应该比你写的任何东西都更有效,但这是一个微小的差异)。您仍然需要将文件存储在某个位置,您仍然需要通过网络发送它。区别在于,在一种情况下,Apache / IIS /您使用的任何服务器都处理所有复杂的东西,在第二种情况下,您将尝试自己重新创建它。

流媒体与非流媒体

当您提供文件(无论是您自己,还是通过文件服务器)时,您可以允许以块(流)或仅作为一个巨大的文件来检索它。在第一种情况下 - 流媒体 - 如果用户在视频中途停止观看,您只需要服务器容量来提供60%或70%的文件。在第二种情况下 - 非流式传输 - 您需要让用户首先等待在其中完整中检索文件,并且最重要的是它将始终耗费您100%的电量

预先存档文件

这并不是说什么都不能优化。例如,如果您在星期六下午6点每周分发一个文件,但是事先已经知道该文件的整整一周,理论上您可以加密该文件并在整个星期的过程中分发后台服务。是的,你甚至可以在构建Cordova应用程序时这样做(虽然它会有点困难,你最终可能会编写自己的插件)。尽管如此,这种情况非常罕见,并且绝对不值得开发时间,除非在极少数情况下(例如,它通常用游戏文件完成,但数以万计的数据下载了数万次)。