Wie würde man bei einer codierten Videodatei mit nicht konstanter Bitrate die Bitrate im Laufe der Zeit analysieren? Bisher habe ich ein altes Programm gefunden, das einen Bitrate-Plot erstellt, aber keines, das die Rohdaten der codierten Frames liefern kann.
Ich denke, Bitratendaten sollten generiert werden, indem die Größe einer Reihe von Frames gemittelt wird, die sich über 1 Sekunde erstrecken - dh Frames mit einem DTS, das zu diesem Intervall gehört. Ein 10-Sekunden-Video hätte also 10 Datenpunkte, die die Encoder-Eingangsbitrate beschreiben. Obwohl ich neugierig bin, alternative Methoden zur Berechnung der Bitrate zu hören.
Gibt es eine Möglichkeit, die Größe jedes (codierten) Frames zu ermitteln? vorzugsweise mit Windows-Software. Ich weiß, dass es für eine unkomprimierte Quelle trivial einfach ist (Auflösung * Bittiefe * Zeit).
Es macht keinen Sinn, in einem für MPEG-Videos typischen interkodierten Videostrom von der Größe eines kodierten Frames zu sprechen X
. I-Frames sind in sich abgeschlossen, aber P- und B-Frames sind vorhergesagte Frames, und das endgültige decodierte Ergebnis verwendet Daten von verschiedenen Eingängen. Andererseits kann die Größe einer einzelnen Bildergruppe (GOP) ein sinnvolles Maß sein.
Der FFmpeg-Segmenter in Kombination mit einem kompatiblen Demuxer kann den Videostream an GOP-Grenzen aufteilen. Indem Sie eine extrem niedrige Zeit für die Segmentgröße angeben, können Sie sicherstellen, dass jedes Segment 1 GOP enthält. Das Ausführen eines ffprobe auf jedem Segment liefert dann die Bitrate für diese GOP.
Ich habe den folgenden Befehl auf MP4s getestet, die 1) eine GOP mit variabler Größe, 2) ein intracodiertes Schema und 3) eine feste GOP mit ungewöhnlicher Länge (11 Frames) hatten, und jede Ausgabe hatte das erwartete Ergebnis.
ffmpeg -i input.mp4 -an -c:v copy -segment_time 0.00001 -f segment i%0d.mp4
Jedes Segment enthielt genau 1 I-Frame (jedes Segment der Intra-Eingabe enthielt insgesamt genau 1 Frame).
Wenn Sie ffprobe für jedes Segment ausführen, erhalten Sie einen Bitratenwert:
Duration: 00:00:00.37, start: 4.466016, bitrate: 1539 kb/s
Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p,
1280x720 [SAR 1:1 DAR 16:9], 1520 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
Das obige stammt aus der 11-Frame-GOP und hat eine Bitrate von 1520 kbps.
Gyan
jiggunjer
jiggunjer
Gyan