Benutzer-Werkzeuge

Webseiten-Werkzeuge


ffprobe

Dies ist eine alte Version des Dokuments!


ffprobe

> ffprobe -i Film.wmv -show_format
> ffprobe -i Film.wmv -show_packets
> ffprobe -i Film.wmv -show_streams

Zum auslesen der Video-Eigenschaften ist mediainfo deutlich besser geeignet! Es kann auch den Scan-Type (Progressive oder Interlaced) mit einer Ausnahme (manchmal gibt es anstelle von 50p, 50i aus) recht gut erkennen.

Video-Eigenschaften auslesen

Die wichtigsten Infos kann man mit diesem Kommando auslesen:

ffprobe Film.wmv
...
  Duration: 00:02:10.00, start: 0.000000, bitrate: 442 kb/s
  Stream #0.0(heb): Audio: wmav2, 22050 Hz, 1 channels, s16, 16 kb/s
  Stream #0.1(heb): Video: wmv3 (Main), yuv420p, 640x480, 413 kb/s, 20 tbr, 1k tbn, 1k tbc

Manchmal wird direkt vor "tbr" auch noch extra "fps" aufgeführt.

FFmpeg verwendet drei verschiedene Zeitangaben:

tbn = the time base in AVStream that has come from the container
tbc = the time base in AVCodecContext for the codec used for a particular stream
tbr = tbr is guessed from the video stream and is the value users want to see when they look for the video frame rate
25 fps  - Bilder/Sekunde
25 tbr  - geratene Bildwiederholrate des Datenstromes
90k tbn - Zeitbasis des AV-Kontainers
50 tbc  - Zeitbasis im AV-Kodec-Kontext

Also ist die Angabe "tbr" im allgemeinen mit "fps" gleichzusetzen.

Man kann sich die Infos auch in einem anderen Format ausgeben lassen. Eines, welches besser maschinenlesbar ist:

> ffprobe -i Film.wmv -show_streams 2>/dev/null
[STREAM]
index=0
codec_name=wmav2
codec_long_name=Windows Media Audio 2
codec_type=audio
codec_time_base=0/1
codec_tag_string=a[1][0][0]
codec_tag=0x0161
sample_rate=22050.000000 
channels=1
bits_per_sample=0
r_frame_rate=0/0
avg_frame_rate=250/81
time_base=1/1000
start_time=0.000000 
duration=130.000000 
TAG:language=heb
[/STREAM]
[STREAM]
index=1
codec_name=wmv3
codec_long_name=Windows Media Video 9
codec_type=video
codec_time_base=1/1000
codec_tag_string=WMV3
codec_tag=0x33564d57
width=640
height=480
has_b_frames=0
pix_fmt=yuv420p
r_frame_rate=20/1
avg_frame_rate=0/0
time_base=1/1000
start_time=0.000000 
duration=130.000000 
TAG:language=heb
[/STREAM]
> ffprobe -show_streams Film.mpg 2>/dev/null | sed 's/ /$/g' | tr -s '\n' ' ' | sed 's# \[/STREAM\]# [/STREAM]|#g' | tr -s '|' '\n' | fgrep codec_type=video | tr -s ' ' '\n' | sed 's/[$]/ /g' | egrep 'codec_time_base=|_frame_rate=|time_base='
codec_time_base=1/50
r_frame_rate=25/1
avg_frame_rate=25/1
time_base=1/90000

weitere Infos kann man sich mit diesem Kommando anzeigen lassen:

> ffprobe -show_format Film.wmv 2>/dev/null
[FORMAT]
filename=Film.wmv
nb_streams=2
format_name=asf
format_long_name=ASF format
start_time=0.000000 
duration=130.000000 
size=7197119.000000 
bit_rate=442899.000000 
TAG:WMFSDKVersion=10.00.00.3802
TAG:WMFSDKNeeded=0.0.0.0000
TAG:IsVBR=0
[/FORMAT]
> ffprobe -show_format Film.mpg 2>/dev/null
[FORMAT]
filename=Du_bist_was_Du_isst.mpg
nb_streams=3
format_name=mpeg
format_long_name=MPEG-PS format
start_time=0.287267
duration=0.928000
size=4992397312.000000
bit_rate=-2147483648.000000
[/FORMAT]
> ffprobe -show_packets Film.mpg 2>/dev/null | fgrep stream_index= | head -n1000 | sort | uniq
stream_index=0
stream_index=1
stream_index=2

Bildformat ändern

das generiert ein 16/9-Video mit der Auflösung von 1024:576:

> ffmpeg -i Film.mkv  -map 0:v -map 0:a:0 -c:v libx264 -vf pad='max(iw\,ih*16/9):ow/16/9:(ow-iw)/2:(oh-ih)/2',scale='1024:576',setsar='1/1' -c:a libfaac -b:a 128k -ar 44100 -y Film.mp4

oder wenn der vorliegende Film im Zeilensprungformat (interlace) vorliegt und der MP4-Film im Vollbildmodus (progressiv) gewünscht wird:

> ffmpeg -i Film.mkv  -map 0:v -map 0:a:0 -c:v libx264 -vf yadif,pad='max(iw\,ih*16/9):ow/16/9:(ow-iw)/2:(oh-ih)/2',scale='1024:576',setsar='1/1' -c:a libfaac -b:a 128k -ar 44100 -y Film.mp4

siehe auch: MP4 verlustbehaftet aus einem MKV erstellen

/home/http/wiki/data/attic/ffprobe.1460501401.txt · Zuletzt geändert: von 127.0.0.1