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.
ffprobede hecho, es una excelente manera de hacerlo. Sin embargo, tenga en cuenta que debe indicarffprobequé información desea que muestre (con las opciones-show_format,-show_packetsy-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.asfproduciría algo como lo siguiente:fuente
-of jsonlugar de-print_format json. El primero es compatibleavprobemientras 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
ffprobeque se puede analizar muy bien:resulta en:
h264x600x480x25/1x385.680000x542326-select_streams v:0selecciona solo la secuencia de video. Si elimina ese parámetro, obtiene una línea para cada flujo.fuente