php - 如何按内容存储和搜索 mp3

标签 php mysql file mp3 format

我想存储多个 mp3 文件并通过提供歌曲的某些部分来搜索它们,以检测它是哪首歌。

我正在考虑将所有二进制内容存储在 mysql 中,当我想按内容搜索特定歌曲时,我会提取歌曲的一些中间部分并将其与 MySQL 中的二进制数据实际匹配。

我的问题是:

  1. 这是按内容查找歌曲的合理方法吗?
  2. 将歌曲内容存储在数据库中是否正确,还是我应该使用文件系统?

最佳答案

这是行不通的。 MP3 是一种“有损”格式。这意味着它会在编码时不断改变音乐的细微差别,从而在同一首歌曲的几乎每种编码上产生完全不同的字节数据。

此外,即使是像 WAV 这样的未压缩格式,不同音量的两个相同记录也会产生不同的字节数据。因此,不可能通过比较文件内容的字节值来比较音乐。

二进制比较仅适用于相同 MP3 文件的两个完全相同的副本。当您使用相同的设置重新编码相同的 MP3 文件时,它甚至不再工作。

比较音乐不是一件小事,存在多种方法,但据我所知,没有一种方法可以在 PHP 中使用。

如果幸运的话,有一个网络服务可以进行某种匹配。不过,希望它能以某种方式商业化——我怀疑我们是否处于可以免费使用这种东西的阶段。

关于php - 如何按内容存储和搜索 mp3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2221392/

相关文章:

php - 如何将列表/菜单中的值插入mysql

php - 在同一页面上 $_POST 后刷新数据

php - 向 Magento Web 服务 API 添加过滤器

linux 上的 php apache

mysql - 删除较旧的记录,但如果全部删除,则保留最后 20 条记录

mysql - 过滤掉重复项

java - Files.lines 是否将所有行读入内存?

c++ - 为什么我不能在我的程序中使用 "file_ptr>>variable"从文件中读取?

mysql - 跨 2 个表分隔用户?

c++ - 在 C++ 中使用 opendir 打开现有目录时出错