“file”未显示 .m2ts 文件的正确 mime 类型

“file”未显示 .m2ts 文件的正确 mime 类型

我需要定义各种视频文件的 mime 类型,但遇到了问题.m2ts文件。在我偶然发现这一点之前,我使用file带有-iL键的实用程序并使用sed.今天我发现file5.15 将 .m2ts 文件的 mime 类型定义为“application/octet-stream”。好吧,我更新了软件包,现在它只是将它们称为“二进制”。当我期待视频/其他东西时。

阅读有关公用事业公司从事类似工作的信息后,我尝试过xdg-mime query filetype。问题xdg-mime是它只查看文件的扩展名。它将 .m2ts 定义为“video/mp2t”,但会显示任何文件,甚至是具有此类扩展名的空文本文件。

也许将 .m2ts 文件称为流是正确的,因为它实际上是一个流,但是为什么在 mime 数据库中扩展名绑定到“video/mp2t”?

$ grep m2ts /usr/share/mime/video/mp2t.xml
  <glob pattern="*.m2ts"/>

答案1

感谢@Patrick 提供的链接,我明白这与它file无关shared-mime-info,它的数据库位于 /usr/share/misc/magic.mgc 中。所以我用谷歌搜索了一个~/.magic带有修复程序的文件并找到了它这里。那里的行缺少空格所以我在这里引用

4 byte 0x47
>5 beshort 0x4000
>>7 byte ^0xF
>>>196 byte 0x47
>>>>388 byte 0x47
>>>>>580 byte 0x47 M2TS MPEG transport stream, v2
!:mime video/MP2T

答案2

.m2ts用于复用音频、视频和其他流,基于MPEG-2 transport stream container.

RFC 3555MIME subtypes为 MPEG-2 传输流定义了许多,包括video/mp2t.所以我认为当它有界时这是正常的video/mp2t

相关内容