Obtém informações sobre o arquivo .avi na linha de comando

5

Qual é a melhor maneira de obter informações como taxa de bits, taxa de quadros, largura / altura de um arquivo de filme (no meu caso .avi ) a partir da linha de comando? Eu estou procurando uma ferramenta básica que funciona de forma semelhante como ImageMagicks identify .

A execução de mplayer já fornece essas informações (mas também faz muito mais):

VIDEO:  [FMP4]  800x711  24bpp  25.000 fps  1320.9 kbps (161.2 kbyte/s)

Existe uma maneira de fazer com que mplayer apenas dê essa saída (eu não a encontrei no homem) ou existe outro comando bash padrão para obter a mesma informação?

    
por Bernhard 14.01.2012 / 12:03

3 respostas

5

mplayer vem com um utilitário midentify que faz basicamente o que você deseja.

A saída se parece com atribuições de variáveis, por isso é muito fácil de usar em scripts / simples de analisar.

Se midentify não estiver instalado com o pacote mplayer , talvez você tenha um script midentify.sh em /usr/share/mplayer ou algo parecido. Caso contrário, midenfify apenas executa mplayer com um conjunto específico de argumentos:

#!/bin/sh
#
# This is a wrapper around the -identify functionality.
# It is supposed to escape the output properly, so it can be easily
# used in shellscripts by 'eval'ing the output of this script.
#
# Written by Tobias Diedrich <[email protected]>
# Licensed under GNU GPL.

if [ -z "$1" ]; then
        echo "Usage: midentify.sh <file> [<file> ...]"
        exit 1
fi

mplayer -vo null -ao null -frames 0 -identify "$@" 2>/dev/null |
    sed -ne '/^ID_/ {
                      s/[]()|&;<>''"'"'\!$" []/\&/g;p
                    }'

Os parâmetros -ao , -vo e -frames impedem que mplayer reproduza o clipe. O resto é apenas formatação.

Exemplo:

$ midentify some_random.avi 
ID_VIDEO_ID=0
ID_AUDIO_ID=0
...
ID_VIDEO_BITRATE=258488
ID_VIDEO_WIDTH=320
ID_VIDEO_HEIGHT=240
ID_VIDEO_FPS=29.917
...
ID_LENGTH=4216.76
...
ID_AUDIO_BITRATE=64000
ID_AUDIO_RATE=22050
...
    
por 14.01.2012 / 12:21
5
O comando

mediainfo também fornece muitas informações:

$ mediainfo IMGP3793.AVI 
General
Complete name                            : IMGP3793.AVI
Format                                   : AVI
Format/Info                              : Audio Video Interleave
File size                                : 121 MiB
Duration                                 : 2mn 16s
Overall bit rate                         : 7 439 Kbps

Video
ID                                       : 0
Format                                   : JPEG
Codec ID                                 : MJPG
Duration                                 : 2mn 16s
Bit rate                                 : 7 339 Kbps
Width                                    : 640 pixels
Height                                   : 480 pixels
Original height                          : 960 pixels
Display aspect ratio                     : 4:3
Frame rate                               : 30.288 fps
Color space                              : YUV
Chroma subsampling                       : 4:2:2
Bit depth                                : 8 bits
Scan type                                : Interlaced
Compression mode                         : Lossy
Bits/(Pixel*Frame)                       : 0.789
Stream size                              : 119 MiB (99%)

Audio
ID                                       : 1
Format                                   : PCM
Format settings, Endianness              : Little
Format settings, Sign                    : Unsigned
Codec ID                                 : 1
Duration                                 : 2mn 16s
Bit rate mode                            : Constant
Bit rate                                 : 88.2 Kbps
Channel count                            : 1 channel
Sampling rate                            : 11.025 KHz
Bit depth                                : 8 bits
Stream size                              : 1.44 MiB (1%)
Alignment                                : Aligned on interleaves
Interleave, duration                     : 33 ms (1.00 video frame)
    
por 14.08.2015 / 11:22
2

Você pode usar o comando arquivo .

    
por 14.01.2012 / 12:20