如果我输入
$ file -i music.mp3
它返回 music.mp3:application/octet-stream; charset=binary
如果我清除此文件中的所有标签和图像,它可以正确识别 MIME 类型。
音乐.mp3:音频/mpeg;字符集=二进制
有没有什么解决方法或错误修复? 是否可以在不修改 mp3 文件的情况下获取正确的数据?
$ file --version
file-5.03
magic file from /etc/magic:/usr/share/misc/magic
答案1
file
我在 Ubuntu 10.04 上使用相同版本的 时遇到了同样的问题。我进行了修改/etc/magic
,并能够使我的 MP3 的 MIME 类型显示为audio/mpeg
。以下是我添加的几行:
# MPEG Layer 3 sound files
0 beshort &0xffe0 audio/mpeg
!:mime audio/mpeg
#MP3 with ID3 tag
0 string ID3 audio/mpeg
!:mime audio/mpeg
取自http://www.opensource.apple.com/source/file/file-23/file/magic/magic.mime
我没有太多编辑这个“神奇”指令的经验,所以我不能保证它的有效性或安全性。
答案2
/etc/magic
您可以向和添加自己的规则/etc/magic.mime
。请参阅man 5 magic
/usr/share/misc/magic
以及(或类似)的内容以获得灵感。