有没有办法为基于浏览器的视频上传者设置最长持续时间?

时间:2015-06-20 03:04:04

标签: node.js ffmpeg

Vine.co允许视频最多6秒。但用户只能从手机上传。我想知道这是否可以通过浏览器完成。感谢。

(我依赖node.js)

1 个答案:

答案 0 :(得分:0)

这取决于您希望如何执行上传。

选项1 - 如果通过将电影流式传输到服务器(例如RTSP或RTMP)来上传电影,则服务器可以根据其持续时间选择放弃电影,具体取决于上传。这是最准确和最有效的选项,但它要求上传者能够流式传输文件和服务器以接受媒体服务器的流。

选项2 - 如果通过文件传输上传电影,则最简单的方法是限制电影文件大小。如果您知道其比特率,则可以通过启发式确定大小。例如,在500Kbps时,您希望6秒的电影重约375KB,因此您可能会将上传限制为450KB,并在检查服务器端的文件时确定准确的边界。要实现此功能,您必须事先知道电影的平均比特率。

选项3 - 另一种选择,基于电影元数据:根据电影格式,您可以通过检查文件标题来预先确定电影的持续时间。例如,在mp4中,如果MOV原子位于文件的开头,您可以预先告知电影的持续时间。但是,如果MOV原子位于文件的末尾,或者如果H.264流被复用为MPEG-TS的直播,那么就无法预先判断电影的持续时间。请注意,标头信息在任何情况下都只是元数据,因此不合格的客户端(无论是意外还是恶意)可能会通过发布不正确的持续时间元数据来欺骗服务器。换句话说 - 这种方法不可靠。

选项4 - 如果您仅使用HTTP / FTP,虽然可能是最耗费人力的编程方法,但在上传过程中分析电影时,更准确的方法。此方法高度依赖于电影格式和上传方法。而且它仍然不如第一个选项(上游文件)准确和响应。

总而言之,如果你可以在配额断言的前期准确性上妥协,并在接受或拒绝之前等待文件在服务器上,那么最简单和推荐的解决方案将是选项2。