⚠️ Ceci est un site de traduction non officiel, sans lien avec le projet FFmpeg. Pour des informations faisant autorité, consultez la page originale (https://ffmpeg.org/ffprobe.html).

Documentation de ffprobe

1 Synopsis

ffprobe [options] input_url

2 Description

ffprobe collecte des informations depuis des flux multimédias et les affiche dans un format lisible aussi bien par un humain que par une machine.

Il permet par exemple de vérifier le format du container utilisé par un flux multimédia, ainsi que le format et le type de chacun des flux média qu'il contient.

Si une url est indiquée en entrée, ffprobe tente d'ouvrir et d'analyser son contenu. Si l'url ne peut pas être ouverte ou n'est pas reconnue comme un fichier multimédia, un code de sortie positif est renvoyé.

Si aucune sortie n'est indiquée avec -o, ffprobe écrit sur la sortie standard.

ffprobe peut s'utiliser aussi bien comme application autonome qu'en combinaison avec un filtre textuel, capable d'effectuer un traitement plus élaboré, par exemple un traitement statistique ou un tracé de courbes.

Les options servent à lister une partie des formats pris en charge par ffprobe, à indiquer quelles informations afficher, et à définir la façon dont ffprobe les présente.

La sortie de ffprobe est conçue pour être facilement analysée par un filtre textuel ; elle se compose d'une ou plusieurs sections dont la forme est définie par le writer sélectionné, lui-même indiqué par l'option output_format.

Les sections peuvent contenir d'autres sections imbriquées ; elles sont identifiées par un nom (qui peut être partagé par d'autres sections) et par un nom unique. Voir la sortie de sections.

Les balises de métadonnées stockées dans le container ou dans les flux sont reconnues et affichées dans la section "FORMAT", "STREAM", "STREAM_GROUP_STREAM" ou "PROGRAM_STREAM" correspondante.

3 Options

Sauf indication contraire, toutes les options numériques acceptent en entrée une chaîne représentant un nombre, éventuellement suivie de l'un des préfixes d'unité SI, par exemple : ’K’, ’M’ ou ’G’.

Si ’i’ est ajouté au préfixe d'unité SI, le préfixe complet est interprété comme un préfixe pour les multiples binaires, basés sur des puissances de 1024 plutôt que de 1000. Ajouter ’B’ au préfixe d'unité SI multiplie la valeur par 8. Cela permet d'utiliser, par exemple : ’KB’, ’MiB’, ’G’ et ’B’ comme suffixes numériques.

Les options qui ne prennent pas d'argument sont des options booléennes ; elles définissent la valeur correspondante à true. Elles peuvent être définies à false en préfixant le nom de l'option par "no". Par exemple, "-nofoo" définit à false l'option booléenne nommée "foo".

Les options qui prennent un argument acceptent une syntaxe spéciale où l'argument donné sur la ligne de commande est interprété comme le chemin d'un fichier depuis lequel la valeur réelle de l'argument est chargée. Pour utiliser cette fonctionnalité, ajoutez une barre oblique ’/’ immédiatement avant le nom de l'option (après le tiret initial). Par exemple :

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

charge une description de filtergraph depuis le fichier nommé filter.script.

3.1 Spécificateurs de flux

Certaines options s'appliquent par flux, par exemple le débit binaire ou le codec. Les spécificateurs de flux permettent d'indiquer précisément à quel(s) flux appartient une option donnée.

Un spécificateur de flux est une chaîne généralement ajoutée après le nom de l'option et séparée de celui-ci par deux-points. Par exemple, -codec:a:1 ac3 contient le spécificateur de flux a:1, qui correspond au deuxième flux audio. Il sélectionne donc le codec ac3 pour le deuxième flux audio.

Un spécificateur de flux peut correspondre à plusieurs flux, l'option s'appliquant alors à tous. Par exemple, le spécificateur de flux dans -b:a 128k correspond à tous les flux audio.

Un spécificateur de flux vide correspond à tous les flux. Par exemple, -codec copy ou -codec: copy copie tous les flux sans réencodage.

Les spécificateurs de flux peuvent prendre les formes suivantes :

stream_index

Correspond au flux ayant cet index. Par exemple, -threads:1 4 définit à 4 le nombre de threads du deuxième flux. Si stream_index est utilisé comme spécificateur de flux supplémentaire (voir plus bas), il sélectionne alors, parmi les flux correspondants, le flux numéro stream_index. La numérotation des flux repose sur l'ordre de détection par libavformat, sauf lorsqu'un spécificateur de groupe de flux ou un ID de programme est également indiqué ; dans ce cas, elle repose sur l'ordre des flux au sein du groupe ou du programme.

stream_type[:additional_stream_specifier]

stream_type prend l'une des valeurs suivantes : ’v’ ou ’V’ pour la vidéo, ’a’ pour l'audio, ’s’ pour les sous-titres, ’d’ pour les données et ’t’ pour les pièces jointes. ’v’ correspond à tous les flux vidéo, ’V’ ne correspond qu'aux flux vidéo qui ne sont ni des images jointes, ni des miniatures vidéo, ni des pochettes. Si additional_stream_specifier est utilisé, la correspondance porte sur les flux qui possèdent à la fois ce type et correspondent à additional_stream_specifier. Sinon, elle porte sur tous les flux du type indiqué.

g:group_specifier[:additional_stream_specifier]

Correspond aux flux appartenant au groupe désigné par group_specifier. Si additional_stream_specifier est utilisé, la correspondance porte sur les flux qui font à la fois partie du groupe et correspondent à additional_stream_specifier. group_specifier peut prendre l'une des formes suivantes :

group_index

Correspond au flux ayant cet index de groupe.

#group_id ou i:group_id

Correspond au flux ayant cet id de groupe.

p:program_id[:additional_stream_specifier]

Correspond aux flux appartenant au programme d'id program_id. Si additional_stream_specifier est utilisé, la correspondance porte sur les flux qui font à la fois partie du programme et correspondent à additional_stream_specifier.

#stream_id ou i:stream_id

Correspond au flux par son id de flux (par exemple le PID dans un container MPEG-TS).

m:key[:value]

Correspond aux flux dont la balise de métadonnée key a la valeur indiquée. Si value n'est pas indiqué, la correspondance porte sur les flux contenant la balise donnée, quelle que soit sa valeur. Le caractère deux-points ’:’ dans key ou value doit être échappé par une barre oblique inverse.

disp:dispositions[:additional_stream_specifier]

Correspond aux flux ayant le(s) disposition(s) indiquée(s). dispositions est une liste d'une ou plusieurs dispositions (telles qu'affichées par l'option -dispositions) jointes par ’+’.

u

Correspond aux flux ayant une configuration utilisable : le codec doit être défini et les informations essentielles, telles que les dimensions vidéo ou la fréquence d'échantillonnage audio, doivent être présentes.

Notez que dans ffmpeg, la correspondance par métadonnées ne fonctionne correctement que pour les fichiers d'entrée.

3.2 Options génériques

Ces options sont communes à tous les outils ff*.

-L, -license

Affiche la licence.

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

Affiche l'aide. Un paramètre facultatif peut être indiqué pour afficher l'aide d'un élément particulier. Si aucun argument n'est indiqué, seules les options de base (non avancées) de l'outil sont affichées.

Les valeurs possibles de arg sont les suivantes :

long

Affiche les options avancées de l'outil en plus des options de base.

full

Affiche la liste complète des options, y compris les options partagées et privées des encoders, decoders, demuxers, muxers, filtres, etc.

decoder=decoder_name

Affiche des informations détaillées sur le decoder nommé decoder_name. Utilisez l'option -decoders pour obtenir la liste de tous les decoders.

encoder=encoder_name

Affiche des informations détaillées sur l'encoder nommé encoder_name. Utilisez l'option -encoders pour obtenir la liste de tous les encoders.

demuxer=demuxer_name

Affiche des informations détaillées sur le demuxer nommé demuxer_name. Utilisez l'option -formats pour obtenir la liste de tous les demuxers et muxers.

muxer=muxer_name

Affiche des informations détaillées sur le muxer nommé muxer_name. Utilisez l'option -formats pour obtenir la liste de tous les muxers et demuxers.

filter=filter_name

Affiche des informations détaillées sur le filtre nommé filter_name. Utilisez l'option -filters pour obtenir la liste de tous les filtres.

bsf=bitstream_filter_name

Affiche des informations détaillées sur le filtre bitstream nommé bitstream_filter_name. Utilisez l'option -bsfs pour obtenir la liste de tous les filtres bitstream.

protocol=protocol_name

Affiche des informations détaillées sur le protocole nommé protocol_name. Utilisez l'option -protocols pour obtenir la liste de tous les protocoles.

-version

Affiche la version.

-buildconf

Affiche la configuration de compilation, une option par ligne.

-formats

Affiche les formats disponibles (y compris les périphériques).

-demuxers

Affiche les demuxers disponibles.

-muxers

Affiche les muxers disponibles.

-devices

Affiche les périphériques disponibles.

-codecs

Affiche tous les codecs connus de libavcodec.

Notez que le terme ’codec’ est utilisé dans l'ensemble de cette documentation comme raccourci pour ce qu'il conviendrait d'appeler plus précisément un format de bitstream média.

-decoders

Affiche les decoders disponibles.

-encoders

Affiche tous les encoders disponibles.

-bsfs

Affiche les filtres bitstream disponibles.

-protocols

Affiche les protocoles disponibles.

-filters

Affiche les filtres libavfilter disponibles.

-pix_fmts

Affiche les pixel format disponibles.

-sample_fmts

Affiche les sample format disponibles.

-layouts

Affiche les noms de canaux et les dispositions des canaux standard.

-dispositions

Affiche les dispositions des flux.

-colors

Affiche les noms de couleurs reconnus.

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

Affiche les sources détectées automatiquement du périphérique d'entrée. Certains périphériques peuvent fournir des noms de source dépendant du système, qui ne peuvent pas être détectés automatiquement. La liste renvoyée n'est pas nécessairement toujours complète.

ffmpeg -sources pulse,server=192.168.0.4

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

Affiche les sinks détectés automatiquement du périphérique de sortie. Certains périphériques peuvent fournir des noms de sink dépendant du système, qui ne peuvent pas être détectés automatiquement. La liste renvoyée n'est pas nécessairement toujours complète.

ffmpeg -sinks pulse,server=192.168.0.4

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

Définit le niveau de journalisation et les indicateurs utilisés par la bibliothèque.

Le préfixe flags facultatif peut être composé des valeurs suivantes :

‘repeat’

Indique que la sortie de journal répétée ne doit pas être compactée sur la première ligne : la ligne "Last message repeated n times" est alors omise.

‘level’

Indique que la sortie de journal doit être précédée du préfixe [level] sur chaque ligne de message. Cela peut servir d'alternative à la coloration du journal, par exemple lors de l'export du journal vers un fichier.

‘time’

Indique que les lignes de journal doivent être précédées d'une information d'heure.

‘datetime’

Indique que les lignes de journal doivent être précédées d'une information de date et d'heure.

Les indicateurs peuvent aussi être utilisés seuls, en ajoutant un préfixe ’+’/’-’ pour activer ou désactiver un indicateur unique sans affecter les autres indicateurs ni modifier loglevel. Lorsque flags et loglevel sont définis ensemble, un séparateur ’+’ est attendu entre la dernière valeur de flags et loglevel.

loglevel est une chaîne ou un nombre contenant l'une des valeurs suivantes :

‘quiet, -8’

N'affiche rien du tout ; reste silencieux.

‘panic, 0’

Affiche uniquement les erreurs fatales susceptibles de provoquer un plantage du processus, comme un échec d'assertion. Pour l'instant, cette valeur n'est utilisée pour rien.

‘fatal, 8’

Affiche uniquement les erreurs fatales. Ce sont des erreurs après lesquelles le processus ne peut absolument plus continuer.

‘error, 16’

Affiche toutes les erreurs, y compris celles dont on peut se remettre.

‘warning, 24’

Affiche tous les avertissements et toutes les erreurs. Tout message lié à un événement potentiellement incorrect ou inattendu est affiché.

‘info, 32’

Affiche des messages informatifs pendant le traitement, en plus des avertissements et des erreurs. C'est la valeur par défaut.

‘verbose, 40’

Identique à info, mais plus détaillé.

‘debug, 48’

Affiche tout, y compris les informations de débogage.

‘trace, 56’

Par exemple, pour activer la sortie de journal répétée, ajoutez le préfixe level, et définir loglevel à verbose :

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

Un autre exemple, qui active la sortie de journal répétée sans affecter l'état actuel de l'indicateur de préfixe level ni de loglevel :

ffmpeg [...] -loglevel +repeat

Par défaut, le programme journalise sur la sortie d'erreur. Si le terminal prend en charge la coloration, des couleurs sont utilisées pour signaler les erreurs et les avertissements. La coloration du journal peut être désactivée en définissant la variable d'environnement AV_LOG_FORCE_NOCOLOR, ou forcée en définissant la variable d'environnement AV_LOG_FORCE_COLOR.

-report

Écrit la ligne de commande complète et la sortie de journal dans un fichier nommé program-YYYYMMDD-HHMMSS.log dans le répertoire courant. Ce fichier peut être utile pour les rapports de bug. Cette option implique aussi -loglevel debug.

Définir la variable d'environnement FFREPORT à n'importe quelle valeur produit le même effet. Si la valeur est une séquence key=value séparée par ’:’, ces options affectent le rapport ; les valeurs des options doivent être échappées si elles contiennent des caractères spéciaux ou le séparateur d'options ’:’ (voir la section “Quoting and escaping” du manuel ffmpeg-utils).

Les options suivantes sont reconnues :

file

définit le nom de fichier à utiliser pour le rapport ; %p est remplacé par le nom du programme, %t par un horodatage, %% par un simple %

level

définit le niveau de verbosité du journal à l'aide d'une valeur numérique (voir -loglevel).

Par exemple, pour écrire un rapport dans un fichier nommé ffreport.log avec un niveau de journal 32 (alias du niveau info) :

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

Les erreurs d'analyse de la variable d'environnement ne sont pas fatales et n'apparaissent pas dans le rapport.

-hide_banner

Supprime l'affichage de la bannière.

Tous les outils FFmpeg affichent normalement une mention de copyright, les options de compilation et les versions des bibliothèques. Cette option permet de supprimer l'affichage de ces informations.

-cpuflags flags (global)

Permet de définir et d'effacer des indicateurs CPU. Cette option est destinée aux tests. Ne l'utilisez pas si vous ne savez pas ce que vous faites.

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

Les indicateurs possibles pour cette option sont :

‘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)

Remplace la détection automatique du nombre de CPU. Cette option est destinée aux tests. Ne l'utilisez pas si vous ne savez pas ce que vous faites.

ffmpeg -cpucount 2

-max_alloc bytes

Définit la taille maximale d'un bloc alloué sur le tas par les fonctions malloc de la famille ffmpeg. Faites preuve d'une extrême prudence en utilisant cette option. Ne l'utilisez pas si vous n'en comprenez pas pleinement les conséquences. La valeur par défaut est INT_MAX.

3.3 AVOptions

Ces options sont fournies directement par les bibliothèques libavformat, libavdevice et libavcodec. Pour voir la liste des AVOptions disponibles, utilisez l'option -help. Elles se répartissent en deux catégories :

generic

Ces options peuvent être définies pour n'importe quel container, codec ou périphérique. Les options generic sont listées sous AVFormatContext options pour les containers/périphériques, et sous AVCodecContext options pour les codecs.

private

Ces options sont spécifiques au container, au périphérique ou au codec donné. Les options private sont listées sous le container/périphérique/codec correspondant.

Par exemple, pour écrire un en-tête ID3v2.3 au lieu de l'ID3v2.4 par défaut dans un fichier MP3, utilisez l'option private id3v2_version du muxer MP3 :

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

Toutes les AVOptions de codec s'appliquent par flux ; un spécificateur de flux doit donc leur être associé :

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

Dans l'exemple ci-dessus, un flux audio multicanal est associé deux fois à la sortie. La première instance est encodée avec le codec ac3 et un débit binaire de 640k. La seconde instance est ramenée à 2 canaux (downmix) et encodée avec le codec aac. Un débit binaire de 128k lui est indiqué à l'aide de l'index absolu du flux de sortie.

Remarque : la syntaxe -nooption ne peut pas être utilisée pour les AVOptions booléennes ; utilisez -option 0/-option 1.

Remarque : l'ancienne méthode non documentée, consistant à préfixer le nom de l'option par v/a/s pour indiquer des AVOptions par flux, est désormais obsolète et sera bientôt supprimée.

3.4 Options principales

-f format

Force le format à utiliser.

-unit

Affiche l'unité des valeurs affichées.

-prefix

Utilise des préfixes SI pour les valeurs affichées. Sauf si l'option "-byte_binary_prefix" est utilisée, tous les préfixes sont décimaux.

-byte_binary_prefix

Force l'utilisation de préfixes binaires pour les valeurs en octets.

-sexagesimal

Utilise le format sexagésimal HH:MM:SS.MICROSECONDS pour les valeurs de temps.

-pretty

Améliore la présentation des valeurs affichées ; correspond aux options "-unit -prefix -byte_binary_prefix -sexagesimal".

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

Définit le format d'affichage de la sortie.

writer_name indique le nom du writer, et writer_options indique les options à transmettre au writer.

Par exemple, pour afficher la sortie au format JSON, indiquez :

-output_format json

Pour plus de détails sur les formats d'affichage disponibles, voir la section Writers ci-dessous.

-sections

Affiche la structure des sections et les informations de section, puis quitte. Cette sortie n'est pas destinée à être analysée par une machine.

-select_streams stream_specifier

Ne sélectionne que les flux indiqués par stream_specifier. Cette option n'affecte que les options liées aux flux (par exemple show_streams, show_packets, etc.).

Par exemple, pour n'afficher que les flux audio, vous pouvez utiliser la commande :

ffprobe -show_streams -select_streams a INPUT

Pour n'afficher que les paquets vidéo appartenant au flux vidéo d'index 1 :

ffprobe -show_packets -select_streams v:1 INPUT

-show_data

Affiche les données de charge utile sous forme de dump hexadécimal et ASCII (d'autres formats peuvent être sélectionnés avec -data_dump_format). Associée à -show_packets, elle inclut le dump des données de chaque paquet. Associée à -show_streams, elle inclut le dump des extradata du codec.

Le dump est affiché dans le champ "data". Il peut contenir des retours à la ligne.

-show_data_hash algorithm

Affiche un hash des données de charge utile, pour les paquets avec -show_packets et pour les extradata du codec avec -show_streams.

-data_dump_format format

Sélectionne le format utilisé pour les dumps de données activés par l'option -show_data. La valeur par défaut est xxd, un format de hexdump compatible avec le programme bien connu xxd. base64 est également pris en charge.

-show_error

Affiche des informations sur l'erreur rencontrée lors de la tentative d'analyse de l'entrée.

Les informations d'erreur sont affichées dans une section nommée "ERROR".

-show_format

Affiche des informations sur le format de container du flux multimédia d'entrée.

Toutes les informations de format de container sont affichées dans une section nommée "FORMAT".

-show_entries section_entries

Définit la liste des entrées à afficher.

Les entrées sont indiquées selon la syntaxe suivante. section_entries contient une liste d'entrées de section séparées par :. Chaque entrée de section se compose d'un nom de section (ou nom unique), éventuellement suivi d'une liste d'entrées locales à cette section, séparées par ,.

Si un nom de section est indiqué mais n'est suivi d'aucun =, toutes les entrées sont affichées, ainsi que toutes les sections contenues. Sinon, seules les entrées indiquées dans la liste d'entrées locales sont affichées. En particulier, si = est indiqué mais que la liste d'entrées locales est vide, aucune entrée n'est affichée pour cette section.

Notez que l'ordre d'indication des entrées de section locales n'est pas respecté dans la sortie, et que l'ordre d'affichage habituel est conservé.

La syntaxe formelle est la suivante :

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

Par exemple, pour n'afficher que l'index et le type de chaque flux, ainsi que le temps PTS, la durée et l'index de flux des paquets, vous pouvez indiquer l'argument :

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

Pour afficher toutes les entrées de la section "format", mais uniquement le type de codec dans la section "stream", indiquez l'argument :

format : stream=codec_type

Pour afficher toutes les balises des sections stream et format :

stream_tags : format_tags

Pour n'afficher que la balise title (si disponible) dans les sections stream :

stream_tags=title

-show_packets

Affiche des informations sur chaque paquet contenu dans le flux multimédia d'entrée.

Les informations de chaque paquet sont affichées dans une section dédiée nommée "PACKET".

-show_frames

Affiche des informations sur chaque image et chaque sous-titre contenus dans le flux multimédia d'entrée.

Les informations de chaque image sont affichées dans une section dédiée nommée "FRAME" ou "SUBTITLE".

-show_log loglevel

Affiche les informations de journalisation du decoder pour chaque image, selon la valeur définie dans loglevel (voir -loglevel). Cette option nécessite -show_frames.

Les informations de chaque message de journal sont affichées dans une section dédiée nommée "LOG".

-show_streams

Affiche des informations sur chaque flux média contenu dans le flux multimédia d'entrée.

Les informations de chaque flux média sont affichées dans une section dédiée nommée "STREAM".

-show_programs

Affiche des informations sur les programmes et leurs flux contenus dans le flux multimédia d'entrée.

Les informations de chaque flux média sont affichées dans une section dédiée nommée "PROGRAM_STREAM".

-show_stream_groups

Affiche des informations sur les groupes de flux et leurs flux contenus dans le flux multimédia d'entrée.

Les informations de chaque flux média sont affichées dans une section dédiée nommée "STREAM_GROUP_STREAM".

-show_chapters

Affiche des informations sur les chapitres stockés dans le format.

Chaque chapitre est affiché dans une section dédiée nommée "CHAPTER".

-count_frames

Compte le nombre d'images par flux et l'indique dans la section de flux correspondante.

-count_packets

Compte le nombre de paquets par flux et l'indique dans la section de flux correspondante.

-read_intervals read_intervals

Ne lit que les intervalles indiqués. read_intervals doit être une séquence de spécifications d'intervalle séparées par ",". ffprobe se positionne au point de départ de l'intervalle et poursuit la lecture à partir de là.

Chaque intervalle est indiqué par deux parties facultatives, séparées par "%".

La première partie indique la position de départ de l'intervalle. Elle est interprétée comme une position absolue, ou comme un décalage relatif à la position actuelle si elle est précédée du caractère "+". Si cette première partie n'est pas indiquée, aucun positionnement n'est effectué à la lecture de cet intervalle.

La seconde partie indique la position de fin de l'intervalle. Elle est interprétée comme une position absolue, ou comme un décalage relatif à la position actuelle si elle est précédée du caractère "+". Si l'indication de décalage commence par "#", elle est interprétée comme le nombre de paquets à lire (sans compter les paquets de vidage) depuis le début de l'intervalle. Si aucune seconde partie n'est indiquée, le programme lit jusqu'à la fin de l'entrée.

Notez que le positionnement n'est pas précis ; le point de départ réel de l'intervalle peut donc différer de la position indiquée. De plus, lorsqu'une durée d'intervalle est indiquée, l'heure de fin absolue est calculée en ajoutant la durée au point de départ de l'intervalle trouvé par positionnement dans le fichier, plutôt qu'à la valeur de départ indiquée.

La syntaxe formelle est la suivante :

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

Voici quelques exemples.

  • Se positionner au temps 10, lire les paquets jusqu'à 20 secondes après le point de positionnement trouvé, puis se positionner à la position 01:30 (1 minute et trente secondes) et lire les paquets jusqu'à la position 01:45.

    10%+20,01:30%01:45
    
  • Lire seulement 42 paquets après s'être positionné à la position 01:23 :

    01:23%+#42
    
  • Lire seulement les 20 premières secondes depuis le début :

    %+20
    
  • Lire depuis le début jusqu'à la position 02:30 :

    %02:30
    

-show_private_data, -private

Affiche les private data, c'est-à-dire les données dépendant du format de l'élément affiché. Cette option est activée par défaut, mais il peut être nécessaire de la désactiver pour certains usages, par exemple pour produire une sortie XML conforme à un schéma XSD.

-show_program_version

Affiche des informations relatives à la version du programme.

Les informations de version sont affichées dans une section nommée "PROGRAM_VERSION".

-show_library_versions

Affiche des informations relatives aux versions des bibliothèques.

Les informations de version de chaque bibliothèque sont affichées dans une section nommée "LIBRARY_VERSION".

-show_versions

Affiche des informations relatives aux versions du programme et des bibliothèques. Cela équivaut à définir à la fois les options -show_program_version et -show_library_versions.

-show_pixel_formats

Affiche des informations sur tous les pixel format pris en charge par FFmpeg.

Les informations de pixel format de chaque format sont affichées dans une section nommée "PIXEL_FORMAT".

-show_optional_fields value

Certains writers, comme JSON et XML, omettent l'affichage des champs ayant des valeurs invalides ou non applicables, alors que d'autres les affichent toujours. Cette option permet de contrôler ce comportement. Les valeurs valides sont always/1, never/0 et auto/-1. La valeur par défaut est auto.

-analyze_frames

Analyse les images et/ou leurs side data jusqu'à l'intervalle de lecture indiqué, en fournissant des informations supplémentaires potentiellement utiles au niveau du flux. Doit être associée à l'option -show_streams, sinon elle n'a aucun effet.

Pour l'instant, les champs supplémentaires fournis par cette option lorsqu'elle est activée sont closed_captions et film_grain.

Par exemple, pour analyser les 20 premières secondes et remplir ces champs :

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

-bitexact

Force une sortie bitexact, utile pour produire une sortie qui ne dépend pas de la compilation spécifique.

-i input_url

Lit input_url.

-o output_url

Écrit la sortie dans output_url. Si non indiqué, la sortie est envoyée vers la sortie standard.

-c:media_specifier codec_name -codec:media_specifier codec_name

Force une implémentation de decoder spécifique pour le flux identifié par media_specifier, qui peut prendre les valeurs a (audio), v (vidéo), s (sous-titre) et d (données).

4 Writers

Un writer définit le format de sortie adopté par ffprobe, et sert à afficher toutes les parties de la sortie.

Un writer peut accepter un ou plusieurs arguments, qui indiquent les options à adopter. Les options sont indiquées sous forme d'une liste de paires clé=valeur, séparées par ":".

Tous les writers prennent en charge les options suivantes :

string_validation, sv

Définit le mode de validation des chaînes.

Les valeurs suivantes sont acceptées.

‘fail’

Le writer échoue immédiatement si une séquence de chaîne (UTF-8) ou un point de code invalide est trouvé dans l'entrée. Ceci est particulièrement utile pour valider les métadonnées d'entrée.

‘ignore’

Toute erreur de validation est ignorée. Cela peut produire une sortie corrompue, en particulier avec le writer json ou xml.

‘replace’

Le writer remplace les séquences UTF-8 ou points de code invalides par la chaîne indiquée avec string_validation_replacement.

La valeur par défaut est ‘replace’.

string_validation_replacement, svr

Définit la chaîne de remplacement à utiliser lorsque string_validation vaut ‘replace’.

Si cette option n'est pas indiquée, le writer utilise la chaîne vide, c'est-à-dire qu'il retire les séquences invalides des chaînes d'entrée.

Une description des writers disponibles à ce jour suit.

4.1 default

Format par défaut.

Affiche chaque section sous la forme :

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

Les balises de métadonnées sont affichées sous forme d'une ligne dans la section FORMAT, STREAM, STREAM_GROUP_STREAM ou PROGRAM_STREAM correspondante, précédées de la chaîne "TAG:".

Une description des options acceptées suit.

nokey, nk

Si la valeur est 1, indique de ne pas afficher la clé de chaque champ. La valeur par défaut est 0.

noprint_wrappers, nw

Si la valeur est 1, indique de ne pas afficher l'en-tête et le pied de section. La valeur par défaut est 0.

4.2 compact, csv

Format compact et CSV.

Le writer csv est équivalent à compact, mais avec des valeurs par défaut différentes.

Chaque section est affichée sur une seule ligne. Si aucune option n'est indiquée, la sortie prend la forme :

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

Les balises de métadonnées sont affichées dans la section "format" ou "stream" correspondante. La clé d'une balise de métadonnée, si elle est affichée, est précédée de la chaîne "tag:".

La description des options acceptées suit.

item_sep, s

Indique le caractère à utiliser pour séparer les champs dans la ligne de sortie. Il doit s'agir d'un seul caractère imprimable ; par défaut "|" ("," pour le writer csv).

nokey, nk

Si la valeur est 1, indique de ne pas afficher la clé de chaque champ. Sa valeur par défaut est 0 (1 pour le writer csv).

escape, e

Définit le mode d'échappement à utiliser ; par défaut "c" ("csv" pour le writer csv).

Il peut prendre l'une des valeurs suivantes :

c

Effectue un échappement de type C. Les chaînes contenant un retour à la ligne (‘\n’), un retour chariot (‘\r’), une tabulation (‘\t’), un saut de page (‘\f’), le caractère d'échappement (‘\’) ou le caractère de séparation SEP sont échappées à la façon du C : un retour à la ligne devient la séquence ‘\n’, un retour chariot devient ‘\r’, ‘\’ devient ‘\\’ et le séparateur SEP devient ‘\SEP’.

csv

Effectue un échappement de type CSV, tel que décrit dans la RFC4180. Les chaînes contenant un retour à la ligne (‘\n’), un retour chariot (‘\r’), un guillemet double (‘"’) ou SEP sont placées entre guillemets doubles.

none

N'effectue aucun échappement.

print_section, p

Affiche le nom de la section au début de chaque ligne si la valeur est 1, désactive ce comportement avec la valeur 0. La valeur par défaut est 1.

4.3 flat

Format flat.

Une sortie en forme libre où chaque ligne contient une paire clé=valeur explicite, telle que "streams.stream.3.tags.foo=bar". La sortie est échappée pour le shell, ce qui permet de l'intégrer directement dans des scripts sh tant que le caractère de séparation est alphanumérique ou un tiret bas (voir l'option sep_char).

La description des options acceptées suit.

sep_char, s

Caractère de séparation utilisé pour séparer le chapitre, le nom de section, les ID et les éventuelles balises dans la clé de champ affichée.

La valeur par défaut est ‘.’.

hierarchical, h

Indique si l'indication du nom de section doit être hiérarchique. Si la valeur est 1, et s'il y a plus d'une section dans le chapitre courant, le nom de section est précédé du nom du chapitre. La valeur 0 désactive ce comportement.

La valeur par défaut est 1.

4.4 ini

Sortie au format INI.

Affiche la sortie dans un format basé sur INI.

Les conventions suivantes sont adoptées :

  • toutes les clés et valeurs sont en UTF-8
  • ‘.’ est le séparateur de sous-groupe
  • le retour à la ligne, ‘\t’, ‘\f’, ‘\b’ et les caractères suivants sont échappés
  • ‘\’ est le caractère d'échappement
  • ‘#’ est l'indicateur de commentaire
  • ‘=’ est le séparateur clé/valeur
  • ‘:’ n'est pas utilisé mais est généralement interprété comme séparateur clé/valeur

Ce writer accepte des options sous forme d'une liste de paires clé=valeur, séparées par ‘:’.

La description des options acceptées suit.

hierarchical, h

Indique si l'indication du nom de section doit être hiérarchique. Si la valeur est 1, et s'il y a plus d'une section dans le chapitre courant, le nom de section est précédé du nom du chapitre. La valeur 0 désactive ce comportement.

La valeur par défaut est 1.

4.5 json

Format basé sur JSON.

Chaque section est affichée en notation JSON.

La description des options acceptées suit.

compact, c

Si la valeur est 1, active la sortie compacte, c'est-à-dire que chaque section est affichée sur une seule ligne. La valeur par défaut est 0.

Pour plus d'informations sur JSON, voir http://www.json.org/.

4.6 xml

Format basé sur XML.

La sortie XML est décrite dans le fichier de description de schéma XML ffprobe.xsd, installé dans le datadir de FFmpeg.

Une version à jour du schéma peut être récupérée à l'url http://www.ffmpeg.org/schema/ffprobe.xsd, qui redirige vers le dernier schéma intégré dans l'arborescence des sources de développement de FFmpeg.

Notez que la sortie produite n'est conforme au schéma ffprobe.xsd que si aucune option de sortie globale spéciale (unit, prefix, byte_binary_prefix, sexagesimal, etc.) n'est indiquée.

La description des options acceptées suit.

fully_qualified, q

Si la valeur est 1, indique si la sortie doit être entièrement qualifiée. La valeur par défaut est 0. Ceci est nécessaire pour générer un fichier XML pouvant être validé à l'aide d'un fichier XSD.

xsd_strict, x

Si la valeur est 1, effectue davantage de vérifications pour s'assurer que la sortie est conforme à XSD. La valeur par défaut est 0. Cette option définit automatiquement fully_qualified à 1.

Pour plus d'informations sur le format XML, voir https://www.w3.org/XML/.

5 Code temporel

ffprobe prend en charge l'extraction du code temporel :

  • Le code temporel MPEG1/2 est extrait du GOP et disponible dans les détails du flux vidéo (-show_streams, voir timecode).
  • Le code temporel MOV est extrait de la piste tmcd, il est donc disponible dans les métadonnées du flux tmcd (-show_streams, voir TAG:timecode).
  • Les codes temporels DV, GXF et AVI sont disponibles dans les métadonnées de format (-show_format, voir TAG:timecode).

6 Voir aussi

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

7 Auteurs

Les développeurs de FFmpeg.

Pour plus de détails sur les auteurs, consultez l'historique Git du projet (https://git.ffmpeg.org/ffmpeg), par exemple en exécutant la commande git log dans le répertoire des sources de FFmpeg, ou en parcourant le dépôt en ligne à l'adresse https://git.ffmpeg.org/ffmpeg.

Les mainteneurs des différents composants sont listés dans le fichier MAINTAINERS de l'arborescence des sources.

Hébergement fourni par telepoint.bg