Cada vez que trato de obtener información sobre mis archivos de video con ffmpeg, arroja mucha información inútil mezclada con cosas buenas.
Estoy usando ffmpeg -i name_of_the_video.mpg
.
¿Hay posibilidades de conseguirlo de forma amistosa? Quiero decir que JSON sería genial (e incluso un XML feo está bien).
A estas alturas, hice que mi aplicación analizara los datos con expresiones regulares, pero hay muchos rincones desagradables que aparecen en algunos archivos de video específicos. Arreglé todo lo que encontré, pero puede que haya más.
Quería algo como:
{
"Stream 0": {
"type": "Video",
"codec": "h264",
"resolution": "720x480"
},
"Stream 1": {
"type": "Audio",
"bitrate": "128 kbps",
"channels": 2
}
}
Respuestas:
Un poco tarde, pero quizás aún sea relevante para alguien.
ffprobe
de hecho, es una excelente manera de hacerlo. Sin embargo, tenga en cuenta que debe indicarffprobe
qué información desea que muestre (con las opciones-show_format
,-show_packets
y-show_streams
) o simplemente le dará una salida en blanco (como mencionó en uno de sus comentarios).Por ejemplo,
ffprobe -v quiet -print_format json -show_format -show_streams somefile.asf
produciría algo como lo siguiente:fuente
-of json
lugar de-print_format json
. El primero es compatibleavprobe
mientras que el segundo no.Ahora es posible usarlo
-progress -
para imprimir información amigable formateada porkey=value
.fuente
Podrías intentarlo
ffprobe
. El comando correcto para obtener la salida JSON debería tener el siguiente aspecto:fuente
{}
. No parece funcionar con los archivos de video que tengo ...Otro uso
ffprobe
que se puede analizar muy bien:resulta en:
h264x600x480x25/1x385.680000x542326
-select_streams v:0
selecciona solo la secuencia de video. Si elimina ese parámetro, obtiene una línea para cada flujo.fuente