我需要定义各种视频文件的 mime 类型,但遇到了问题.m2ts文件。在我偶然发现这一点之前,我使用file
带有-iL
键的实用程序并使用sed
.今天我发现file
5.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
。