2008-03-31

Formato MPEG-1

O Formato MPEG-1 é muito parecido com o MPEG-2. Segue a interpretação dos bits:

MPEG-1 PACK:

  • 0..3: 00 00 01 ba
  • 4..8: 0010SSS1 SSSSSSSS SSSSSSS1 SSSSSSSS SSSSSSS1
  • 9..11: 1RRRRRRR RRRRRRRR RRRRRRR1
S = SCR (System Clock Reference), 33 bits, 90 kHz
R = Multiplex Rate, 22 bits, unidades de 50 bits por segundo (> 0)

SYSTEM HEADER:

  • 0..3: 00 00 01 bb

END CODE:
  • 0..3: 00 00 01 b9

Fonte: http://www.andrewduncan.ws/MPEG/MPEG-1_Picts.html
http://neuron2.net/library/mpeg2/iso13818-1.pdf

(Obs: No MPEG-1 Pack, a multiplex rate não é x400, e sim x50 bits/s)

2008-03-21

Formato MPEG-2

Os arquivos MPEG-2 têm um formato que não é muito fácil de achar na Internet. Cada arquivo é formado por uma série de packs, de tipos diversos. Cada pack tem um header, seguido do seu conteúdo. O formato dos packs é o seguinte:

Pack header:

  • 0..3: 00 00 01 ba
  • 4..9: 01SSS1SS SSSSSSSS SSSSS1SS SSSSSSSS SSSSS1EE EEEEEEE1
  • 10..12: MMMMMMMM MMMMMMMM MMMMMM11
  • 13: xxxxxLLL
  • ?: ff ...
S = SCR (System Clock Reference), 33 bits, 90 kHz
E = SCR extension, 9 bits, 27 MHz (0-299, somado a SCR)
M = Program Mux Rate, 22 bits, unidades de 50 bits por segundo (> 0)
x = Reservado, 5 bits
L = Pack stuffing length, 3 bits: Número de bytes de enchimento (ff) que seguem

System header:
  • 0..3: 00 00 01 bb
  • 4..5: HHHHHHHH HHHHHHHH
  • 6..8: 1RRRRRRR RRRRRRRR RRRRRRR1
  • 9: AAAAAAFC
  • 10: LK1VVVVV
  • 11: Pxxxxxxx
  • ?: NLoop
H = Header length, 16 bits (número de bytes)
R = Rate bound, 22 bits
A = Audio bound, 6 bits
F = Fixed flag
C = CSPS flag
L = Audio lock flag
K = Video lock flag
V = Video bound, 5 bits
P = Packet rate restriction flag
x = Reservado, 7 bits

NLoop:
  • 0: IIIIIIII
  • 1..2: 11SZZZZZ ZZZZZZZZ
  • 3: IIIIIIII
  • 4..5: 11SZZZZZ ZZZZZZZZ
  • ...
I = Stream ID
S = P-STD buffer bound scale
Z = P-STD buffer size bound

http://www.ietf.org/mail-archive/web/avt/current/msg01807.html
http://www.cs.ucl.ac.uk/teaching/GZ05/10-system-streams.pdf
http://www.codeproject.com/KB/audio-video/program_stream_analyzer.aspx
http://osdir.com/ml/video.dvbcut.user/2006-01/msg00006.html
http://dvd.sourceforge.net/dvdinfo/index.html
http://en.wikipedia.org/wiki/Program_Stream
http://www.codeproject.com/KB/audio-video/mpegaudioinfo.aspx