No soy más que un humilde desarrollador de PHP que se ha encargado de recuperar información básica sobre cientos de miles de archivos de video. He tenido un poco de suerte usando ffmpeg extraer el video bitrate
, video width
, video height
, duration
, y aspect ratio
de ellos, pero con una relación de error de aproximadamente el 5%, esto todavía me deja con un enorme número de archivos que no sé cómo tratar con. Los videos sí se reproducen, pero la gran cantidad de datos que devuelve ffmpeg me ha desconcertado sobre cómo analizar el XML devuelto para encontrar lo que necesito con todas las condiciones que parece estar encontrando. (Los archivos son una colección de los últimos 15 años más o menos, algunos recién codificados, otros convertidos hace años)
En cualquier caso, encontré el siguiente uso de ffprobe
para obtener duración, y esperaba que alguien aquí que comprenda las complejidades de usar ffmpeg y ffprobe sea lo suficientemente amable para ayudarme a encontrar los otros valores que necesito de una manera más directa que código loco que me encuentro creando para escalar a través de los resultados completos de ffmpeg.
ffprobe -i "video.mp4" -show_entries format=duration -v quiet -of csv="p=0"
Muchas gracias de antemano.
ACLARACIÓN:
Debo agregar que con el cmd a continuación, puedo "ver" lo que necesito, pero no entiendo cómo extraer lo que necesito, por ejemplo, recuperar la tasa de bits de VIDEO y suprimir / ignorar la tasa de bits de AUDIO, o determinar cuál de 2 diferentes duraciones de uso (¿duraciones de audio / video?)
C:\>ffprobe -v error -show_entries stream=width,height,bit_rate,duration -of default=noprint_wrappers=1 input.mp4
duration=1712.000000
bit_rate=64000
width=320
height=240
duration=1711.946113
bit_rate=359827
duration=1712.000000
bit_rate=N/A
duration=1712.000000
bit_rate=N/A
De https://trac.ffmpeg.org/wiki/FFprobeTips
Si desea obtener la tasa de bits de la primera transmisión de video, puede usar:
Donde
-select_steams v:0
está seleccionando la primera transmisión de video y:nokey=1
da el valor sin la clave. También puede extraer la información canalizándola a grep, pero no estoy seguro de si está disponible en su sistema.¡Espero que esto ayude!
fuente