⚠️ Este es un sitio de traducción no oficial, sin relación con el proyecto FFmpeg. Para información autorizada, consulte la página original (https://ffmpeg.org/ffprobe.html).

Documentación de ffprobe

1 Sinopsis

ffprobe [options] input_url

2 Descripción

ffprobe recopila información de flujos multimedia y la muestra de forma legible tanto por personas como por máquinas.

Por ejemplo, puede usarse para comprobar el formato del container empleado por un flujo multimedia, así como el formato y el tipo de cada flujo que contiene.

Si se especifica una url de entrada, ffprobe intentará abrirla y analizar su contenido. Si la url no puede abrirse o no se reconoce como un archivo multimedia, se devuelve un código de salida positivo.

Si no se especifica ninguna salida con -o, ffprobe escribirá en stdout.

ffprobe puede emplearse tanto como aplicación independiente como en combinación con un filtro de texto capaz de realizar un procesamiento más sofisticado, por ejemplo estadístico o de generación de gráficas.

Las opciones sirven para listar algunos de los formatos admitidos por ffprobe, para indicar qué información mostrar y para configurar cómo la mostrará ffprobe.

La salida de ffprobe está diseñada para que un filtro de texto pueda analizarla fácilmente, y consta de una o más secciones con el formato que define el writer seleccionado, indicado mediante la opción output_format.

Las secciones pueden contener otras secciones anidadas y se identifican mediante un nombre (que puede compartirse con otras secciones) y un nombre único. Véase la salida de sections.

Las etiquetas de metadatos almacenadas en el container o en los flujos se reconocen y se muestran en la sección "FORMAT", "STREAM", "STREAM_GROUP_STREAM" o "PROGRAM_STREAM" correspondiente.

3 Opciones

Salvo que se indique lo contrario, todas las opciones numéricas aceptan como entrada una cadena que representa un número, que puede ir seguida de uno de los prefijos de unidad SI, por ejemplo: ’K’, ’M’ o ’G’.

Si se añade ’i’ al prefijo de unidad SI, el prefijo completo se interpreta como un prefijo para múltiplos binarios, basados en potencias de 1024 en lugar de potencias de 1000. Añadir ’B’ al prefijo de unidad SI multiplica el valor por 8. Esto permite usar, por ejemplo, ’KB’, ’MiB’, ’G’ y ’B’ como sufijos numéricos.

Las opciones que no toman argumentos son opciones booleanas y establecen el valor correspondiente en true. Pueden ponerse en false anteponiendo "no" al nombre de la opción. Por ejemplo, usar "-nofoo" pondrá en false la opción booleana llamada "foo".

Las opciones que toman argumentos admiten una sintaxis especial en la que el argumento indicado en la línea de comandos se interpreta como la ruta al archivo desde el que se carga el valor real. Para usar esta funcionalidad, añada una barra ’/’ justo antes del nombre de la opción (después del guion inicial). Por ejemplo:

ffmpeg -i INPUT -/filter:v filter.script OUTPUT

Esto carga una descripción de filtergraph desde el archivo filter.script.

3.1 Especificadores de flujo

Algunas opciones se aplican por flujo, por ejemplo la tasa de bits o el codec. Los especificadores de flujo sirven para indicar con precisión a qué flujo o flujos pertenece una opción determinada.

Un especificador de flujo es una cadena que normalmente se añade al nombre de la opción y se separa de este con dos puntos. Por ejemplo, -codec:a:1 ac3 contiene el especificador de flujo a:1, que coincide con el segundo flujo de audio. Por lo tanto, seleccionaría el codec ac3 para el segundo flujo de audio.

Un especificador de flujo puede coincidir con varios flujos, de modo que la opción se aplica a todos ellos. Por ejemplo, el especificador de flujo en -b:a 128k coincide con todos los flujos de audio.

Un especificador de flujo vacío coincide con todos los flujos. Por ejemplo, -codec copy o -codec: copy copiarían todos los flujos sin recodificarlos.

Las formas posibles de los especificadores de flujo son las siguientes:

stream_index

Coincide con el flujo que tiene ese índice. Por ejemplo, -threads:1 4 establecería en 4 el número de hilos del segundo flujo. Si stream_index se usa como especificador de flujo adicional (véase más abajo), selecciona el flujo número stream_index de entre los flujos coincidentes. La numeración de los flujos se basa en el orden en que libavformat los detecta, salvo que también se especifique un especificador de grupo de flujos o un ID de programa, en cuyo caso se basa en el orden de los flujos dentro del grupo o del programa.

stream_type[:additional_stream_specifier]

stream_type es uno de los siguientes: ’v’ o ’V’ para vídeo, ’a’ para audio, ’s’ para subtítulos, ’d’ para datos y ’t’ para adjuntos. ’v’ coincide con todos los flujos de vídeo, mientras que ’V’ solo coincide con los flujos de vídeo que no son imágenes adjuntas, miniaturas de vídeo o carátulas. Si se usa additional_stream_specifier, coincide con los flujos que tienen este tipo y además coinciden con additional_stream_specifier. En caso contrario, coincide con todos los flujos del tipo indicado.

g:group_specifier[:additional_stream_specifier]

Coincide con los flujos que pertenecen al grupo indicado por group_specifier. Si se usa additional_stream_specifier, coincide con los flujos que forman parte del grupo y además coinciden con additional_stream_specifier. group_specifier puede ser uno de los siguientes:

group_index

Coincide con el flujo que tiene este índice de grupo.

#group_id o i:group_id

Coincide con el flujo que tiene este id de grupo.

p:program_id[:additional_stream_specifier]

Coincide con los flujos que pertenecen al programa con id program_id. Si se usa additional_stream_specifier, coincide con los flujos que forman parte del programa y además coinciden con additional_stream_specifier.

#stream_id o i:stream_id

Coincide con el flujo por su id de flujo (por ejemplo, el PID en un container MPEG-TS).

m:key[:value]

Coincide con los flujos cuya etiqueta de metadatos key tiene el valor indicado. Si no se da value, coincide con los flujos que contienen esa etiqueta con cualquier valor. El carácter de dos puntos ’:’ en key o value debe escaparse con una barra invertida.

disp:dispositions[:additional_stream_specifier]

Coincide con los flujos que tienen la disposición o disposiciones indicadas. dispositions es una lista de una o más disposiciones (tal como las muestra la opción -dispositions) unidas con ’+’.

u

Coincide con los flujos que tienen una configuración utilizable: el codec debe estar definido y debe estar presente la información esencial, como las dimensiones del vídeo o la frecuencia de muestreo del audio.

Tenga en cuenta que en ffmpeg la coincidencia por metadatos solo funciona correctamente para los archivos de entrada.

3.2 Opciones genéricas

Estas opciones son comunes a todas las herramientas ff*.

-L, -license

Muestra la licencia.

-h, -?, -help, --help [arg]

Muestra la ayuda. Se puede especificar un parámetro opcional para mostrar ayuda sobre un elemento concreto. Si no se especifica ningún argumento, solo se muestran las opciones básicas (no las avanzadas) de la herramienta.

Los valores posibles de arg son:

long

Muestra las opciones avanzadas de la herramienta además de las opciones básicas.

full

Muestra la lista completa de opciones, incluidas las opciones compartidas y privadas de encoders, decoders, demuxers, muxers, filtros, etc.

decoder=decoder_name

Muestra información detallada sobre el decoder llamado decoder_name. Use la opción -decoders para obtener la lista de todos los decoders.

encoder=encoder_name

Muestra información detallada sobre el encoder llamado encoder_name. Use la opción -encoders para obtener la lista de todos los encoders.

demuxer=demuxer_name

Muestra información detallada sobre el demuxer llamado demuxer_name. Use la opción -formats para obtener la lista de todos los demuxers y muxers.

muxer=muxer_name

Muestra información detallada sobre el muxer llamado muxer_name. Use la opción -formats para obtener la lista de todos los muxers y demuxers.

filter=filter_name

Muestra información detallada sobre el filtro llamado filter_name. Use la opción -filters para obtener la lista de todos los filtros.

bsf=bitstream_filter_name

Muestra información detallada sobre el filtro de bitstream llamado bitstream_filter_name. Use la opción -bsfs para obtener la lista de todos los filtros de bitstream.

protocol=protocol_name

Muestra información detallada sobre el protocolo llamado protocol_name. Use la opción -protocols para obtener la lista de todos los protocolos.

-version

Muestra la versión.

-buildconf

Muestra la configuración de compilación, una opción por línea.

-formats

Muestra los formatos disponibles (incluidos los dispositivos).

-demuxers

Muestra los demuxers disponibles.

-muxers

Muestra los muxers disponibles.

-devices

Muestra los dispositivos disponibles.

-codecs

Muestra todos los codecs que conoce libavcodec.

Tenga en cuenta que, a lo largo de esta documentación, el término ’codec’ se usa como abreviatura de lo que correctamente se denominaría un formato de bitstream multimedia.

-decoders

Muestra los decoders disponibles.

-encoders

Muestra todos los encoders disponibles.

-bsfs

Muestra los filtros de bitstream disponibles.

-protocols

Muestra los protocolos disponibles.

-filters

Muestra los filtros de libavfilter disponibles.

-pix_fmts

Muestra los pixel format disponibles.

-sample_fmts

Muestra los sample format disponibles.

-layouts

Muestra los nombres de canal y las disposiciones de canales estándar.

-dispositions

Muestra las disposiciones de flujo.

-colors

Muestra los nombres de color reconocidos.

-sources device[,opt1=val1[,opt2=val2]...]

Muestra las fuentes detectadas automáticamente del dispositivo de entrada. Algunos dispositivos pueden ofrecer nombres de fuente dependientes del sistema que no se pueden detectar automáticamente. No debe darse por hecho que la lista devuelta esté siempre completa.

ffmpeg -sources pulse,server=192.168.0.4

-sinks device[,opt1=val1[,opt2=val2]...]

Muestra los destinos detectados automáticamente del dispositivo de salida. Algunos dispositivos pueden ofrecer nombres de destino dependientes del sistema que no se pueden detectar automáticamente. No debe darse por hecho que la lista devuelta esté siempre completa.

ffmpeg -sinks pulse,server=192.168.0.4

-loglevel [flags+]loglevel | -v [flags+]loglevel

Establece el nivel de registro y los flags que usa la biblioteca.

El prefijo opcional flags puede estar formado por los siguientes valores:

‘repeat’

Indica que la salida de registro repetida no debe comprimirse en la primera línea y que se omitirá la línea "Last message repeated n times" (mensaje repetido n veces).

‘level’

Indica que la salida de registro debe añadir el prefijo [level] a cada línea de mensaje. Puede usarse como alternativa al coloreado del registro, por ejemplo al volcarlo a un archivo.

‘time’

Indica que las líneas de registro deben llevar como prefijo la información de la hora.

‘datetime’

Indica que las líneas de registro deben llevar como prefijo la información de fecha y hora.

Los flags también pueden usarse solos añadiendo el prefijo ’+’/’-’ para activar o desactivar un único flag sin afectar a los demás ni cambiar loglevel. Al establecer tanto flags como loglevel, se espera un separador ’+’ entre el último valor de flags y loglevel.

loglevel es una cadena o un número que contiene uno de los siguientes valores:

‘quiet, -8’

No muestra nada en absoluto; permanece en silencio.

‘panic, 0’

Muestra únicamente los errores fatales que podrían provocar la caída del proceso, como un fallo de aserción. Actualmente no se usa para nada.

‘fatal, 8’

Muestra únicamente errores fatales, es decir, aquellos tras los que el proceso no puede continuar en absoluto.

‘error, 16’

Muestra todos los errores, incluidos aquellos de los que se puede recuperar.

‘warning, 24’

Muestra todas las advertencias y errores. Se mostrará cualquier mensaje relacionado con eventos posiblemente incorrectos o inesperados.

‘info, 32’

Muestra mensajes informativos durante el procesamiento, además de las advertencias y los errores. Este es el valor predeterminado.

‘verbose, 40’

Igual que info, pero más detallado.

‘debug, 48’

Muestra todo, incluida la información de depuración.

‘trace, 56’

Por ejemplo, para habilitar la salida de registro repetida, añadir el prefijo level y establecer loglevel en verbose:

ffmpeg -loglevel repeat+level+verbose -i input output

Otro ejemplo que habilita la salida de registro repetida sin afectar al estado actual del flag de prefijo level ni de loglevel:

ffmpeg [...] -loglevel +repeat

De forma predeterminada, el programa registra en stderr. Si el terminal admite color, se usan colores para marcar errores y advertencias. El coloreado del registro puede desactivarse con la variable de entorno AV_LOG_FORCE_NOCOLOR, o forzarse con la variable de entorno AV_LOG_FORCE_COLOR.

-report

Vuelca la línea de comandos completa y la salida de registro a un archivo llamado program-YYYYMMDD-HHMMSS.log en el directorio actual. Este archivo puede ser útil para informes de errores. Además implica -loglevel debug.

Establecer la variable de entorno FFREPORT con cualquier valor tiene el mismo efecto. Si el valor es una secuencia de pares key=value separados por ’:’, estas opciones afectarán al informe; los valores de las opciones deben escaparse si contienen caracteres especiales o el delimitador de opciones ’:’ (véase la sección "Quoting and escaping" del manual ffmpeg-utils).

Se reconocen las siguientes opciones:

file

establece el nombre de archivo que se usará para el informe; %p se expande al nombre del programa, %t se expande a una marca de tiempo y %% se expande a un % literal

level

establece el nivel de detalle del registro mediante un valor numérico (véase -loglevel).

Por ejemplo, para escribir un informe en un archivo llamado ffreport.log usando el nivel de registro 32 (alias del nivel info):

FFREPORT=file=ffreport.log:level=32 ffmpeg -i input output

Los errores al analizar la variable de entorno no son fatales y no aparecerán en el informe.

-hide_banner

Suprime la impresión del banner.

Todas las herramientas de FFmpeg normalmente muestran un aviso de copyright, las opciones de compilación y las versiones de las bibliotecas. Esta opción puede usarse para suprimir la impresión de esta información.

-cpuflags flags (global)

Permite activar y desactivar flags de cpu. Esta opción está pensada para pruebas. No la use a menos que sepa lo que está haciendo.

ffmpeg -cpuflags -sse+mmx ...
ffmpeg -cpuflags mmx ...
ffmpeg -cpuflags 0 ...

Los flags posibles para esta opción son:

‘x86’

‘mmx’ ‘mmxext’ ‘sse’ ‘sse2’ ‘sse2slow’ ‘sse3’ ‘sse3slow’ ‘ssse3’ ‘atom’ ‘sse4.1’ ‘sse4.2’ ‘avx’ ‘avx2’ ‘xop’ ‘fma3’ ‘fma4’ ‘3dnow’ ‘3dnowext’ ‘bmi1’ ‘bmi2’ ‘cmov’ ‘ARM’

‘armv5te’ ‘armv6’ ‘armv6t2’ ‘vfp’ ‘vfpv3’ ‘neon’ ‘setend’ ‘AArch64’

‘armv8’ ‘vfp’ ‘neon’ ‘PowerPC’

‘altivec’ ‘Specific Processors’

‘pentium2’ ‘pentium3’ ‘pentium4’ ‘k6’ ‘k62’ ‘athlon’ ‘athlonxp’ ‘k8’ -cpucount count (global)

Anula la detección del número de CPU. Esta opción está pensada para pruebas. No la use a menos que sepa lo que está haciendo.

ffmpeg -cpucount 2

-max_alloc bytes

Establece el límite máximo de tamaño para asignar un bloque en el heap mediante la familia de funciones malloc de ffmpeg. Extreme la precaución al usar esta opción. No la use si no comprende plenamente las consecuencias de hacerlo. El valor predeterminado es INT_MAX.

3.3 AVOptions

Estas opciones las proporcionan directamente las bibliotecas libavformat, libavdevice y libavcodec. Para ver la lista de AVOptions disponibles, use la opción -help. Se dividen en dos categorías:

generic

Estas opciones pueden establecerse para cualquier container, codec o dispositivo. Las opciones genéricas se listan en AVFormatContext options para containers/dispositivos y en AVCodecContext options para codecs.

private

Estas opciones son específicas del container, dispositivo o codec en cuestión. Las opciones privadas se listan bajo su container/dispositivo/codec correspondiente.

Por ejemplo, para escribir una cabecera ID3v2.3 en lugar de la ID3v2.4 predeterminada en un archivo MP3, use la opción privada id3v2_version del muxer MP3:

ffmpeg -i input.flac -id3v2_version 3 out.mp3

Todas las AVOptions de codec se aplican por flujo, por lo que debe adjuntárseles un especificador de flujo:

ffmpeg -i multichannel.mxf -map 0:v:0 -map 0:a:0 -map 0:a:0 -c:a:0 ac3 -b:a:0 640k -ac:a:1 2 -c:a:1 aac -b:2 128k out.mp4

En el ejemplo anterior, un flujo de audio multicanal se mapea dos veces para la salida. La primera instancia se codifica con el codec ac3 y una tasa de bits de 640k. La segunda instancia se reduce a 2 canales y se codifica con el codec aac, para la que se especifica una tasa de bits de 128k usando el índice absoluto del flujo de salida.

Nota: la sintaxis -nooption no puede usarse con AVOptions booleanas; use -option 0/-option 1.

Nota: la antigua forma no documentada de especificar AVOptions por flujo anteponiendo v/a/s al nombre de la opción ya está obsoleta y se eliminará próximamente.

3.4 Opciones principales

-f format

Fuerza el formato que se debe usar.

-unit

Muestra la unidad de los valores mostrados.

-prefix

Usa prefijos SI para los valores mostrados. A menos que se use la opción "-byte_binary_prefix", todos los prefijos son decimales.

-byte_binary_prefix

Fuerza el uso de prefijos binarios para los valores en bytes.

-sexagesimal

Usa el formato sexagesimal HH:MM:SS.MICROSECONDS para los valores de tiempo.

-pretty

Embellece el formato de los valores mostrados; equivale a las opciones "-unit -prefix -byte_binary_prefix -sexagesimal".

-output_format, -of, -print_format writer_name[=writer_options]

Establece el formato de impresión de la salida.

writer_name indica el nombre del writer, y writer_options indica las opciones que se pasarán al writer.

Por ejemplo, para imprimir la salida en formato JSON, especifique:

-output_format json

Para más detalles sobre los formatos de impresión de salida disponibles, véase la sección Writers más abajo.

-sections

Muestra la estructura de las secciones y su información, y termina. La salida no está pensada para ser analizada por una máquina.

-select_streams stream_specifier

Selecciona solo los flujos indicados por stream_specifier. Esta opción solo afecta a las opciones relacionadas con flujos (por ejemplo, show_streams, show_packets, etc.).

Por ejemplo, para mostrar solo los flujos de audio, puede usar el comando:

ffprobe -show_streams -select_streams a INPUT

Para mostrar solo los paquetes de vídeo que pertenecen al flujo de vídeo con índice 1:

ffprobe -show_packets -select_streams v:1 INPUT

-show_data

Muestra los datos de la carga útil como un volcado hexadecimal y ASCII (pueden seleccionarse otros formatos con -data_dump_format). Combinada con -show_packets, vuelca los datos de los paquetes. Combinada con -show_streams, vuelca el extradata del codec.

El volcado se muestra en el campo "data" y puede contener saltos de línea.

-show_data_hash algorithm

Muestra un hash de los datos de la carga útil: de los paquetes con -show_packets y del extradata del codec con -show_streams.

-data_dump_format format

Selecciona el formato que se usa para los volcados de datos habilitados con la opción -show_data. El predeterminado es xxd, un formato de hexdump compatible con el conocido programa xxd. También se admite base64.

-show_error

Muestra información sobre el error encontrado al intentar analizar la entrada.

La información del error se muestra dentro de una sección llamada "ERROR".

-show_format

Muestra información sobre el formato de container del flujo multimedia de entrada.

Toda la información del formato de container se muestra dentro de una sección llamada "FORMAT".

-show_entries section_entries

Establece la lista de entradas que se mostrarán.

Las entradas se especifican según la siguiente sintaxis. section_entries contiene una lista de entradas de sección separadas por :. Cada entrada de sección se compone de un nombre de sección (o nombre único), seguido opcionalmente de una lista de entradas locales a esa sección, separadas por ,.

Si se indica el nombre de sección pero no le sigue ningún =, se muestran todas las entradas, junto con todas las secciones que contiene. En caso contrario, solo se muestran las entradas indicadas en la lista de entradas locales de la sección. En particular, si se indica = pero la lista de entradas locales está vacía, no se mostrará ninguna entrada para esa sección.

Tenga en cuenta que el orden en que se especifican las entradas locales de la sección no se respeta en la salida, y se conserva el orden de presentación habitual.

La sintaxis formal es la siguiente:

LOCAL_SECTION_ENTRIES ::= SECTION_ENTRY_NAME[,LOCAL_SECTION_ENTRIES]
SECTION_ENTRY         ::= SECTION_NAME[=[LOCAL_SECTION_ENTRIES]]
SECTION_ENTRIES       ::= SECTION_ENTRY[:SECTION_ENTRIES]

Por ejemplo, para mostrar solo el índice y el tipo de cada flujo, y el tiempo de PTS, el tiempo de duración y el índice de flujo de los paquetes, puede especificar el argumento:

packet=pts_time,duration_time,stream_index : stream=index,codec_type

Para mostrar todas las entradas de la sección "format", pero solo el tipo de codec en la sección "stream", especifique el argumento:

format : stream=codec_type

Para mostrar todas las etiquetas de las secciones stream y format:

stream_tags : format_tags

Para mostrar solo la etiqueta title (si está disponible) en las secciones stream:

stream_tags=title

-show_packets

Muestra información sobre cada paquete contenido en el flujo multimedia de entrada.

La información de cada paquete se muestra dentro de una sección dedicada llamada "PACKET".

-show_frames

Muestra información sobre cada fotograma y subtítulo contenido en el flujo multimedia de entrada.

La información de cada fotograma se muestra dentro de una sección dedicada llamada "FRAME" o "SUBTITLE".

-show_log loglevel

Muestra la información de registro que proporciona el decoder sobre cada fotograma, según el valor establecido en loglevel (véase -loglevel). Esta opción requiere -show_frames.

La información de cada mensaje de registro se muestra dentro de una sección dedicada llamada "LOG".

-show_streams

Muestra información sobre cada flujo multimedia contenido en el flujo multimedia de entrada.

La información de cada flujo multimedia se muestra dentro de una sección dedicada llamada "STREAM".

-show_programs

Muestra información sobre los programas y sus flujos contenidos en el flujo multimedia de entrada.

La información de cada flujo multimedia se muestra dentro de una sección dedicada llamada "PROGRAM_STREAM".

-show_stream_groups

Muestra información sobre los grupos de flujos y sus flujos contenidos en el flujo multimedia de entrada.

La información de cada flujo multimedia se muestra dentro de una sección dedicada llamada "STREAM_GROUP_STREAM".

-show_chapters

Muestra información sobre los capítulos almacenados en el formato.

Cada capítulo se muestra dentro de una sección dedicada llamada "CHAPTER".

-count_frames

Cuenta el número de fotogramas por flujo y lo indica en la sección de flujo correspondiente.

-count_packets

Cuenta el número de paquetes por flujo y lo indica en la sección de flujo correspondiente.

-read_intervals read_intervals

Lee únicamente los intervalos indicados. read_intervals debe ser una secuencia de especificaciones de intervalo separadas por ",". ffprobe buscará el punto de inicio del intervalo y continuará leyendo desde ahí.

Cada intervalo se especifica mediante dos partes opcionales, separadas por "%".

La primera parte indica la posición de inicio del intervalo. Se interpreta como una posición absoluta, o como un desplazamiento relativo a la posición actual si va precedida del carácter "+". Si no se especifica esta primera parte, no se realizará ninguna búsqueda al leer este intervalo.

La segunda parte indica la posición final del intervalo. Se interpreta como una posición absoluta, o como un desplazamiento relativo a la posición actual si va precedida del carácter "+". Si la especificación del desplazamiento empieza por "#", se interpreta como el número de paquetes que se deben leer (sin contar los paquetes de vaciado) desde el inicio del intervalo. Si no se especifica esta segunda parte, el programa leerá hasta el final de la entrada.

Tenga en cuenta que la búsqueda no es exacta, por lo que el punto de inicio real del intervalo puede diferir de la posición especificada. Además, cuando se especifica una duración de intervalo, el tiempo final absoluto se calcula sumando la duración al punto de inicio del intervalo hallado al buscar en el archivo, en lugar de al valor de inicio especificado.

La sintaxis formal es la siguiente:

INTERVAL  ::= [START|+START_OFFSET][%[END|+END_OFFSET]]
INTERVALS ::= INTERVAL[,INTERVALS]

A continuación se muestran algunos ejemplos.

  • Buscar hasta el tiempo 10, leer paquetes hasta 20 segundos después del punto de búsqueda encontrado, luego buscar hasta la posición 01:30 (1 minuto y treinta segundos) y leer paquetes hasta la posición 01:45.

    10%+20,01:30%01:45
    
  • Leer solo 42 paquetes después de buscar hasta la posición 01:23:

    01:23%+#42
    
  • Leer solo los primeros 20 segundos desde el inicio:

    %+20
    
  • Leer desde el inicio hasta la posición 02:30:

    %02:30
    

-show_private_data, -private

Muestra los datos privados, es decir, los datos que dependen del formato del elemento concreto mostrado. Esta opción está habilitada de forma predeterminada, pero puede que necesite deshabilitarla para usos específicos, por ejemplo al generar una salida XML conforme a un XSD.

-show_program_version

Muestra información relativa a la versión del programa.

La información de versión se muestra dentro de una sección llamada "PROGRAM_VERSION".

-show_library_versions

Muestra información relativa a las versiones de las bibliotecas.

La información de versión de cada biblioteca se muestra dentro de una sección llamada "LIBRARY_VERSION".

-show_versions

Muestra información relativa a las versiones del programa y de las bibliotecas. Equivale a establecer a la vez las opciones -show_program_version y -show_library_versions.

-show_pixel_formats

Muestra información sobre todos los pixel format que admite FFmpeg.

La información de pixel format de cada formato se muestra dentro de una sección llamada "PIXEL_FORMAT".

-show_optional_fields value

Algunos writers, como JSON y XML, omiten la impresión de los campos con valores no válidos o no aplicables, mientras que otros writers siempre los imprimen. Esta opción permite controlar ese comportamiento. Los valores válidos son always/1, never/0 y auto/-1. El predeterminado es auto.

-analyze_frames

Analiza los fotogramas y/o sus datos adicionales hasta el intervalo de lectura indicado, y proporciona información adicional que puede resultar útil a nivel de flujo. Debe combinarse con la opción -show_streams o no tendrá ningún efecto.

Actualmente, los campos adicionales que proporciona esta opción al habilitarla son closed_captions y film_grain.

Por ejemplo, para analizar los primeros 20 segundos y rellenar estos campos:

ffprobe -show_streams -analyze_frames -read_intervals "%+20" INPUT

-bitexact

Fuerza una salida bitexact, útil para producir una salida que no dependa de la compilación concreta.

-i input_url

Lee input_url.

-o output_url

Escribe la salida en output_url. Si no se especifica, la salida se envía a stdout.

-c:media_specifier codec_name -codec:media_specifier codec_name

Fuerza una implementación de decoder específica para el flujo identificado por media_specifier, que puede tomar los valores a (audio), v (vídeo), s (subtítulo) y d (datos).

4 Writers

Un writer define el formato de salida que adopta ffprobe, y se usa para imprimir todas las partes de la salida.

Un writer puede aceptar uno o más argumentos, que indican las opciones que se adoptarán. Las opciones se especifican como una lista de pares key=value, separados por ":".

Todos los writers admiten las siguientes opciones:

string_validation, sv

Establece el modo de validación de cadenas.

Se aceptan los siguientes valores.

‘fail’

El writer fallará de inmediato si encuentra en la entrada una secuencia de cadena (UTF-8) o un punto de código no válidos. Resulta especialmente útil para validar los metadatos de entrada.

‘ignore’

Se ignorará cualquier error de validación. Esto puede dar lugar a una salida corrupta, especialmente con el writer json o xml.

‘replace’

El writer sustituirá las secuencias o puntos de código UTF-8 no válidos por la cadena indicada en string_validation_replacement.

El valor predeterminado es ‘replace’.

string_validation_replacement, svr

Establece la cadena de reemplazo que se usará cuando string_validation esté establecido en ‘replace’.

Si no se especifica la opción, el writer asumirá la cadena vacía, es decir, eliminará las secuencias no válidas de las cadenas de entrada.

A continuación se describen los writers actualmente disponibles.

4.1 default

Formato predeterminado.

Imprime cada sección con la forma:

[SECTION]
key1=val1
...
keyN=valN
[/SECTION]

Las etiquetas de metadatos se imprimen como una línea en la sección FORMAT, STREAM, STREAM_GROUP_STREAM o PROGRAM_STREAM correspondiente, y llevan como prefijo la cadena "TAG:".

A continuación se describen las opciones aceptadas.

nokey, nk

Si se establece en 1, indica que no se imprima la key de cada campo. El valor predeterminado es 0.

noprint_wrappers, nw

Si se establece en 1, indica que no se impriman la cabecera ni el pie de la sección. El valor predeterminado es 0.

4.2 compact, csv

Formato compact y CSV.

El writer csv es equivalente a compact, pero admite valores predeterminados distintos.

Cada sección se imprime en una sola línea. Si no se especifica ninguna opción, la salida tiene la forma:

section|key1=val1| ... |keyN=valN

Las etiquetas de metadatos se imprimen en la sección "format" o "stream" correspondiente. La key de una etiqueta de metadatos, si se imprime, lleva como prefijo la cadena "tag:".

A continuación se describen las opciones aceptadas.

item_sep, s

Indica el carácter que se usará para separar los campos en la línea de salida. Debe ser un único carácter imprimible; de forma predeterminada es "|" ("," para el writer csv).

nokey, nk

Si se establece en 1, indica que no se imprima la key de cada campo. Su valor predeterminado es 0 (1 para el writer csv).

escape, e

Establece el modo de escape que se usará; el predeterminado es "c" ("csv" para el writer csv).

Puede tomar uno de los siguientes valores:

c

Realiza un escape al estilo de C. Las cadenas que contienen un salto de línea (‘\n’), un retorno de carro (‘\r’), un tabulador (‘\t’), un salto de página (‘\f’), el carácter de escape (‘\’) o el carácter separador de elementos SEP se escapan al estilo de C, de modo que un salto de línea se convierte en la secuencia ‘\n’, un retorno de carro en ‘\r’, ‘\’ en ‘\\’ y el separador SEP se convierte en ‘\SEP’.

csv

Realiza un escape al estilo CSV, tal como describe la RFC4180. Las cadenas que contienen un salto de línea (‘\n’), un retorno de carro (‘\r’), una comilla doble (‘"’) o SEP se encierran entre comillas dobles.

none

No realiza ningún escape.

print_section, p

Imprime el nombre de la sección al principio de cada línea si el valor es 1; desactívelo con el valor 0. El valor predeterminado es 1.

4.3 flat

Formato flat.

Una salida de formato libre en la que cada línea contiene un key=value explícito, como "streams.stream.3.tags.foo=bar". La salida está escapada para shell, por lo que puede incrustarse directamente en scripts de sh siempre que el carácter separador sea alfanumérico o un guion bajo (véase la opción sep_char).

A continuación se describen las opciones aceptadas.

sep_char, s

Carácter separador que se usa para separar el capítulo, el nombre de la sección, los IDs y las posibles etiquetas en la key del campo impreso.

El valor predeterminado es ‘.’.

hierarchical, h

Indica si la especificación del nombre de sección debe ser jerárquica. Si se establece en 1, y si hay más de una sección en el capítulo actual, el nombre de la sección llevará como prefijo el nombre del capítulo. Un valor de 0 desactiva este comportamiento.

El valor predeterminado es 1.

4.4 ini

Salida en formato INI.

Imprime la salida en un formato basado en INI.

Se adoptan las siguientes convenciones:

  • todas las key y los valores son UTF-8
  • ‘.’ es el separador de subgrupo
  • el salto de línea, ‘\t’, ‘\f’, ‘\b’ y los siguientes caracteres se escapan
  • ‘\’ es el carácter de escape
  • ‘#’ es el indicador de comentario
  • ‘=’ es el separador de key/value
  • ‘:’ no se usa, pero normalmente se analiza como separador de key/value

Este writer acepta las opciones como una lista de pares key=value, separados por ‘:’.

A continuación se describen las opciones aceptadas.

hierarchical, h

Indica si la especificación del nombre de sección debe ser jerárquica. Si se establece en 1, y si hay más de una sección en el capítulo actual, el nombre de la sección llevará como prefijo el nombre del capítulo. Un valor de 0 desactiva este comportamiento.

El valor predeterminado es 1.

4.5 json

Formato basado en JSON.

Cada sección se imprime usando notación JSON.

A continuación se describen las opciones aceptadas.

compact, c

Si se establece en 1, habilita la salida compacta, es decir, cada sección se imprimirá en una sola línea. El valor predeterminado es 0.

Para más información sobre JSON, véase http://www.json.org/.

4.6 xml

Formato basado en XML.

La salida XML se describe en el archivo de esquema XML ffprobe.xsd instalado en el datadir de FFmpeg.

Puede obtenerse una versión actualizada del esquema en la url http://www.ffmpeg.org/schema/ffprobe.xsd, que redirige al esquema más reciente incorporado al árbol de código fuente de desarrollo de FFmpeg.

Tenga en cuenta que la salida generada solo será conforme al esquema ffprobe.xsd cuando no se especifique ninguna opción global especial de salida (unit, prefix, byte_binary_prefix, sexagesimal, etc.).

A continuación se describen las opciones aceptadas.

fully_qualified, q

Si se establece en 1, indica que la salida debe estar completamente cualificada. El valor predeterminado es 0. Esto es necesario para generar un archivo XML que se pueda validar mediante un archivo XSD.

xsd_strict, x

Si se establece en 1, realiza más comprobaciones para garantizar que la salida es conforme al XSD. El valor predeterminado es 0. Esta opción establece automáticamente fully_qualified en 1.

Para más información sobre el formato XML, véase https://www.w3.org/XML/.

5 Timecode

ffprobe admite la extracción de Timecode:

  • El timecode MPEG1/2 se extrae del GOP y está disponible en los detalles del flujo de vídeo (-show_streams, véase timecode).
  • El timecode MOV se extrae de la pista tmcd, por lo que está disponible en los metadatos del flujo tmcd (-show_streams, véase TAG:timecode).
  • Los timecodes DV, GXF y AVI están disponibles en los metadatos del formato (-show_format, véase TAG:timecode).

6 Véase también

ffprobe-all, ffmpeg, ffplay, ffmpeg-utils, ffmpeg-scaler, ffmpeg-resampler, ffmpeg-codecs, ffmpeg-bitstream-filters, ffmpeg-formats, ffmpeg-devices, ffmpeg-protocols, ffmpeg-filters

7 Autores

Los desarrolladores de FFmpeg.

Para más detalles sobre la autoría, véase el historial de Git del proyecto (https://git.ffmpeg.org/ffmpeg), por ejemplo escribiendo el comando git log en el directorio fuente de FFmpeg, o consultando el repositorio en línea en https://git.ffmpeg.org/ffmpeg.

Los mantenedores de los componentes específicos se listan en el archivo MAINTAINERS del árbol de código fuente.

Alojamiento proporcionado por telepoint.bg