staging.inyokaproject.org

ffprobe

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


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:

Wiki/Icons/terminal.png 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

Diese Revision wurde am 9. März 2023 10:53 von kB erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Multimedia, Shell