En particular, quieres la -identifyopción. La opción -frames 0le dice que no reproduzca el archivo y que le -vo null -ao nulldé controladores nulos para video y audio (para que pueda usar este comando a través de SSH u otro terminal no habilitado para X).
Puede combinar esto con grepotras herramientas para extraer la línea específica que desea:
Algunas distribuciones recientes (Debian, Ubuntu 14) cayeron ffmpeg y en su lugar envían su tenedor libav, por lo que puede que tenga que instalar libav-toolsy ejecutar avconv -ien lugar deffmpeg -i
Bain
¿Me pueden guiar para saber qué es la tasa de bits de video usando la siguiente salida de muestra? Entrada # 0, flv, de 'mi-cc-03-bed_and_breakfast.flv': Duración: 00: 00: 18.7, inicio: 0.000000, tasa de bits: 64 kb / s Stream # 0.0: Video: flv, yuv420p, 480x360, 29.92 fps (r) Stream # 0.1: Audio: mp3, 44100 Hz, estéreo, 64 kb / s Debe suministrar al menos un archivo de salida
Para mostrar la tasa de bits general, sería mejor usarlo -show_format, o incluso mejor (en * nix) avprobe -show_format file.avi | grep bit_rate. La misma sintaxis también funcionará para ffprobe.
evilsoup
2
Aquí hay otra herramienta que hace lo mismo: tcprobeque es parte del transcodepaquete. Use el -iinterruptor para obtener un volcado de información del archivo (salida de muestra del mismo archivo que en el mplayerejemplo):
Obtenga exactamente la tasa de bits de video a través de mediainfo : $ mediainfo --Output='Video;%BitRate%' '/MY/MEDIA/FILE.MP4'
o en Kbps: $ mediainfo --Output='Video;%BitRate/String%'
Obtenga exactamente la tasa de bits de audio a través de mediainfo en bps: $ mediainfo --Output='Audio;%BitRate%' '/MY/MEDIA/FILE.MP4'
o en Kbps: $ mediainfo --Output='Audio;%BitRate/String%' '/MY/MEDIA/FILE.MP4'
Aquí hay una respuesta bash de copiar y pegar usando avprobe (que viene con avconv y tal vez ffmpeg) en caso de que solo desee el número (para más secuencias de comandos)
function bitrate () { avprobe -show_format "$1" 2> /dev/null | grep "bit_rate" | sed 's/.*bit_rate=\([0-9]\+\).*/\1/g'; }
Funciona así. Esta línea obtiene información sobre el archivo (eliminando información adicional en stdout):
avprobe -show_format test.mp4 2> /dev/null
Luego grepselecciona la línea que menciona bitrate
grep "bit_rate"
De la cual sedluego se extrae la tasa de bits (en bits / segundo)
sed 's/.*bit_rate=\([0-9]\+\).*/\1/g';
En pocas palabras, copie la función en la primera línea y luego puede hacer
$ bitrate test.mp4
593567
(ese no es un video de alta calidad, 593 kb / s, ya que la tasa de bits usa 1000 en lugar de 1024 aparentemente)
He estado tratando de obtener la misma información pero solo esos datos para usarlos en un bucle bash ... ¡y lo tengo! Usando FFPROBE!
FFPROBE: hide_banner: oculta la información del encabezado, el nivel de registro 0 nos da solo la información requerida, select_streams especifica en qué transmisión (video) estamos trabajando, show_entries nos permite especificar qué datos queremos específicamente
Respuestas:
Puede usar MPlayer para obtener esa información.
En particular, quieres la
-identify
opción. La opción-frames 0
le dice que no reproduzca el archivo y que le-vo null -ao null
dé controladores nulos para video y audio (para que pueda usar este comando a través de SSH u otro terminal no habilitado para X).Puede combinar esto con
grep
otras herramientas para extraer la línea específica que desea:El resultado completo se ve así:
fuente
ffmpeg funciona bien:
fuente
libav-tools
y ejecutaravconv -i
en lugar deffmpeg -i
fuente
-show_format
, o incluso mejor (en * nix)avprobe -show_format file.avi | grep bit_rate
. La misma sintaxis también funcionará para ffprobe.Aquí hay otra herramienta que hace lo mismo:
tcprobe
que es parte deltranscode
paquete. Use el-i
interruptor para obtener un volcado de información del archivo (salida de muestra del mismo archivo que en elmplayer
ejemplo):fuente
Obtenga exactamente la tasa de bits de video a través de mediainfo :
$ mediainfo --Output='Video;%BitRate%' '/MY/MEDIA/FILE.MP4'
o en Kbps:
$ mediainfo --Output='Video;%BitRate/String%'
Obtenga exactamente la tasa de bits de audio a través de mediainfo en bps:
$ mediainfo --Output='Audio;%BitRate%' '/MY/MEDIA/FILE.MP4'
o en Kbps:
$ mediainfo --Output='Audio;%BitRate/String%' '/MY/MEDIA/FILE.MP4'
fuente
Aquí hay una respuesta bash de copiar y pegar usando avprobe (que viene con avconv y tal vez ffmpeg) en caso de que solo desee el número (para más secuencias de comandos)
Funciona así. Esta línea obtiene información sobre el archivo (eliminando información adicional en stdout):
Luego
grep
selecciona la línea que menciona bitrateDe la cual
sed
luego se extrae la tasa de bits (en bits / segundo)En pocas palabras, copie la función en la primera línea y luego puede hacer
(ese no es un video de alta calidad, 593 kb / s, ya que la tasa de bits usa 1000 en lugar de 1024 aparentemente)
fuente
He estado tratando de obtener la misma información pero solo esos datos para usarlos en un bucle bash ... ¡y lo tengo! Usando FFPROBE!
FFPROBE: hide_banner: oculta la información del encabezado, el nivel de registro 0 nos da solo la información requerida, select_streams especifica en qué transmisión (video) estamos trabajando, show_entries nos permite especificar qué datos queremos específicamente
fer @ FerPC: ~ / Descargas / TEMP $ ffprobe -hide_banner -loglevel 0 -of flat -i 'Eng_Sub_EP.1_1_4.mkv' -select_streams v -show_entries 'format = bit_rate'
obtienes: format.bit_rate = "1085360"
fuente