ffprobe
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 22.04 Jammy Jellyfish
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
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:
ffmpeg (universe)
Befehl zum Installieren der Pakete:
sudo apt-get install ffmpeg
Oder mit apturl installieren, Link: apt://ffmpeg
Benutzung¶
ffprobe wird im Terminal ausgeführt [1]. Die allgemeine Syntax ist
ffprobe [OPTIONEN] EINGABEDATEIEN
Neben den generischen Optionen, die für alle Anwendungen des FFmpeg-Projekt gelten (siehe Allgemeine EInstellungen), werden u.a. folgende akzeptiert:
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 Manpage zu ffprobe.
Beispiel¶
Die Ausgabe des Befehls
ffprobe -show_format -show_streams -pretty "Black Wonderful Life.mp3"
sieht zum Beispiel so aus:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | 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 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.
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.
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.
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¶