算法-视频文件上传如何排重?

算法-视频文件上传如何排重?

泛泛之交 发布于 2017-02-28 字数 625 浏览 1278 回复 6

例如网盘、视频等网站,当用户上传文件时,有可能传的是同一个文件,如何在存储层对其进行排重,这里涉及到文件的存储方式及校验。我再说明一下吧,例如:A用户上传了一部10G的《阿凡达》高清电影,然后B用户也上传了一部一模一样的《阿凡达》高清(前提是一模一样),这时如何解决校验(如何判断B上传的文件和A上传的文件是一样的呢?)及排重的问题?

还有一种情况是:用户A传了一部高清《阿凡达》完整的电影,B用户传了一部没有片头的高清《阿凡达》电影,其它内容一样,或者是没有片尾的《阿凡达》,这时如何排重?

大家可以根据自己的经验和理解说说自己的想法,我不要从百度、Google等搜索引擎Copy过来的答案,请不要粘贴......

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

甜柠檬 2017-08-19 6 楼

帮你搜索了下一些参考,你这问题属于视频指纹技术范畴有点大:

基本原理是:首先解码视频格式,然后应用很多特质提取算法,提取视频特征,生成一个较小的二进制文件,但该文件不能逆转变成原视频,该文件可以方便的存储在数据库字段中,用于比较。

视频指纹算法需要考虑如下几点:

健壮性:防止别人通过压缩视频、修改视频大小、修改某些视频帧欺骗
识别性:能够通过它把其他视频文件区别出来
压缩性:视频算法生成的文件较小,便于存储和比较。
复杂性低:快速的生成与匹配

提取视频特质的算法需要设计的领域很多,比如直方图,比如等,具体可以参考该ppt

视频指纹技术与应用:

虐人心 2017-08-18 5 楼

想提几个算法之外的建议:
0、首先比较文件大小;
1、再比较视频的长度、压缩格式、编码等视频文件独有的信息;

只有上边两者均不一样是,再使用算法等进行文件的比较

晚风撩人 2017-06-28 4 楼

对大文件进行一遍hash确实很耗时, 可以采用取病毒特征码的方式, 先比较文件大小, 然后从文件随机取几段内容进行hash, 如果一样的话, 就可以认为是同一个文件。如果能容忍低错误率的话, 可以采用这个方案。

夜无邪 2017-06-23 3 楼

这时如何解决校验(如何判断B上传的文件和A上传的文件是一样的呢?)
这个很好解决,譬如php,md5_file取得文件的唯一值,到数据库里检索相同的文件

第二种情况,对视频解码算法和相似率 没有研究。 表示关注!

浮生未歇 2017-05-31 2 楼

我发现QQ,115网盘等是通过md5校验的;
如果用户特别会用影片工具修改,这种方式会失效。

甜柠檬 2017-03-03 1 楼

每个文件应该都可以取得一个hash如md5值,将md5值进行对比就可以了,
$filename = "a.txt";
$md5file = md5_file($filename);
echo $md5file
md5_file取得的是文件的md5值,所以只要文件内容没有改变,重命名md5值也是一样的,可以避免文件重复