Em particular, você deseja a -identifyopção. A opção -frames 0diz para não reproduzir o arquivo e -vo null -ao nullfornece drivers nulos para vídeo e áudio (para que você possa usar este comando via SSH ou outro terminal não habilitado para X).
Você pode combinar isso com grepou outras ferramentas para extrair a linha específica desejada:
Algumas distribuições recentes (Debian, Ubuntu 14) eliminaram o ffmpeg e enviaram seu fork de libav, então você pode precisar instalar libav-toolse executar em avconv -ivez deffmpeg -i
bain
Você pode me orientar sobre o que é a taxa de bits do vídeo usando a seguinte saída de amostra? Entrada # 0, flv, de 'mi-cc-03-bed_and_breakfast.flv': Duração: 00: 00: 18.7, início: 0.000000, taxa de bits: 64 kb / s Fluxo # 0.0: Vídeo: flv, yuv420p, 480x360, 29.92 fps (r) fluxo # 0.1: Áudio: mp3, 44100 Hz, aparelho de som, 64 kb / s deve fornecer pelo menos um arquivo de saída
Para mostrar a taxa de bits geral, seria melhor usar -show_formatou ainda melhor (no * nix) avprobe -show_format file.avi | grep bit_rate. A mesma sintaxe também funcionará para o ffprobe.
evilsoup
2
Aqui está outra ferramenta que faz a mesma coisa:, tcprobeque faz parte do transcodepacote. Use a -iopção para obter um despejo de informações do arquivo (saída de amostra do mesmo arquivo que no mplayerexemplo):
Obtenha exatamente a taxa de bits do vídeo via mediainfo : $ mediainfo --Output='Video;%BitRate%' '/MY/MEDIA/FILE.MP4'
ou em Kbps: $ mediainfo --Output='Video;%BitRate/String%'
Obtenha exatamente a taxa de bits do áudio via mediainfo em bps: $ mediainfo --Output='Audio;%BitRate%' '/MY/MEDIA/FILE.MP4'
ou em Kbps: $ mediainfo --Output='Audio;%BitRate/String%' '/MY/MEDIA/FILE.MP4'
Aqui está uma resposta bash de copiar e colar usando avprobe (que vem com avconv e talvez ffmpeg), caso você queira apenas o número (para scripts adicionais)
function bitrate () { avprobe -show_format "$1" 2> /dev/null | grep "bit_rate" | sed 's/.*bit_rate=\([0-9]\+\).*/\1/g'; }
Funciona assim. Esta linha obtém informações sobre o arquivo (removendo informações extras no stdout):
avprobe -show_format test.mp4 2> /dev/null
Em seguida, grepseleciona a linha que menciona a taxa de bits
grep "bit_rate"
A partir do qual, em sedseguida, extrai a taxa de bits (em bits / segundo)
sed 's/.*bit_rate=\([0-9]\+\).*/\1/g';
Para encurtar a história, copie a função na primeira linha e você poderá
$ bitrate test.mp4
593567
(esse não é um vídeo de alta qualidade, 593 kb / s, pois a taxa de bits usa 1000 em vez de 1024, aparentemente)
Eu tenho tentado obter a mesma informação, mas apenas esses dados para usá-lo em um loop bash .. e eu tenho! Usando o FFPROBE!
FFPROBE: hide_banner: ocultar informações do cabeçalho, nível de log 0 nos fornece apenas as informações necessárias, select_streams especificam em qual fluxo (vídeo) estamos trabalhando, show_entries vamos especificar quais dados especificamente queremos
Respostas:
Você pode usar o MPlayer para obter essas informações.
Em particular, você deseja a
-identify
opção. A opção-frames 0
diz para não reproduzir o arquivo e-vo null -ao null
fornece drivers nulos para vídeo e áudio (para que você possa usar este comando via SSH ou outro terminal não habilitado para X).Você pode combinar isso com
grep
ou outras ferramentas para extrair a linha específica desejada:A saída completa é assim:
fonte
O ffmpeg funciona bem:
fonte
libav-tools
e executar emavconv -i
vez deffmpeg -i
fonte
-show_format
ou ainda melhor (no * nix)avprobe -show_format file.avi | grep bit_rate
. A mesma sintaxe também funcionará para o ffprobe.Aqui está outra ferramenta que faz a mesma coisa:,
tcprobe
que faz parte dotranscode
pacote. Use a-i
opção para obter um despejo de informações do arquivo (saída de amostra do mesmo arquivo que nomplayer
exemplo):fonte
Obtenha exatamente a taxa de bits do vídeo via mediainfo :
$ mediainfo --Output='Video;%BitRate%' '/MY/MEDIA/FILE.MP4'
ou em Kbps:
$ mediainfo --Output='Video;%BitRate/String%'
Obtenha exatamente a taxa de bits do áudio via mediainfo em bps:
$ mediainfo --Output='Audio;%BitRate%' '/MY/MEDIA/FILE.MP4'
ou em Kbps:
$ mediainfo --Output='Audio;%BitRate/String%' '/MY/MEDIA/FILE.MP4'
fonte
Aqui está uma resposta bash de copiar e colar usando avprobe (que vem com avconv e talvez ffmpeg), caso você queira apenas o número (para scripts adicionais)
Funciona assim. Esta linha obtém informações sobre o arquivo (removendo informações extras no stdout):
Em seguida,
grep
seleciona a linha que menciona a taxa de bitsA partir do qual, em
sed
seguida, extrai a taxa de bits (em bits / segundo)Para encurtar a história, copie a função na primeira linha e você poderá
(esse não é um vídeo de alta qualidade, 593 kb / s, pois a taxa de bits usa 1000 em vez de 1024, aparentemente)
fonte
Eu tenho tentado obter a mesma informação, mas apenas esses dados para usá-lo em um loop bash .. e eu tenho! Usando o FFPROBE!
FFPROBE: hide_banner: ocultar informações do cabeçalho, nível de log 0 nos fornece apenas as informações necessárias, select_streams especificam em qual fluxo (vídeo) estamos trabalhando, show_entries vamos especificar quais dados especificamente queremos
fer @ FerPC: ~ / Downloads / TEMP $ ffprobe -hide_banner -loglevel 0 -of flat -i 'Eng_Sub_EP.1_1_4.mkv' -select_streams v -show_entries 'format = bit_rate'
você recebe: format.bit_rate = "1085360"
fonte