Vivo: Difference between revisions

From MultimediaWiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(2 intermediate revisions by one other user not shown)
Line 6: Line 6:


[[Category:Container Formats]]
[[Category:Container Formats]]
[[Category: Formats missing in FFmpeg]]


Vivo files consist of a sequence of packets.
Vivo files consist of a sequence of packets.
Line 15: Line 14:


Known packet types are:
Known packet types are:
0: header
0: header
1: video (fixed length 128 unless prefixed)
1: video (fixed length 128 unless prefixed)
2: video
2: video
3: audio (fixed length 40 unless prefixed)
3: audio (fixed length 40 unless prefixed)
4: audio (fixed length 24 unless prefixed)
4: audio (fixed length 24 unless prefixed)
Each packet may be prefixed with 0x82 in which case the packet types marked as fixed length above have a packet length as well.
Each packet may be prefixed with 0x82 in which case the packet types marked as fixed length above have a packet length as well.


Line 30: Line 29:


But this is not sure since only header packets seem to be longer than 127 bytes?
But this is not sure since only header packets seem to be longer than 127 bytes?
Header packets are simply text with CRLF line-breaks, defining one "variable" per line in the form Name:Value

Latest revision as of 04:19, 6 December 2012

Proprietary web audio/video streaming format. Uses H.263 video and G.723 ADPCM audio (not the G.723.1 speech codec).

Vivo files consist of a sequence of packets.

Each packet starts with 4 bit packet type (see below). Then follows a 4 bit "sequence number". Packets with same packet number probably must be combined? If the packet is not fixed-size type, the packet length follows and after that the packet data.

Known packet types are:

0: header
1: video (fixed length 128 unless prefixed)
2: video
3: audio (fixed length 40 unless prefixed)
4: audio (fixed length 24 unless prefixed)

Each packet may be prefixed with 0x82 in which case the packet types marked as fixed length above have a packet length as well.

Packet length is probably coded in the way that the following code would decode:

len = 0
do
  c = get_byte();
  len = (len << 7) + (c & 0x7f)
while c & 0x80

But this is not sure since only header packets seem to be longer than 127 bytes?

Header packets are simply text with CRLF line-breaks, defining one "variable" per line in the form Name:Value