`file` zeigt nicht den richtigen MIME-Typ für .m2ts-Dateien an

`file` zeigt nicht den richtigen MIME-Typ für .m2ts-Dateien an

Ich muss den MIME-Typ verschiedener Videodateien definieren und habe ein Problem mit.m2tsDateien. Bevor ich darüber gestolpert bin, habe ich fileein Dienstprogramm mit -iLSchlüsseln verwendet und die Ausgabe mit analysiert sed. Heute habe ich festgestellt, dass file5.15 den MIME-Typ von .m2ts-Dateien als „application/octet-stream“ definiert. O-okay, ich habe das Paket aktualisiert und jetzt nennt es sie einfach „binary“. Dabei habe ich Video/etwas erwartet.

Ich habe von Dienstprogrammen gelesen, die ähnliche Aufgaben erledigen, und habe es versucht xdg-mime query filetype. Das Problem dabei xdg-mimeist, dass es nur auf die Dateierweiterung schaut. Es definiert .m2ts als „video/mp2t“, zeigt es aber für alle an, sogar für leere Textdateien mit dieser Erweiterung.

Vielleicht war es richtig, .m2ts-Dateien als Stream zu bezeichnen, da es sich tatsächlich um einen Stream handelt, aber warum ist die Erweiterung dann in der MIME-Datenbank an „video/mp2t“ gebunden?

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

Antwort1

Dank des von @Patrick bereitgestellten Links habe ich verstanden, dass das filenichts damit zu tun hat shared-mime-infound dass die Datenbank in /usr/share/misc/magic.mgc liegt. Also habe ich nach einer ~/.magicDatei mit einem Fix gegoogelt und sie gefundenHier. In den Zeilen fehlen Leerzeichen, deshalb füge ich es hier ein

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

Antwort2

.m2tswird zum Multiplexen von Audio-, Video- und anderen Streams verwendet, basierend auf MPEG-2 transport stream container.

RFC 3555MIME subtypesFür den MPEG-2-Transportstrom sind viele definiert , einschließlich video/mp2t. Daher denke ich, dass es normal ist, wenn es an gebunden ist video/mp2t.

verwandte Informationen