Resumen
Este artículo describe el uso del programa ffprobe en el paquete FFmpeg.
Introducción a ffprobe
ffprobe es un programa de línea de comandos en el paquete FFmpeg. Es un analizador de flujo multimedia simple que puede analizar metadatos y detalles técnicos de archivos multimedia, como información de códec, formato, resolución, velocidad de fotogramas y frecuencia de muestreo de audio en espera. ffprobe también admite una variedad de formatos y opciones de salida, incluidos JSON, XML, CSV, etc., para facilitar el procesamiento y análisis de datos.
uso del comando ffprobe
ffprobe [opciones] archivo_entrada
opciones es una lista de opciones.
La cadena que comienza con "-" es el nombre del parámetro predeterminado de ffprobe, y la cadena en forma de ${value} es el valor del parámetro que el usuario debe especificar.
ffprobe información de autodescripción
-L 显示许可协议
-h ${topic} 显示帮助
-? ${topic} 显示帮助
-help ${topic} 显示帮助
--help ${topic} 显示帮助
-version 显示版本
-buildconf 显示构建配置
-formats 显示可用的格式
-muxers 显示可用的复用器
-demuxers 显示可用的解复用器
-devices 显示可用的音视频输入输出设备
-codecs 显示可用的编解码器
-decoders 显示可用的解码器
-encoders 显示可用的编码器
-bsfs 显示可用的比特流滤镜
-protocols 显示可用的协议
-filters 显示可用的滤镜
-pix_fmts 显示可用的像素格式
-layouts 显示标准的音频输出声道布局
-sample_fmts 显示可用的音频采样格式
-dispositions 显示可用于控制媒体文件行为的标志
-colors 显示可用的颜色编码标准名称
registros e informes de ffprobe
-loglevel loglevel 设置日志级别
-v loglevel 设置日志级别
-report 生成一个名为ffprobe-${date}-${time}.log的报告文件。
opciones principales de ffprobe
-show_frames muestra información del marco
-show_frames es un parámetro de comando de uso común que se utiliza para mostrar información detallada sobre cada cuadro de video o audio del archivo multimedia de entrada, incluido el tipo de cuadro, marca de tiempo, duración, ancho, alto, identificación del codificador y muchos otros datos. A continuación se muestra un ejemplo que utiliza el comando ffprobe -show_frames:
ffprobe -i input.mp4 -show_frames
检查MP4文件中是否包含B帧
ffprobe -i input.mp4 -show_frames | grep "pict_type=B"
-show_data show packets data
-show_data_hash show packets data hash
-show_error show probing error
-show_format show format/container info
-show_entries entry_list show a set of specified entries
-show_log show log
-show_packets show packets info
-show_programs show programs info
-show_streams 显示流信息
-show_chapters show chapters info
-count_frames count the number of frames per stream
-count_packets count the number of packets per stream
-show_program_version show ffprobe version
-show_library_versions show library versions
-show_versions show program and library versions
-show_pixel_formats show pixel format descriptions
-show_optional_fields show optional fields
-show_private_data show private data
-private same as show_private_data
opciones avanzadas de ffprobe
-read_intervals ${read_intervals} especifica el intervalo de tiempo que se leerá
El parámetro -read_intervals se puede utilizar para especificar el intervalo de tiempo que se leerá.
Este parámetro acepta una lista de intervalos de tiempo, cada intervalo de tiempo consta de dos marcas de tiempo separadas por comas. Por ejemplo, -read_intervals 0:10,20:30 significa que es necesario leer el contenido del segundo al décimo segundo y del segundo al vigésimo segundo al 30 segundo del archivo.
El uso del parámetro -read_intervals puede reducir efectivamente el tiempo y el consumo de recursos de ffprobe al leer archivos multimedia y evitar análisis innecesarios. Es especialmente útil para archivos multimedia de gran tamaño, ya que mejora la velocidad y la eficiencia del procesamiento.
-select_streams ${stream_specifier} selecciona la secuencia especificada
Este parámetro puede aceptar múltiples opciones de parámetros, por ejemplo:
- Opción v: seleccionar transmisión de video
- Opción a: seleccionar transmisión de audio
- Opciones: seleccionar secuencia de subtítulos
Por ejemplo, use el siguiente comando para seleccionar todas las transmisiones de video y audio en un archivo MP4:
ffprobe -i entrada.mp4 -select_streams v:a
Seleccione la primera transmisión de video y la segunda transmisión de audio
ffprobe -i input.mp4 -select_streams v:0,a:1
-max_alloc ${bytes} 设置单个内存分配块的最大尺寸
-cpuflags ${flags} 强制特定的CPU标志(用逗号分隔的特性,如:mmx,sse,avx)
-cpucount ${count} 强制指定使用的CPU逻辑核心个数
-hide_banner 不显示程序广告
-sources device list sources of the input device
-sinks device list sinks of the output device
-f format 强制指定文件格式,不根据文件扩展名猜测。
-unit show unit of the displayed values
-prefix use SI prefixes for the displayed values
-byte_binary_prefix use binary prefixes for byte units
-sexagesimal use sexagesimal format HOURS:MM:SS.MICROSECONDS for time units
-pretty prettify the format of displayed values, make it more human readable
-print_format format set the output printing format (available formats are: default, compact, csv, flat, ini, json, xml)
-of format alias for -print_format
-sections 打印节区结构和节区信息,然后退出
-bitexact force bitexact output
-i ${input_file} 读取指定文件
-o ${output_file} 写入到指定文件
-print_filename ${print_file} 重载打印的输入文件名
-find_stream_info 读取并解码流以用启发式方法填充缺失的信息