comando do arquivo cygwin não detecta mpg?

1

Tenho notado que o comando file no linux está detectando esse mpg como dado?

link

ele detecta flv ok, mas esse arquivo mpg não ...

Eu gostaria de poder detectar arquivos mpg.

Eu encontrei a parte do arquivo mágico para o MPEG ..

#                       MPEG file
# MPEG sequences
# FIXME: This section is from the old magic.mime file and needs integrating with the rest
0       belong             0x000001BA
>4      byte               &0x40
!:mime  video/mp2p
>4      byte               ^0x40
!:mime  video/mpeg
0       belong             0x000001BB
!:mime  video/mpeg
0       belong             0x000001B0
!:mime  video/mp4v-es
0       belong             0x000001B5
!:mime  video/mp4v-es
0       belong             0x000001B3
!:mime  video/mpv
0       belong&0xFF5FFF1F  0x47400010
!:mime  video/mp2t
0       belong             0x00000001
>4      byte&0x1F      0x07
!:mime  video/h264

e o arquivo

$ xxd -p brakeup.mpg | head -n 1
000001ba2100010001800e3b000001bb000c800e3b07e1ffc0c020e0e02e

$ od -x brakeup.mpg | head -n 2
0000000 0000 ba01 0021 0001 8001 3b0e 0000 bb01
0000020 0c00 0e80 073b ffe1 c0c0 e020 2ee0 0000
    
por barlop 08.05.2011 / 01:10

1 resposta

2

O comando file usa uma lista de definições de arquivos em um arquivo magic (usualmente / usr / share / file / magic nos sistemas linux, ou / etc / magic no Unix).

A maioria das entradas nesse arquivo são apenas números 'mágicos': o comando file corresponde aos primeiros bytes de um arquivo contra essas entradas para identificar o arquivo.

Tente adicionar essas definições neste exemplo de arquivo mágico :

#------------------------------------------------------------------------------
# animation:  file(1) magic for animation/movie formats
#
# animation formats
# MPEG, FLI, DL originally from [email protected] (VaX#n8)
# FLC, SGI, Apple originally from Daniel Quinlan ([email protected])

# MPEG animation format
0   belong      0x000001b3      MPEG video stream data
#>4 beshort&0xfff0  x           (%d x
#>5 beshort&0x0fff  x           %d)
0   belong      0x000001ba      MPEG system stream data

O seu arquivo brakeup.mpg começa com 00,00,01,ba , então o comando do arquivo deve identificá-lo como dados do sistema MPEG pelo menos.

Em distribuições linux baseadas em Ubuntu, o / usr / share / file / magic já possui definições que irão identificar esse arquivo MPG como:

brakeup.mpg: MPEG sequence, v1, system multiplex
    
por 08.05.2011 / 09:08