LINUX.ORG.RU

Ответ на: комментарий от anonymous

Это не то. Просто расширение и его mime-type. Мне нужно добавить поддержку в ОС, чтобы команда file правильно показывала.

Maclay
() автор топика
Ответ на: комментарий от Maclay
$ file VID_20130326_162207.3gp
VID_20130326_162207.3gp: ISO Media, MPEG v4 system, 3GPP

$ file --mime-type *.3gp
VID_20130326_162207.3gp: application/octet-stream

Версия 1:5.30-1+deb9u1

Radjah ★★★★★
()
Ответ на: комментарий от anonymous

Это не то. file использует свои файлы с сигнатурами. Например уже скомпиленный /usr/share/misc/magic.mgc
Вообще в сигнатурах есть определения для MPEG 4 и его производных.

Я не знаю как там устроена логика libmagic, но судя по всему application/octet-stream она проставила, потому что не смогла однозначно определить mime-type.

ritsufag ★★★★★
()
Ответ на: комментарий от ritsufag

Справедливости ради тот же файл по http:

$ curl -I http://192.168.1.30/Dropbox/Video/VID_20130326_162207.3gp
HTTP/1.1 200 OK
Content-Type: video/3gpp
Accept-Ranges: bytes
ETag: "127803830"
Last-Modified: Tue, 26 Mar 2013 22:22:20 GMT
Content-Length: 25224608
Date: Tue, 26 Dec 2017 08:26:36 GMT
Server: lighttpd/1.4.46-devel-lighttpd-1.4.45-224-g2bed2c1

Radjah ★★★★★
()
Ответ на: комментарий от Radjah

У меня не работала функция php fileinfo.

Получилось решить так: в файле /etc/magic добавил 4 string ftyp3gp video/3gp !:mime video/3gp 0 string #!AMR Adaptive Multi-Rate Codec (GSM telephony) !:mime audio/amr

Maclay
() автор топика
Ответ на: комментарий от Radjah

Не ну если ТС'у нужно просто добавить «корректный» тип, то можно создать файл в хомяке(либо указать через ключик -m).

~$ cat .magic

4       string          ftyp            ISO Media
!:mime  video/3gpp
>8      string          3gp             \b, MPEG v4 system, 3GPP

~$ file fixture.3gp --mime-type
fixture.3gp: video/3gpp

ritsufag ★★★★★
()
Ответ на: комментарий от Maclay

Только учти что это не всегда будет работать т.к в хедерах обычно лютый трешак.

ritsufag ★★★★★
()
Ответ на: комментарий от Maclay

Можешь скомпилировать новый .mgc файл(ключ -C) и заменить
/usr/share/misc/magic.mgc
Но ты же понимаешь что тогда придется это проделывать на других хостах, а то и таскать с собой свой файл.
Если в проекте нужно детектировать только данный тип, то можешь сделать это вручную одной сигнатурой.

ritsufag ★★★★★
()
Ответ на: комментарий от ritsufag

Придется таскать с собой, т.к в противном случае другие типы не определяются

Maclay
() автор топика
Ответ на: комментарий от ritsufag

Решил зайти с другой стороны. Есть /usr/share/mime/packages, там есть все необходимые типы, включая 3gp и AMR.

Делаю update-mime-database /usr/share/mime На выходе получаю файл /usr/share/mime/magic Теперь, если правильно понимаю, его надо скомпилировать, и вот при этом выпадает куча ошибок:

 file -i /var/cloud-upload/test.amr -m /usr/share/mime/magic
/usr/share/mime/magic, 1: Warning: offset `MIME-Magic' invalid
/usr/share/mime/magic, 1: Warning: type `MIME-Magic' invalid
/usr/share/mime/magic, 2: Warning: offset `[90:application/vnd.stardivision.writer]' invalid
/usr/share/mime/magic, 2: Warning: type `[90:application/vnd.stardivision.writer]' invalid
/usr/share/mime/magic, 3: Warning: type `=' invalid
/usr/share/mime/magic, 4: Warning: offset `StarWriter' invalid
/usr/share/mime/magic, 4: Warning: type `StarWriter' invalid
/usr/share/mime/magic, 5: Warning: offset `[90:application/x-docbook+xml]' invalid
/usr/share/mime/magic, 5: Warning: type `[90:application/x-docbook+xml]' invalid
/usr/share/mime/magic, 6: Warning: type `=' invalid
/usr/share/mime/magic, 7: Warning: type `>0=' invalid
/usr/share/mime/magic, 8: Warning: type `>0=' invalid
/usr/share/mime/magic, 9: Warning: offset `[90:image/x-eps]' invalid
/usr/share/mime/magic, 9: Warning: type `[90:image/x-eps]' invalid
/usr/share/mime/magic, 10: Warning: type `=' invalid
/usr/share/mime/magic, 11: Warning: type `>15=' invalid
/usr/share/mime/magic, 12: Warning: type `=' invalid
/usr/share/mime/magic, 13: Warning: type `>16=' invalid
/usr/share/mime/magic, 14: Warning: type `=' invalid
/usr/share/mime/magic, 15: Warning: offset `[80:application/prs.plucker]' invalid
/usr/share/mime/magic, 15: Warning: type `[80:application/prs.plucker]' invalid
/usr/share/mime/magic, 16: Warning: type `=' invalid
/usr/share/mime/magic, 17: Warning: offset `[80:application/vnd.corel-draw]' invalid
/usr/share/mime/magic, 17: Warning: type `[80:application/vnd.corel-draw]' invalid

Maclay
() автор топика
Ответ на: комментарий от ritsufag

Тянешь исходники в текущую директорию:

apt source file

заходишь в распакованную директорию с сорсами:
cd file-5.25/magic

Создаешь в Magdir свой файл, например 3gp и добавляешь его в список в Makefile.am
EXTRA_DIST = \
$(MAGIC_DIR)/Header \
$(MAGIC_DIR)/Localstuff \
$(MAGIC_FRAGMENT_DIR)/3gp \
$(MAGIC_FRAGMENT_DIR)/acorn \
...

Затем переходишь снова file-5.25 и поочередно выполняешь
./configure
make

Ну и забираешь собранный файл отсюда file-5.25/magic/magic.mgc

ritsufag ★★★★★
()
11 февраля 2018 г.
Ответ на: комментарий от ritsufag

А Вы случайно не знаете как добавить ассоциации для приложений запускаемых через Wine? Splan это делает сам, а вот Sprint Layout -нет. Хотя в глобальном меню Гнома иконка добавляется.

stanislau
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.