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

2008-02-27

Incluindo mapas do Google numa página

Os mapas do google podem ser incluidos numa página. O primeiro passo é pegar uma chave em http://code.google.com/apis/maps/signup.html, que vale para um diretório de um site e seus subdiretórios. Por exemplo, a chave para http://flaviobello.blogspot.com/ é:

ABQIAAAAw_p9eDbkwTneuB0--hXZcBS7fJfltfKGu7qGU5ECdwSrRGff1BQWDRxsX2R-gEP5DLDtVfsSpJ_Deg

Depois, deve-se incluir um mapa numa página. Há várias formas de fazer isso. Um mapa estático pode ser incluído de forma bastante simples:

  1. Imagem estática:

    <img width="400" height="300"
    src="http://maps.google.com/staticmap?
    center=-29.17,-51.52&
    zoom=14&
    size=300x200&
    key=ABQIAAAAw_p9eDbkwTneuB0--hXZcBS7fJfltfKGu7qGU5ECdwSrRGff1BQWDRxsX2R-gEP5DLDtVfsSpJ_Deg">

    Opções:

    • Tipo de mapa (padrão=roadmap)
      maptype=mobile


    • Marcadores (TamanhoCorAlfa={, mid, small, tiny}{black, brown, green, purple, yellow, blue, gray, orange, red, white}{, a..z})
      markers=-29.174656,-51.521947,greenp
      |-29.164749,-51.525981,bluee
      |-29.17,-51.526,yellow
      |-29.17,-51.524,midyellow
      |-29.17,-51.522,smallyellow
      |-29.17,-51.520,tinyyellow


    • Caminhos
      path=rgba:0x0000ff80,weight:5
      |-29.174656,-51.521947
      |-29.17,-51.526
      |-29.17,-51.520
      |-29.164749,-51.525981


    • Localização
      hl=cn





  2. Iframe embutido:

    <iframe width="400" height="300"
    src="http://maps.google.com/?
    ll=-29.17,-51.52&
    z=14&
    t=h&
    output=embed&
    ie=UTF8&
    s=AARTsJqzARj-Z8VnW5pkPMLMmZbqrJcYpw"></iframe>