Projekte > MPEG-1/2 Video > Informationen sammeln

Multiplexter Video Stream

Hier sind werden die Informationen aus verschiedenen Quellen bezogen.

Im Packheader (MPEG-1, MPEG-2) ist die Multiplexbitrate enthalten. Im Systemheader (MPEG-1, MPEG-2) die maximale Multiplexbitrate sowie die Anzahl der Audio- und Videospuren. Die weiteren Eigenschaften stecken in den Elementar Streams (Video, Audio), welche in den Video- und Audio-Paketen verpackt sind. Dazu muss jeweils das erste Paket ausgewertet werden.

Die Spieldauer kann wiederum nicht direkt ausgelesen werden. Dafür kommen folgende Methoden in Frage:

  • Differenz aus der ersten und letzten System Clock Referenz eines Streams (hier des Video Streams).
  • Berechnung über die Bitrate.
  • Differenz aus dem ersten und letzten Presentation Time Stamp eines Streams (hier des Video Streams).

Desweiteren könnte man die Methoden für das elementare Video anwenden:

  • Näherungsweise als Differenz der Time Stamps aus dem ersten und letzten GOP Header ohne Berücksichtigung der Picture.
  • Differenz der Time Stamps aus dem ersten und letzten GOP Header unter Berücksichtigung des Anteiles der Picture sowie der Picture der letzten GOP.
  • Berechnung über die Bitrate.
  • Zählen aller Picture unter Beachtung der Framerate.

Ebenso die für das elementare Audio:

  • Berechnung über die Bitrate.
  • Bei AC3 könnten die Frames gezählt werden, deren Anzahl bereits im Header angegeben ist.

Die Methoden für die Elementarstreams setzen voraus, dass diese demuxt werden. Daraus ergeben sich ein paar Schwierigkeiten. Am einfachsten erscheint mir das Zählen der Frames. Die anderen Möglichkeiten werden vorerst aussen vor gelassen.

Für mein Beispielvideo sieht das Ergebnis so aus:

Die Datei ist ein Multiplextes MPEG-1 Video.

Packheader:
=====================================================
  Multiplexbitrate                -      1952400 b/s

Systemheader:
=====================================================
  Max. Multiplexbitrate           -      1952400 b/s
  Videospuren                     -            1, E0
  Audiospuren                     -            1, C0

Streams:
=====================================================

  VideoStream E0 - Sequenzheader:
  ----------------------------------------------------
  Bildbreite                      -          720
  Bildhöhe                        -          576
  Aspect Ratio                    - 0.9157 - 4:3, 625 line, PAL, CCIR601
  Framerate                       -       25,000 f/s
  Videobitrate                    -      1700000 b/s

  MPEG Audiostream C0 - Frameheader:
  ---------------------------------------------------
  MPEG-1 Layer                    -            2
  Audiobitrate                    -       224000 b/s
  Samplerate                      -        48000 Hz

Spieldauer über Bitrate:
=====================================================
  Bitrate                         -      1952400 b/s
  Dateigröße                      -     81379332 Byte
  ---------------------------------------------------
  Spieldauer (DG / BR * 8)        - 00:05:33,454

Spieldauer aus Systen Clock Reference:
=====================================================
  Erste System Clock Reference    - 00:00:00,000
  Letzte System Clock Reference   - 00:05:33,000
  ---------------------------------------------------
  Spieldauer (Differenz)          - 00:05:33,000

Spieldauer über Presentation Time Stamp:
=====================================================
  Erster Presentation Time Stamp  - 00:00:00,611
  Letzter Presentation Time Stamp - 00:05:33,531
  ---------------------------------------------------
  Spieldauer (Differenz)          - 00:05:32,920

Spieldauer über Frames:
=====================================================
  Framerate                       -       25,000 f/s
  Anzahl Frames                   -         8325
  ---------------------------------------------------
  Spieldauer (f / FR)             - 00:05:33,000

Bzw:

Die Datei ist ein Multiplextes MPEG-2 Video.

Packheader:
=====================================================
  Multiplexbitrate                -      2804800 b/s

Systemheader:
=====================================================
  Max. Multiplexbitrate           -      2804800 b/s
  Videospuren                     -            1, E0
  Audiospuren                     -            1, C0

Streams:
=====================================================

  Videostream E0 - Sequenzheader:
  ---------------------------------------------------
  Bildbreite                      -          720
  Bildhöhe                        -          576
  Aspect Ratio                    -          4:3
  Framerate                       -       25,000 f/s
  Videobitrate                    -      2500000 b/s

  MPEG Audiostream C0 - Frameheader:
  ---------------------------------------------------
  MPEG-1 Layer                    -            2
  Audiobitrate                    -       256000 b/s
  Samplerate                      -        48000 Hz

Spieldauer über Bitrate:
=====================================================
  Bitrate                         -      2804800 b/s
  Dateigröße                      -    116295684 Byte
  ---------------------------------------------------
  Spieldauer (DG / BR * 8)        - 00:05:31,705

Spieldauer aus Systen Clock Reference:
=====================================================
  Erste System Clock Reference    - 00:00:00,000
  Letzte System Clock Reference   - 00:05:32,972
  ---------------------------------------------------
  Spieldauer (Differenz)          - 00:05:32,972

Spieldauer über Presentation Time Stamp:
=====================================================
  Erster Presentation Time Stamp  - 00:00:00,823
  Letzter Presentation Time Stamp - 00:05:33,743
  ---------------------------------------------------
  Spieldauer (Differenz)          - 00:05:32,920

Spieldauer über Frames:
=====================================================
  Framerate                       -       25,000 f/s
  Anzahl Frames                   -         8325
  ---------------------------------------------------
  Spieldauer (f / FR)             - 00:05:33,000

Und hier ein DVB-Mitschnitt mit einer AC3-Tonspur.

Die Datei ist ein multiplextes MPEG-2 Video.

Packheader:
=====================================================
  Multiplexbitrate                -      6000000 b/s

Systemheader:
=====================================================
  Max. Multiplexbitrate           -      8000000 b/s
  Videospuren                     -            1, E0
  Audiospuren                     -            1, BD

Streams:
=====================================================

  Videostream E0 - Sequenzheader:
  ---------------------------------------------------
    Bildbreite                    -          720
    Bildhöhe                      -          576
    Aspect Ratio                  -         16:9
    Framerate                     -       25,000 f/s
    Videobitrate                  -      3648800 b/s

  Private Stream BD - AC3 Frameheader:
  ---------------------------------------------------
    Stream ID                     -           80
    Audiobitrate                  -       384000 b/s
    Samplerate                    -        48000 Hz

Spieldauer über Bitrate:
=====================================================
  Bitrate                         -      6000000 b/s
  Dateigröße                      -   4091978266 Byte
  ---------------------------------------------------
  Spieldauer (DG / BR * 8)        - 01:30:55,971

Spieldauer aus Systen Clock Reference:
=====================================================
  Erste System Clock Reference    - 00:00:01,200
  Letzte System Clock Reference   - 02:29:33,268
  ---------------------------------------------------
  Spieldauer (Differenz)          - 02:29:32,068

Spieldauer über Presentation Time Stamp:
=====================================================
  Erster Presentation Time Stamp  - 00:00:02,000
  Letzter Presentation Time Stamp - 02:29:34,040
  ---------------------------------------------------
  Spieldauer (Differenz)          - 02:29:32,040

Spieldauer über Frames:
=====================================================
  Framerate                       -       25,000 f/s
  Anzahl Frames                   -       224305
  ---------------------------------------------------
  Spieldauer (f / FR)             - 02:29:32,200

Spieldauer über AC3 Frames:
=====================================================
  Samplerate                      -        48000 Hz
  Anzahl Frames                   -       280375
  ---------------------------------------------------
  Spieldauer (f * 1536 / SR)      - 02:29:32,000

Fehlerbetrachtung

Die Genauigkeit der Ergebnisse über die System Clock Reference und die Presentation Time Stamps dürften vom Video und/oder vom Encoder abhängig sein. Während hier das mit dem TMPG Enc 2.5 encodete MPEG-1 bei der System Clock Reference genau die Spieldauer ergibt, sah es beim Cinemacraft Encoder Basic ein wenig anders aus.

In obigen Ergebnissen ist die Spieldauer über die System Clock Reference relativ genau. Die Differenz betrug in meinen Tests weniger als ein Frame. Möglicherweise könnte man die Spieldauer generell auf das nächste volle Frame aufrunden um ein genaues Ergebnis zu erhalten.

Über den Presentation Time Stamp ergibt sich bei meinem Beispielvideo eine um genau zwei Frames kürzere Spielzeit. Möglicherweise könnte man die noch auf den PTS folgenden Frames zählen.

Die Berechnung der Spieldauer über die Bitrate erweist sich als ungenau. Das ist nicht verwunderlich, da sie in 400 Bit/s-Einheiten angegeben wird. Beim DVB-Mitschnitt kommt hinzu, dass in der Datei verschiedene Bitraten verwendet werden.

Die Spieldauer über die AC3-Tonspur ist kaum kürzer als die gesamte.

Testprogramm

Mit diesem kleinen Testprogramm wird die oben genannte Auswertung vorgenommen.

MPEG Info 4 (168 kb) - MD5 (1 kb).
Stand: 07. Juni 2009