Bestimmen Sie die Video-Bitrate mit ffmpeg

8782
user2528012

Ich versuche, die Video-Bitrate (für die Transkodierung) mit dem Befehl ffmpeg zu ermitteln. Ich habe den folgenden Befehl versucht.

ffmpeg -i 28572615.wmv 

und es erzeugt die folgende Ausgabe

 Input #0, asf, from '28572615.wmv': Metadata: major_brand : isom minor_version : 1 compatible_brands: isomavc1 encoder : Lavf57.36.100 Duration: 00:02:50.92, start: 0.000000, bitrate: 1982 kb/s Stream #0:0: Video: wmv2 (WMV2 / 0x32564D57), yuv420p, 640x360, SAR 1:1 DAR 16:9, 25 fps, 25 tbr, 1k tbn, 1k tbc Stream #0:1: Audio: wmav2 (a[1][0][0] / 0x0161), 44100 Hz, 2 channels, fltp, 128 kb/s At least one output file must be specified 

Wenn ich ein anderes Video verwende

ffmpeg -i with_out_sound.mp4 

dann erhalte ich die folgende Ausgabe

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'with_out_sound.mp4': Metadata: major_brand : dash minor_version : 0 compatible_brands: iso6avc1mp41 creation_time : 2015-04-21 05:14:57 Duration: 00:00:27.86, start: 0.000000, bitrate: 500 kb/s Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 622x480 [SAR 1:1 DAR 311:240], 100 kb/s, 23.98 fps, 23.98 tbr, 90k tbn, 47.95 tbc (default) Metadata: creation_time : 2015-04-21 05:14:57 handler_name : VideoHandler At least one output file must be specified 

Der Punkt, den ich verwirrend finde, ist, dass ich in der Dauer-Metadatenzeile oder der Videostream-Metadatenzeile (Stream # 0: 0) nach Video-Bitrate suchen muss.

11
Wie groß ist die Dateigröße für die 2. Datei? Gyan vor 8 Jahren 0
@Mulvya 2nd Video Dateigröße beträgt 1.66 MB user2528012 vor 8 Jahren 0
Beide Messwerte sind also falsch - die tatsächliche Bitrate beträgt 61 kb / s. Dies liegt wahrscheinlich daran, dass es sich um ein DASH-Segment handelt. Gyan vor 8 Jahren 0
[Wie bestimmt ffmpeg die einzelnen Stream-Bitraten?] (Http://superuser.com/q/694062/615410) erläutert, wie die Raten bestimmt werden. creidhne vor 8 Jahren 0

1 Antwort auf die Frage

9
Gyan

Die Video-Bitrate wird in der Video-Stream-Info angezeigt. Die Formatinformationen enthalten die Bitrate für alle Streams plus Muxing-Overhead.

Wenn die Videobitrate fehlt, können Sie diesen Wert auf verschiedene Weise ermitteln, indem Sie die Bitrate aller anderen Streams von der Gesamtbitrate subtrahieren.

Wenn dies nicht möglich ist, müssen Sie ffprobe ausführen, um die Paketgrößen und die Stream-Dauer anzuzeigen und dann die Bitrate zu berechnen, indem Sie alle Zeilen außer der letzten summieren und durch den Wert in der letzten Zeile dividieren.

ffprobe -select_streams v -show_entries packet=size:stream=duration -of compact=p=0:nk=1 video.mp4 

Ausgabe:

4199  2627  1792  3921  2993  ...  2301  3076 2879 1543.00000 

Natürlich ist dies eine Lösung für den letzten Ausweg und nur anwendbar, wenn die Videostream-Info keine Bitrate aufweist und die Schätzung der Bitrate durch Abzinsung der Rate aller anderen Streams ebenfalls nicht möglich ist.