Javascript 科尔多瓦|向手机发送视频

Javascript 科尔多瓦|向手机发送视频,javascript,cordova,video,Javascript,Cordova,Video,我正在寻找一种无需流媒体即可将视频文件传输到客户端手机的方法。原因是(客户端的请求)消除了由于预期的一次性高流量而导致的此类服务器的成本 所以我看了base64编码,下面是获取19mb文件所需的时间(一个连接100mb互联网,第二个连接3G)。这可能会让等待变得痛苦,尤其是在3G连接上 我也考虑过使用字节数组来显著减小文件大小,但是很难通过JSON传递它,而且会有所有转义的反斜杠 最后,我考虑了另一种可能的解决方案,那就是在应用程序关闭时将视频直接传送到客户端的手机上(当文件上传到客户端的手机上

我正在寻找一种无需流媒体即可将视频文件传输到客户端手机的方法。原因是(客户端的请求)消除了由于预期的一次性高流量而导致的此类服务器的成本

所以我看了base64编码,下面是获取19mb文件所需的时间(一个连接100mb互联网,第二个连接3G)。这可能会让等待变得痛苦,尤其是在3G连接上

我也考虑过使用字节数组来显著减小文件大小,但是很难通过JSON传递它,而且会有所有转义的反斜杠

最后,我考虑了另一种可能的解决方案,那就是在应用程序关闭时将视频直接传送到客户端的手机上(当文件上传到客户端的手机上时推送通知),但这可能是Cordova的限制之一(据我所知)

几个星期以来,我一直在寻找解决方案,因此我悬赏悬赏,因为我相信这是一个值得回答的问题。总有一天会有人为此感谢我们。:)我会是第一个

非常感谢,祝您编码愉快。

托管vs应用服务 首先,您需要了解,无论文件来自何处—文件服务器(流式传输)或应用程序服务器(base64编码字符串),托管成本都将是相似的(好吧,文件托管服务器应该比您编写的任何东西都更有效,但这只是一个小区别)。您仍然需要将文件存储在某个位置,并且仍然需要通过网络发送。不同之处在于,在一种情况下,Apache/IIS/您使用的任何服务器都在处理所有复杂的内容,而在第二种情况下,您将尝试自己重新创建这些内容

流媒体与非流媒体 当您提供一个文件(无论是您自己还是通过文件服务器)时,您可以允许将其分块(流式)检索,也可以仅将其作为一个大文件检索。在第一种情况下——流式传输——如果用户在视频播放到一半时停止观看,那么您只需要服务器容量就可以处理60%或70%的文件。在第二种情况下(非流式传输),您需要让用户首先等待整个文件被检索,最重要的是,它将始终花费您100%的电量

预制文件
这并不是说什么都不能优化。例如,如果您每周在周六下午6点分发一个文件,但在一周前就已经知道该文件是什么,那么理论上您可以对该文件进行加密,并在整个星期的后台分发。是的,您甚至可以在构建Cordova应用程序时这样做(尽管这会有点困难,您可能会编写自己的插件)。尽管如此,这种情况还是非常罕见,而且绝对不值得花费开发时间,除非是在罕见的情况下(例如,它通常是通过游戏文件完成的,但这是数万次下载的数万GB数据)

我很难理解你问题的意图——为什么视频文件不能作为简单的HTML5媒体嵌入?使用base64,您将面临30%的数据量增加。感谢您的回复,我知道这一点,但问题是服务器很弱,客户端不想托管视频,所以我们的想法是将其发送给客户端,客户端将通过手机播放。。。到目前为止,我们的想法是将文件大小限制在5mb,并使用base64发送视频,我只是在寻找一个比这个更好的解决方案…我已经修改了问题,使其更具体、更容易理解谢谢你的回答,我同意流媒体在许多方面都是更好的选择,我希望我的客户能像我一样对此深信不疑。预制是非正式的,但这是个不错的主意。我想现在还没有真正的答案,所以我会给你奖金,以防在接下来的几天里没有人带来神奇的解决方案@Shay好吧,你需要向客户说明的是,这样做会让他付出更高的成本——无论是托管还是开发——表现不佳,不会给他或用户带来任何好处。我要说的是,预编是为了在应用程序关闭时发送一个视频文件。是的,我认为这只是为了这个想法,尽管如此,还是个好主意。:)我已经向客户解释过很多次了,我想你从最严重的错误中学到了最好的东西,呵呵!再次感谢您的帮助,因为现在我们即将进行测试,我希望他们会看到他们的服务器速度有多慢,并决定升级服务器以允许流媒体传输,或者由于成本原因放弃视频功能:)