[[Vorlage(Getestet, jammy, bionic)]] {{{#!vorlage Wissen [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(1)]] [[Bild(Wiki/Icons/terminal.png, 48, align=left)]] ffprobe ist eine Anwendung für die Kommandozeilen, die übersichtlich Informationen zu Multimediadateien und den enthaltenen Streams anzeigt und das früher verwendete Programm `avprobe` ersetzt. Es ist Bestandteil von [:FFmpeg:]. Eine Alternative ist das Programm [:MediaInfo:], das zusätzlich eine grafische Oberfläche bietet. = Installation = Es muss das folgende Paket installiert werden: {{{#!vorlage Paketinstallation ffmpeg, universe }}} = Benutzung = ffprobe wird im Terminal ausgeführt [1]. Die allgemeine Syntax ist {{{#!vorlage Befehl ffprobe [OPTIONEN] EINGABEDATEIEN }}} Neben den generischen Optionen, die für alle Anwendungen des FFmpeg-Projekt gelten (siehe [:FFmpeg#Benutzung:Allgemeine EInstellungen]), werden u.a. folgende akzeptiert: {{{#!vorlage Tabelle ffprobe Optionen +++ Option Beschreibung +++ `-f FORMAT` FORMAT erzwingen +++ `-pretty` Formate der angezeigten Werte verschönern +++ `-show_format` Informationen über das Containerformat der Eingabedateien anzeigen +++ `-show_packets` Informationen über jedes Paket anzeigen, das die Eingabedateien enthalten (Achtung: Gibt viele Informationen aus. Mit [:more:] oder [:less:] kombinieren ober in Datei umleiten (siehe [:Shell/Umleitungen:]) +++ `-show_streams` Informationen über jeden Stream anzeigen, die die Eingabedateien enthalten }}} Eine vollständige Auflistung bietet die [:man:Manpage] zu ffprobe. == Beispiel == Die Ausgabe des Befehls {{{#!vorlage Befehl ffprobe -show_format -show_streams -pretty "Black Wonderful Life.mp3" }}} sieht zum Beispiel so aus: {{{#!code ffprobe version 3.4.6-0ubuntu0.18.04.1 Copyright (c) 2007-2019 the FFmpeg developers built with gcc 7 (Ubuntu 7.3.0-16ubuntu3) configuration: --prefix=/usr --extra-version=0ubuntu0.18.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared libavutil 55. 78.100 / 55. 78.100 libavcodec 57.107.100 / 57.107.100 libavformat 57. 83.100 / 57. 83.100 libavdevice 57. 10.100 / 57. 10.100 libavfilter 6.107.100 / 6.107.100 libavresample 3. 7. 0 / 3. 7. 0 libswscale 4. 8.100 / 4. 8.100 libswresample 2. 9.100 / 2. 9.100 libpostproc 54. 7.100 / 54. 7.100 Input #0, mp3, from 'Black Wonderful Life.mp3': Metadata: title : Wonderful Life artist : Black Duration: 00:04:57.04, start: 0.025057, bitrate: 256 kb/s Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 256 kb/s Metadata: encoder : Lavc56.60 [STREAM] index=0 codec_name=mp3 codec_long_name=MP3 (MPEG audio layer 3) profile=unknown codec_type=audio codec_time_base=1/44100 codec_tag_string=[0][0][0][0] codec_tag=0x0000 sample_fmt=s16p sample_rate=44.100000 KHz channels=2 channel_layout=stereo bits_per_sample=0 id=N/A r_frame_rate=0/0 avg_frame_rate=0/0 time_base=1/14112000 start_pts=353600 start_time=0:00:00.025057 duration_ts=4191805440 duration=0:04:57.038367 bit_rate=256 Kbit/s max_bit_rate=N/A bits_per_raw_sample=N/A nb_frames=N/A nb_read_frames=N/A nb_read_packets=N/A DISPOSITION:default=0 DISPOSITION:dub=0 DISPOSITION:original=0 DISPOSITION:comment=0 DISPOSITION:lyrics=0 DISPOSITION:karaoke=0 DISPOSITION:forced=0 DISPOSITION:hearing_impaired=0 DISPOSITION:visual_impaired=0 DISPOSITION:clean_effects=0 DISPOSITION:attached_pic=0 DISPOSITION:timed_thumbnails=0 TAG:encoder=Lavc56.60 [/STREAM] [FORMAT] filename=Black Wonderful Life.mp3 nb_streams=1 nb_programs=0 format_name=mp3 format_long_name=MP2/3 (MPEG audio layer 2/3) start_time=0:00:00.025057 duration=0:04:57.038367 size=9.065883 Mibyte bit_rate=256.027000 Kbit/s probe_score=51 TAG:title=Wonderful Life TAG:artist=Black [/FORMAT] }}} Diese Beispielausgabe enthält folgende Elemente: * Zeilen 1 bis 12: Allgemeine Informationen zu ffprobe und der verwendeten Bibliotheken (Diese Zeilen kann man mit der Option `-hide_banner` unterdrücken.) * Zeile 13: Ausgabe des Codecs (mp3) * Zeilen 14 bis 16: Meta-Informationen dieser Datei * Zeile 17: Zusammengefasste Informationen über diese Datei * Zeile 18: Zusammengefasste Informationen über den Audio-Stream * Zeile 20: den verwendeten Encoder * Zeilen 21 bis 62: Detaillierte Informationen (`-show_streams`) * Zeilen 63 bis 76: Detaillierte Informationen über die Datei und das Dateiformat (`-show_format`) Da die von den Optionen, die dem Schema `-show_*` folgen, ausgegebenen Informationen eine feste Syntax haben, eignen sie sich für die automatische Weiterverarbeitung z.B. in Statistiken. Falls nach der ersten Angabe zu `configuration` die Ausgabe {{{ WARNING: library configuration mismatch }}} gefolgt von einer weiteren Ausgabe zu avcodec erfolgt, sind vermutlich Dateien aus verschieden Versionen der libavcodecs installiert, z.B. wenn eine aktuelle Version über [:FFmpeg/#Linux-Static-Builds: Linux Static Builds] zusätzlich zu den Paketen aus den Quellen verwendet wurde. = Weitere Beispiele = So könnte man z.B. nur die Format-Informationen ausgeben lassen. {{{#!vorlage Befehl ffprobe -i "Video.mp4" -show_format -v quiet }}} Mit Hilfe des [:grep:]-Befehls lässt sich die Ausgabe auf die Dauer (in Sekunden) und Dateigröße (in Bytes) reduzieren. {{{#!vorlage Befehl ffprobe -i "Video.mp4" -show_format -v quiet | grep 'duration\|size' }}} {{{ duration=1297.811000 size=83696475 }}} Durch [:find:] und [:sort:] kann man zusätzlich alle Video-Dateien im aktuellen Verzeichnis analysieren. {{{#!vorlage Befehl find . -type f -iname '*.mp4' -print0 | sort -z | xargs -0 -i ffprobe -i "{}" -show_format -v quiet | grep 'duration\|filename' }}} {{{ filename=./Video01.mp4 duration=615.171000 filename=./Video02.mp4 duration=632.051000 filename=./Video03.mp4 duration=630.056000 }}} = Links = * [https://ffmpeg.org/ffprobe.html ffprobe] {en} - Dokumentation * [:FFmpeg:] {Übersicht} Hauptartikel #tag: Shell, Multimedia