<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.multimedia.cx/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Roberto</id>
	<title>MultimediaWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.multimedia.cx/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Roberto"/>
	<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php/Special:Contributions/Roberto"/>
	<updated>2026-04-12T08:49:34Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.5</generator>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=SIFF&amp;diff=8716</id>
		<title>SIFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=SIFF&amp;diff=8716"/>
		<updated>2007-10-15T18:44:26Z</updated>

		<summary type="html">&lt;p&gt;Roberto: Link to samples&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extentions: vb, son&lt;br /&gt;
* Samples: http://samples.mplayerhq.hu/game-formats/SIFF/&lt;br /&gt;
&lt;br /&gt;
Certain PC games developed by [[Beam Software]] use a  multimedia format with the file signature 'SIFF'. The format can transport audio and video (which are .vb files) or just audio (which are .son files).&lt;br /&gt;
&lt;br /&gt;
== File Format ==&lt;br /&gt;
&lt;br /&gt;
The general fourcc chunk format is as follows:&lt;br /&gt;
&lt;br /&gt;
  bytes 0-3   chunk type&lt;br /&gt;
  bytes 4-7   chunk size (not including 8-byte chunk preamble and usually in MSB format)&lt;br /&gt;
  bytes 8..   chunk payload&lt;br /&gt;
&lt;br /&gt;
It is important to note that in the fourcc chunk preamble, the size field is big-endian. However, all other multi-byte numbers in the file are little-endian.&lt;br /&gt;
&lt;br /&gt;
A VB file begins with a 'SIFF' file signature, followed by the total length of the file, minus 8 bytes. Bytes 8-11 contain the version fourcc, e.g. 'VBV1'. Then comes the header, which is laid out as follows:&lt;br /&gt;
&lt;br /&gt;
  bytes 0-3    header fourcc ('VBHD')&lt;br /&gt;
  bytes 4-7    header length (should be 32 == 0x20)&lt;br /&gt;
  bytes 8-9    unknown, but might be header version&lt;br /&gt;
  bytes 10-11  video width&lt;br /&gt;
  bytes 12-13  video height&lt;br /&gt;
  bytes 14-17 zeroes&lt;br /&gt;
  bytes 18-19 number of frames&lt;br /&gt;
  bytes 20-21 bits per audio sample?&lt;br /&gt;
  bytes 22-23 audio sample rate&lt;br /&gt;
  bytes 24-39 zeroes&lt;br /&gt;
&lt;br /&gt;
All data is stored in 'BODY' chunk in blocks. Block format:&lt;br /&gt;
&lt;br /&gt;
  bytes 0-3   block size (with header)&lt;br /&gt;
  bytes 4-5  flags&lt;br /&gt;
  bytes 6..    block payload&lt;br /&gt;
&lt;br /&gt;
Flags meaning:&lt;br /&gt;
&lt;br /&gt;
  bit 0 - frame has global motion vector&lt;br /&gt;
  bit 2 - block contains audio&lt;br /&gt;
  bit 3 - block contains video&lt;br /&gt;
  bit 4 - palette change&lt;br /&gt;
  bit 5 - block has frame duration&lt;br /&gt;
&lt;br /&gt;
Global motion vector is stored as two signed words.&lt;br /&gt;
&lt;br /&gt;
Palette change data:&lt;br /&gt;
  &lt;br /&gt;
  byte 0 - start index&lt;br /&gt;
  byte 1 - number of entries to change&lt;br /&gt;
  bytes 2.. - RGB entry, 3 bytes per entry&lt;br /&gt;
&lt;br /&gt;
=== Video Frame Format ===&lt;br /&gt;
&lt;br /&gt;
Frame is divided into 4x4 blocks. Block type is stored in two bits, which are grouped into one byte for four consequent blocks.&lt;br /&gt;
&lt;br /&gt;
Block types:&lt;br /&gt;
* 0 - skip block&lt;br /&gt;
* 1 - motion compensated block, next byte contains motion vector (with values -8..7). If motion vector is zero then block is uncompressed and its data is contained in the next 16 bytes.&lt;br /&gt;
* 2 - block is filled with color stored in the next byte&lt;br /&gt;
* 3 - pattern fill, pattern method and value is stored in the next byte.&lt;br /&gt;
&lt;br /&gt;
Pattern type (for block type 3) is stores in high two bits, pattern index is stored in 6 low bits. Pattern type meanings:&lt;br /&gt;
* 0 - read 2 bytes and paint block with them&lt;br /&gt;
* 1 - read one bytes and paint only pixels where pattern bit is zero&lt;br /&gt;
* 2 - read one bytes and paint only pixels where pattern bit is one&lt;br /&gt;
* 3 - invalid value&lt;br /&gt;
&lt;br /&gt;
Motion compensation may wrap, i.e. pixels from the previous or next line may be read.&lt;br /&gt;
&lt;br /&gt;
There are 64 possible patterns:&lt;br /&gt;
&lt;br /&gt;
     0x0660, 0xFF00, 0xCCCC, 0xF000, 0x8888, 0x000F, 0x1111, 0xFEC8,&lt;br /&gt;
     0x8CEF, 0x137F, 0xF731, 0xC800, 0x008C, 0x0013, 0x3100, 0xCC00,&lt;br /&gt;
     0x00CC, 0x0033, 0x3300, 0x0FF0, 0x6666, 0x00F0, 0x0F00, 0x2222,&lt;br /&gt;
     0x4444, 0xF600, 0x8CC8, 0x006F, 0x1331, 0x318C, 0xC813, 0x33CC,&lt;br /&gt;
     0x6600, 0x0CC0, 0x0066, 0x0330, 0xF900, 0xC88C, 0x009F, 0x3113,&lt;br /&gt;
     0x6000, 0x0880, 0x0006, 0x0110, 0xCC88, 0xFC00, 0x00CF, 0x88CC,&lt;br /&gt;
     0x003F, 0x1133, 0x3311, 0xF300, 0x6FF6, 0x0603, 0x08C6, 0x8C63,&lt;br /&gt;
     0xC631, 0x6310, 0xC060, 0x0136, 0x136C, 0x36C8, 0x6C80, 0x324C&lt;br /&gt;
&lt;br /&gt;
== Games That Use The SIFF Format ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.mobygames.com/game/windows/kknd2-krossfire KKND2: Krossfire]&lt;br /&gt;
* [http://www.mobygames.com/game/dos/norse-by-norse-west-the-return-of-the-lost-vikings The Lost Vikings II] (a.k.a. Norse By Norse West: The Return of the Lost Vikings)&lt;br /&gt;
[[Category:Game Formats]]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Quotes&amp;diff=8642</id>
		<title>Quotes</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Quotes&amp;diff=8642"/>
		<updated>2007-09-30T22:16:30Z</updated>

		<summary type="html">&lt;p&gt;Roberto: /* #mplayerdev */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are some memorable quotes gathered from various MPlayer and FFmpeg related discussions. Beware of what you say, because it will be recorded, taken out of context and ridiculed!&lt;br /&gt;
&lt;br /&gt;
==IRC Channels==&lt;br /&gt;
&lt;br /&gt;
===#mplayerdev===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;ods15&amp;gt;    btw, gcc took 900mb of ram and then segfaulted for me when i tried to compile a 30mb C file :P&lt;br /&gt;
&amp;lt;ods15&amp;gt;    that took about 20 minutes until it evantually gave out of mem error&lt;br /&gt;
&amp;lt;ods15&amp;gt;    i should probably just write my own compiler than can do it in 0.05s and no ram...&lt;br /&gt;
&amp;lt;ShadowJK&amp;gt; can tcc compile it :)&lt;br /&gt;
&amp;lt;ods15&amp;gt;    ShadowJK, heh i should've tried that&lt;br /&gt;
* ods15 just makes a sample file and tries now&lt;br /&gt;
&amp;lt;ods15&amp;gt;    ahem, it did it in like 3 seconds and no ram :P&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;poirierg&amp;gt; great new ppl! I'm likely to get laid before linuxtag!&lt;br /&gt;
&amp;lt;poirierg&amp;gt; woops&lt;br /&gt;
&amp;lt;ods15&amp;gt;    ...&lt;br /&gt;
&amp;lt;poirierg&amp;gt; great new ppl! I'm likely to get laid out before linuxtag!&lt;br /&gt;
&amp;lt;dalias&amp;gt;   lol poirierg&lt;br /&gt;
&amp;lt;poirierg&amp;gt; budget cuts and stuff like that....&lt;br /&gt;
&amp;lt;dalias&amp;gt;   poirierg, oh&lt;br /&gt;
&amp;lt;dalias&amp;gt;   i read that as 'get laid'&lt;br /&gt;
&amp;lt;dalias&amp;gt;   and i was like wtf tmi&lt;br /&gt;
&amp;lt;ods15&amp;gt;    ja&lt;br /&gt;
&amp;lt;dalias&amp;gt;   the word is 'laid off' btw, not 'laid out'&lt;br /&gt;
&amp;lt;delewis&amp;gt;  haha.&lt;br /&gt;
&amp;lt;ods15&amp;gt;    so, wait, great?&lt;br /&gt;
&amp;lt;poirierg&amp;gt; okay, I'm getting laid off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;ods15&amp;gt; british is american with a sloppy accent, and much stupider curse words&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;poirierg&amp;gt; cartman, you don't see smart girls if you only watch pr0n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;superdump&amp;gt; Welcome to ye Olde #mplayerdev Tavern. If yaoi 'n' free cola is what ye be lookin' far, we's got 'em! Yarr...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;dalias&amp;gt;    because you can't use x264&lt;br /&gt;
&amp;lt;superdump&amp;gt; why not?&lt;br /&gt;
&amp;lt;dalias&amp;gt;    because the decoder is slower than gabu trying to get a girlfriend&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;dalias&amp;gt; h264 is like matroska&lt;br /&gt;
&amp;lt;dalias&amp;gt; yes mmatroska is better than avi but it sucks still&lt;br /&gt;
&amp;lt;dalias&amp;gt; hes h264 compresses better than mpeg4 but it sucks still&lt;br /&gt;
&amp;lt;dalias&amp;gt; and the question is: is 15% compression gain worth 500% performance drop?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;poirierg&amp;gt; do you know the difference between God and dalias ? ;)&lt;br /&gt;
&amp;lt;dalias&amp;gt;   god only tells you what's bad to do when you inhale from a burning bush&lt;br /&gt;
&amp;lt;dalias&amp;gt;   dalias tells you what's bad all the time&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;reynaldo&amp;gt; i was once atacked by one of those beast&lt;br /&gt;
&amp;lt;reynaldo&amp;gt; i was 4 years old iirc&lt;br /&gt;
&amp;lt;reynaldo&amp;gt; those birds have almost 4 meters measured from the extremes of their wings&lt;br /&gt;
&amp;lt;reynaldo&amp;gt; i have some stories you wouldnt believe :P&lt;br /&gt;
&amp;lt;reynaldo&amp;gt; i dont remember meeting any chilean atacked by a condor besides me&lt;br /&gt;
&amp;lt;reynaldo&amp;gt; :P&lt;br /&gt;
&amp;lt;reynaldo&amp;gt; i was once biten by a black widow too :P extremely hard to find spider&lt;br /&gt;
&amp;lt;reynaldo&amp;gt; nature has been trying to kill me since the day i born!&lt;br /&gt;
&amp;lt;reynaldo&amp;gt; :P&lt;br /&gt;
&amp;lt;iive&amp;gt;     i though condors doesn't attack humans.&lt;br /&gt;
&amp;lt;reynaldo&amp;gt; they dont&lt;br /&gt;
&amp;lt;reynaldo&amp;gt; thats the weirdest part&lt;br /&gt;
&amp;lt;reynaldo&amp;gt; :P&lt;br /&gt;
&amp;lt;iive&amp;gt;     well, then there is only one explanetion. you are not human.&lt;br /&gt;
* iive runs&lt;br /&gt;
&amp;lt;reynaldo&amp;gt; :P&lt;br /&gt;
&amp;lt;reynaldo&amp;gt; who knows&lt;br /&gt;
&amp;lt;reynaldo&amp;gt; maybe the karaoke filter is just the begining of my world domination plan&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;reynaldo&amp;gt; why dont you work with me improving the filter then ?&lt;br /&gt;
&amp;lt;poirierg&amp;gt; reynaldo, because I don't want to steel the paternity of your little toy&lt;br /&gt;
&amp;lt;reynaldo&amp;gt; thats not my boy&lt;br /&gt;
&amp;lt;reynaldo&amp;gt; everyone an his girlfriend facing the same problem solved it the same wahy&lt;br /&gt;
&amp;lt;reynaldo&amp;gt; we can make something neater&lt;br /&gt;
&amp;lt;reynaldo&amp;gt; :)&lt;br /&gt;
&amp;lt;poirierg&amp;gt; your are calling me to become the girlfriend of you audio filter?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;ods15&amp;gt; i'm waiting for someone to send me brains tommorrow, not much to do until then&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;snacky&amp;gt; h264-in-mpeg is standardized since 2003. if hd-dvd does it differently it's because they're stupid ;)&lt;br /&gt;
&amp;lt;iive&amp;gt; they do. thay are&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;KotH&amp;gt; Rathann: some nice quotes you have there :)&lt;br /&gt;
&amp;lt;Rathann&amp;gt; I know! ^_^&lt;br /&gt;
&amp;lt;Rathann&amp;gt; I've been collecting them for months&lt;br /&gt;
&amp;lt;KotH&amp;gt; and some i dont even remember typing ^^'&lt;br /&gt;
&amp;lt;Rathann&amp;gt; ^_^v&lt;br /&gt;
&amp;lt;Rathann&amp;gt; hehe&lt;br /&gt;
&amp;lt;Rathann&amp;gt; it's good to have logs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;phcoder&amp;gt; compiling svn:&lt;br /&gt;
&amp;lt;phcoder&amp;gt; allcodecs.c: In function 'avcodec_register_all':&lt;br /&gt;
&amp;lt;phcoder&amp;gt; allcodecs.c:67: error: 'ENABLE_DCA_DECODER' undeclared (first use in this function)&lt;br /&gt;
&amp;lt;phcoder&amp;gt; allcodecs.c:67: error: (Each undeclared identifier is reported only once&lt;br /&gt;
&amp;lt;phcoder&amp;gt; allcodecs.c:67: error: for each function it appears in.)&lt;br /&gt;
&amp;lt;phcoder&amp;gt; allcodecs.c:253: error: 'ENABLE_DCA_PARSER' undeclared (first use in this function)&lt;br /&gt;
&amp;lt;phcoder&amp;gt; Sorry forgot to configure&lt;br /&gt;
&amp;lt;KotH&amp;gt; dont forget make distclean&lt;br /&gt;
&amp;lt;Rathann&amp;gt; don't forget to use your brain&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;DonDiego&amp;gt; geez&lt;br /&gt;
&amp;lt;DonDiego&amp;gt; how many mistakes can you make in a single line of shell ..&lt;br /&gt;
&amp;lt;KotH&amp;gt; one per character&lt;br /&gt;
&amp;lt;DonDiego&amp;gt; i'm quite close ;)&lt;br /&gt;
&amp;lt;DonDiego&amp;gt; sundays after parties are not the best days for programming ;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;cartman&amp;gt; &amp;lt;poirierg&amp;gt; cartman, you don't see smart girls if you only watch pr0n&lt;br /&gt;
&amp;lt;dalias&amp;gt; :)&lt;br /&gt;
&amp;lt;cartman&amp;gt; this is all I get for reporting quality pr0n bugs&lt;br /&gt;
&amp;lt;dalias&amp;gt; cartman, it's what you get for making statements about girls being stupid&lt;br /&gt;
&amp;lt;cartman&amp;gt; dalias: girls are stupid anyway&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;ShadowJK&amp;gt; &amp;quot;I have to agree with Rich's supposed opinion here.  It is beyond mad.&amp;quot;&lt;br /&gt;
&amp;lt;ShadowJK&amp;gt; dalias, you've become quite efficient at flamewars, when you don't even need &lt;br /&gt;
to participate anymore, people just assume what you were going to say :)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;iive&amp;gt; btw does somebody know a way to get the xvid bitstream syntax number&lt;br /&gt;
&amp;lt;iive&amp;gt; the number that xvid put to identify what bugs they had when encoding it.&lt;br /&gt;
&amp;lt;Rathann&amp;gt; rtfs?&lt;br /&gt;
&amp;lt;iive&amp;gt; i ask if somebody knows&lt;br /&gt;
&amp;lt;iive&amp;gt; this is if nobody knows&lt;br /&gt;
&amp;lt;iive&amp;gt; fucker&lt;br /&gt;
&amp;lt;rxt&amp;gt; hehe, nothing changed on mplayer while I was away :)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;snacky&amp;gt; ugh... you guys should see how polite superdump is being to lusers on #ffmpeg . it's really disgusting&lt;br /&gt;
&amp;lt;superdump&amp;gt; :)&lt;br /&gt;
&amp;lt;snacky&amp;gt; what is it with polite people?! don't you realize you are making the rest of us look bad?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;KotH&amp;gt; i talked with an ubuntu guy here&lt;br /&gt;
&amp;lt;KotH&amp;gt; and the biggest problem they have is that upstream is uncooperative&lt;br /&gt;
&amp;lt;Rathann&amp;gt; is it?&lt;br /&gt;
&amp;lt;KotH&amp;gt; from their perspective yes&lt;br /&gt;
&amp;lt;Rathann&amp;gt; I haven't seen any patches from anyone @ubuntu&lt;br /&gt;
&amp;lt;Rathann&amp;gt; nor bugreports, for that matter&lt;br /&gt;
&amp;lt;KotH&amp;gt; well, replace upstream by downstream and you get the same in green&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;KotH&amp;gt; the biggest outcome of a 2h+ discussion was that both sites want to work with each other, but think it's impossible&lt;br /&gt;
&amp;lt;Rathann&amp;gt; why do they think we're uncooperative?&lt;br /&gt;
&amp;lt;Rathann&amp;gt; (obviously we aren't)&lt;br /&gt;
&amp;lt;KotH&amp;gt; well... have a look at our history&lt;br /&gt;
&amp;lt;ShadowJK&amp;gt; Obviously uncooperative. Refusing to integrate with gstreamer, copying libraries &lt;br /&gt;
randomly into source tree, breaking compilation with gcc2.96 on purpose, stuff doesn't compile with PIC, etc etc ;)&lt;br /&gt;
&amp;lt;KotH&amp;gt; yeah.. these points come into play too&lt;br /&gt;
&amp;lt;KotH&amp;gt; but that's a longer story&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;ShadowJK&amp;gt; You know, I don't think those MPlayer developers even go to church of Xiph every &lt;br /&gt;
week to worship a speedy emergence of Tarkin and ogm as the world dominating system&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;KotH&amp;gt; anyone here who has an understanding of x11?&lt;br /&gt;
&amp;lt;ods15&amp;gt; it shows graphics :P&lt;br /&gt;
&amp;lt;KotH&amp;gt; yeah, right&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;uau&amp;gt; i was already a better coder than most existing developers when i got involved with mplayer&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===#mplayer===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* KotH wants a point and click solution... w/o the click&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;Micksa&amp;gt; I'm reading about motion compensation&lt;br /&gt;
&amp;lt;Micksa&amp;gt; some of this is serious voodoo&lt;br /&gt;
&amp;lt;Micksa&amp;gt; I love it :)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;dtm&amp;gt; you're a free software pimp, Commn&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;Jan_&amp;gt; mplayer has a number of command line options that is large enough to overflow a 32-bit variable.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;iive&amp;gt; Commn: yeh.. usa people usually have problem with foregin languages like british, australian or canadian. :)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;CarlFK&amp;gt; how many gig is an hour of raw DV ?&lt;br /&gt;
&amp;lt;DogBoy&amp;gt; like from a porno?&lt;br /&gt;
&amp;lt;CarlFK&amp;gt; right&lt;br /&gt;
&amp;lt;DogBoy&amp;gt; just how raw are we talking&lt;br /&gt;
&amp;lt;CarlFK&amp;gt; right from the cam corder's firewire&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;dtm&amp;gt; Commn: i read all of your wiki page and you forgot the final entry for &amp;quot;and seek professional &lt;br /&gt;
  help immediately for the mental illness that either&lt;br /&gt;
   1) made you want to follow all these steps for lazy, codependent fools on irc or&lt;br /&gt;
   2) that you WILL HAVE after faithfully trying to implement all these steps for a week&amp;quot;&lt;br /&gt;
&amp;lt;dtm&amp;gt; http://mfrost.typepad.com/photos/uncategorized/gaaallllgh.jpg    that big dog is the cumulative laziness of a lot&lt;br /&gt;
      of irc users   the medium sized cat is Commn     and the one watching, frozen in horror, is me&lt;br /&gt;
&amp;lt;dtm&amp;gt; now is that a normal response for a cat who has a self preservation instinct?  i think not.&lt;br /&gt;
&amp;lt;dtm&amp;gt; HE LIKES IT!&lt;br /&gt;
&amp;lt;Commn&amp;gt; dtm : haha how long did it take to find that picture?&lt;br /&gt;
&amp;lt;dtm&amp;gt; Commn: somebody gave it to me and i kept it in a firefox tab all week coz it's so awesome coz&lt;br /&gt;
      I KNEW IT WOULD HAVE A GREAT PURPOSE&lt;br /&gt;
&amp;lt;dtm&amp;gt; Commn: since you asked for feedback, i'll say that you're extraordinarily diligent and conscientious, and&lt;br /&gt;
      the minority of that content is directly relevant to mplayer, and the majority is relevant to a &amp;quot;how to ask&lt;br /&gt;
      questions the smart way&amp;quot; type of document if not being totally redundant thereof&lt;br /&gt;
&amp;lt;dtm&amp;gt; you are a gentleman and a scholar, and true patriot&lt;br /&gt;
&amp;lt;sacarasc&amp;gt; dtm is cute when he is adoring someone&lt;br /&gt;
&amp;lt;Commn&amp;gt; dtm : yes, its a modified 'how to ask questions' docu&lt;br /&gt;
&amp;lt;Commn&amp;gt; its lame tho&lt;br /&gt;
&amp;lt;Commn&amp;gt; i might delete it &lt;br /&gt;
&amp;lt;Rathann&amp;gt; dtm is such a clear case of user-support-induced insanity that I wonder why I am still sane sometimes...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;pianoboy3333&amp;gt; how long does mplayer take to compile?&lt;br /&gt;
&amp;lt;dtm&amp;gt; how long til the Point of Know Return?&lt;br /&gt;
&amp;lt;pianoboy3333&amp;gt; ...&lt;br /&gt;
&amp;lt;dtm&amp;gt; i'm sorry, was that question not as dumb as yours?  oh well i tried!&lt;br /&gt;
&amp;lt;dtm&amp;gt; &amp;lt;3&lt;br /&gt;
&amp;lt;iive&amp;gt; dtm: you are starting to sound like me.&lt;br /&gt;
&amp;lt;dtm&amp;gt; Hmmmm.&lt;br /&gt;
* dtm commits honorable ninja suicide&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;Erb&amp;gt; Does anyone know how to launch the GUI MPlayer in Linux via PHP (in Firefox)? I can run MPlayer scripts&lt;br /&gt;
      in the background fine. I only need to do this for local videos for an application I'm building.&lt;br /&gt;
* dtm throws his brain into a blender in an attempt to comprehend Erb's question but fails sadly&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;dtm&amp;gt; tell me what i want to know, and nobody gets hurst.&lt;br /&gt;
&amp;lt;dtm&amp;gt; hurt.&lt;br /&gt;
&amp;lt;Rathann&amp;gt; o_O&lt;br /&gt;
&amp;lt;dtm&amp;gt; i'm feeling like the giant cactus wants to be plastered in ascii screenshots&lt;br /&gt;
&amp;lt;dtm&amp;gt; I MUST COMPLY&lt;br /&gt;
&amp;lt;dtm&amp;gt; HELP ME DO THIS, Rathann&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;DazBrum&amp;gt; what is the channel for developers&lt;br /&gt;
&amp;lt;--     DazBrum has quit ()&lt;br /&gt;
&amp;lt;dtm&amp;gt; lols&lt;br /&gt;
&amp;lt;dtm&amp;gt; i think i'll spare them from that&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;netstat&amp;gt; how come mplayer eating memory&lt;br /&gt;
&amp;lt;netstat&amp;gt; it uses up to 90% cpu&lt;br /&gt;
&amp;lt;dtm&amp;gt; must be a good movie&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;cappicard&amp;gt; o/~ Ich versteh euch nicht! o/~&lt;br /&gt;
&amp;lt;dtm&amp;gt; i'm sorry cappicard i dont speak satanic&lt;br /&gt;
&amp;lt;cappicard&amp;gt; LOL&lt;br /&gt;
&amp;lt;cappicard&amp;gt; it's just German&lt;br /&gt;
&amp;lt;dtm&amp;gt; yeah but not when they're singing it.&lt;br /&gt;
&amp;lt;cappicard&amp;gt; heh :)&lt;br /&gt;
&amp;lt;iive&amp;gt; cappicard: isn't it the same&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;gioele&amp;gt; How come that I get a 35 minutes MP3 from a 5 minutes FLV video with -dumpaudio?&lt;br /&gt;
&amp;lt;Compn&amp;gt; aliens beaming audio into your mp3&lt;br /&gt;
&amp;lt;spuck00&amp;gt; ^^&lt;br /&gt;
&amp;lt;gioele&amp;gt; Compn: time to call SETI?&lt;br /&gt;
&amp;lt;Compn&amp;gt; yep&lt;br /&gt;
&amp;lt;Compn&amp;gt; if the aliens are peaceful, say hello&lt;br /&gt;
&amp;lt;Compn&amp;gt; if they are aggressive, look out!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* richard___ wonders why so many people join this channel for no apparent purpose&lt;br /&gt;
&amp;lt;rsk&amp;gt; they share the love of mplayer ;-(&lt;br /&gt;
&amp;lt;sacarasc&amp;gt; i have a purpose&lt;br /&gt;
&amp;lt;richard___&amp;gt; I wasn't implying that there's anything wrong with it :)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;rms&amp;gt; please tell me how to use dd_rescue&lt;br /&gt;
&amp;lt;KotH&amp;gt; RTFM&lt;br /&gt;
&amp;lt;rms&amp;gt; and what  special will it do, except regular copy?&lt;br /&gt;
&amp;lt;KotH&amp;gt; RTFM&lt;br /&gt;
&amp;lt;rms&amp;gt; RTFM?&lt;br /&gt;
&amp;lt;KotH&amp;gt; the manual says everything oyu need to know&lt;br /&gt;
&amp;lt;KotH&amp;gt; read the fucking manual&lt;br /&gt;
&amp;lt;rms&amp;gt; oh ok&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;iive&amp;gt; -dumpvideo&lt;br /&gt;
&amp;lt;LinuxCart&amp;gt; umm, that's a good idea. i'll try that.&lt;br /&gt;
&amp;lt;LinuxCart&amp;gt; thank you iive&lt;br /&gt;
&amp;lt;KotH&amp;gt; LinuxCart: if in doubt, it's iive's fault ;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;LinuxCart&amp;gt; how could this be explained?&lt;br /&gt;
&amp;lt;iive&amp;gt; it just another of dv misteries&lt;br /&gt;
&amp;lt;iive&amp;gt; it's KotH fault.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;LinuxMafia&amp;gt; how can i turn on language and sub&lt;br /&gt;
&amp;lt;KotH&amp;gt; RTFM&lt;br /&gt;
&amp;lt;LinuxMafia&amp;gt; KotH, using debian or freebsd?&lt;br /&gt;
&amp;lt;KotH&amp;gt; LinuxCart: doesnt matter, the FM is OS idenpedent&lt;br /&gt;
&amp;lt;LinuxCart&amp;gt;  KotH: is RTFM some dialect to say it's iive fault :P&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;ChaosR&amp;gt; MPlayer 1.0rc1-4.1.2-DFSG-free &amp;lt;- my version&lt;br /&gt;
&amp;lt;ChaosR&amp;gt; is it out of date&lt;br /&gt;
&amp;lt;mjunx&amp;gt; of course&lt;br /&gt;
&amp;lt;mjunx&amp;gt; if it wasn't built like within an hour ago at any given time, it's usually out of date&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;Fatsobob&amp;gt; trying to get mplayer to play win32 on ubuntu makes me want to shoot myself&lt;br /&gt;
&amp;lt;Fatsobob&amp;gt; mostly because ubuntu is all &amp;quot;totem this&amp;quot; and &amp;quot;totem that&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;Quintin&amp;gt; Is there any reason to use opengl vo device?&lt;br /&gt;
&amp;lt;sacarasc&amp;gt; nope&lt;br /&gt;
&amp;lt;Quintin&amp;gt; what's it there for?&lt;br /&gt;
&amp;lt;sacarasc&amp;gt; because you might want to use it...&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;reimar&amp;gt; sacarasc: is there any reason why I should think what you just said makes sense? ;-)&lt;br /&gt;
&amp;lt;sacarasc&amp;gt; reason and what people want are not always the same&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;Commn&amp;gt; iive : dont call mplayer users dumb&lt;br /&gt;
&amp;lt;Commn&amp;gt; not to their faces anyhow&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;Agiofws&amp;gt; has anyone tried cinerella ?&lt;br /&gt;
&amp;lt;Agiofws&amp;gt; i think it great &lt;br /&gt;
&amp;lt;Kunalagon&amp;gt; I tried , and I thin 80 % does not work&lt;br /&gt;
&amp;lt;MisT_&amp;gt; never get compiled here&lt;br /&gt;
&amp;lt;Kunalagon&amp;gt; it has more bugs than my shelter&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;voltagex&amp;gt; ArneB: at one stage I was able to do the maths to crack CSS on paper :P&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;ArneB&amp;gt; voltagex: Obviously your mind and paper are illegal.&lt;br /&gt;
&amp;lt;ArneB&amp;gt; Better hand them over to the MPAA.&lt;br /&gt;
&amp;lt;voltagex&amp;gt; I think you could sneeze and accidentally crack CSS&lt;br /&gt;
&amp;lt;voltagex&amp;gt; yep&lt;br /&gt;
&amp;lt;voltagex&amp;gt; no more pencils&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;danny500&amp;gt; how do I convert a ogm file into an mpeg file using mencoder?&lt;br /&gt;
&amp;lt;danny500&amp;gt; anyone&amp;gt;&lt;br /&gt;
&amp;lt;danny500&amp;gt; hello?&lt;br /&gt;
&amp;lt;danny500&amp;gt; ?&lt;br /&gt;
&amp;lt;danny500&amp;gt; help&lt;br /&gt;
&amp;lt;BenrA&amp;gt; mencoder -of mpeg -oac lavc -ovc lavc -lavcopts vcodec=mpeg2video -o foo.mpg foo.ogm&lt;br /&gt;
&amp;lt;danny500&amp;gt; ?&lt;br /&gt;
&amp;lt;BenrA&amp;gt; If you want quality and/or DVD compatibility or anything, consult the docs. ;)&lt;br /&gt;
&amp;lt;danny500&amp;gt; ok that was confusing&lt;br /&gt;
&amp;lt;danny500&amp;gt; file equals = file:///home/danny500/Trigun/Trigun%20-%201%20-%20The%20%24%2460%20Billion%20Man &lt;br /&gt;
&amp;lt;danny500&amp;gt; now, rewrite that code so that It'll work&lt;br /&gt;
&amp;lt;danny500&amp;gt; well then?&lt;br /&gt;
&amp;lt;BenrA&amp;gt; What is your problem?&lt;br /&gt;
&amp;lt;housetier&amp;gt; I'd try replacing &amp;quot;foo.ogm&amp;quot; with /home/danny500/Trigun/Trigun%20-%201%20-%20The%20%24%2460%20Billion%20Man &lt;br /&gt;
(if that is the real file name), and see how far it goes&lt;br /&gt;
&amp;lt;danny500&amp;gt; fine then, don't help me, I'll go to a room where I'll actually get help. Fucking assholes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;crackedboy&amp;gt; hi, can I ask something about kmplayer?&lt;br /&gt;
&amp;lt;md`&amp;gt; no&lt;br /&gt;
&amp;lt;crackedboy&amp;gt; ok, sorry&lt;br /&gt;
&amp;lt;md`&amp;gt; you're forgiven&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;CHodapp&amp;gt; I have a program that's basically just generating RGB data for a framebuffer. &lt;br /&gt;
&amp;lt;CHodapp&amp;gt; I'm having major issues figuring out how to get this data to an encoded video.&lt;br /&gt;
&amp;lt;CHodapp&amp;gt; ffmpeg seems to only want some particular kind of YUV&lt;br /&gt;
&amp;lt;CHodapp&amp;gt; can I make mencoder handle raw RGB or raw YUV or anything like that?&lt;br /&gt;
&amp;lt;Commn&amp;gt; its easier to get it working with mplayer, to see what options you need&lt;br /&gt;
&amp;lt;Commn&amp;gt; mplayer file -demuxer rawvideo -vc rawbgr16&lt;br /&gt;
&amp;lt;Commn&amp;gt; etc&lt;br /&gt;
&amp;lt;Commn&amp;gt; then you can do mencoder with those opts&lt;br /&gt;
&amp;lt;Commn&amp;gt; or maybe even mplayer -vo yuv4mpeg , which ffmpeg probably accepts &lt;br /&gt;
&amp;lt;Commn&amp;gt; maybe even use a named pipe... mkfifo stream.yuv &amp;amp;&amp;amp; ffmpeg -i stream.yuv -options ...&lt;br /&gt;
&amp;lt;CHodapp&amp;gt; ugh, documentation is so sparse on stuff like this&lt;br /&gt;
&amp;lt;CHodapp&amp;gt; ugh, why is this such a pain in the ass, with everything&lt;br /&gt;
&amp;lt;CHodapp&amp;gt; hrm, maybe rawrgb24 is what I need&lt;br /&gt;
&amp;lt;Commn&amp;gt; what part is sparse?&lt;br /&gt;
&amp;lt;Commn&amp;gt; if you tell us, we can improve mplayer docs&lt;br /&gt;
&amp;lt;CHodapp&amp;gt; well, not so much in mplayer as everything else I've tried... I was mostly searching on &lt;br /&gt;
the web to get some clue of how I'd convert what kind of raw input to encoded output&lt;br /&gt;
&amp;lt;Commn&amp;gt; mplayer -vc help|grep raw&lt;br /&gt;
&amp;lt;Commn&amp;gt; will show what raw codecs mplayer has&lt;br /&gt;
&amp;lt;CHodapp&amp;gt; Yeah, I just now found that&lt;br /&gt;
&amp;lt;CHodapp&amp;gt; blah . . . Cannot find codec matching selected -vo and .video format 0x30323449.&lt;br /&gt;
&amp;lt;Commn&amp;gt; CHodapp : try -vc +rawrgb32 or whatnot&lt;br /&gt;
&amp;lt;Commn&amp;gt; just add + in front of it &lt;br /&gt;
&amp;lt;CHodapp&amp;gt; then it says the selected video_out device is incompatible with this codec&lt;br /&gt;
&amp;lt;CHodapp&amp;gt; tried sdl and x11&lt;br /&gt;
&amp;lt;Commn&amp;gt; if you can make a small sample of your file&lt;br /&gt;
&amp;lt;Commn&amp;gt; dd if=input of=output count=3 bs=1024k&lt;br /&gt;
&amp;lt;Commn&amp;gt; i can try to get it working in mplayer&lt;br /&gt;
&amp;lt;CHodapp&amp;gt; you might as well just take 640*480*3*100 bytes of data from /dev/urandom and try &lt;br /&gt;
that... it will be functionally equivalent&lt;br /&gt;
&amp;lt;CHodapp&amp;gt; I'm using this right now:  mplayer -rawvideo w=640:h=480 -demuxer rawvideo -vc +rawrgb24 -vo sdl temp.rgb&lt;br /&gt;
&amp;lt;Commn&amp;gt; whats random got to do with it ?&lt;br /&gt;
&amp;lt;CHodapp&amp;gt; it's just a bunch of bytes, completely unorganized, and mplayer needs to know the resolution&lt;br /&gt;
&amp;lt;CHodapp&amp;gt; it doesn't care about the contents&lt;br /&gt;
&amp;lt;CHodapp&amp;gt; something else is wrong, otherwise I'd be getting something on the screen&lt;br /&gt;
&amp;lt;Commn&amp;gt; if you give me some file i can help&lt;br /&gt;
&amp;lt;Commn&amp;gt; otherwise its hard to debug from here ;p&lt;br /&gt;
&amp;lt;CHodapp&amp;gt; www.uc.edu/~hodappcm/temp2.rgb&lt;br /&gt;
&amp;lt;CHodapp&amp;gt; not the most coherent video, but you won't find that out unless you get something on the screen&lt;br /&gt;
&amp;lt;CHodapp&amp;gt; it's 320x240, 10 frames worth&lt;br /&gt;
&amp;lt;Commn&amp;gt; what program generates it ?&lt;br /&gt;
&amp;lt;CHodapp&amp;gt; just something I'm writing. it's all procedural.&lt;br /&gt;
&amp;lt;Commn&amp;gt; i'm trying to remember why it defaults to i420&lt;br /&gt;
&amp;lt;CHodapp&amp;gt; i420? like yuv?&lt;br /&gt;
&amp;lt;Commn&amp;gt; ya&lt;br /&gt;
&amp;lt;CHodapp&amp;gt; definitely shouldn't be yuv...&lt;br /&gt;
&amp;lt;Commn&amp;gt; i know, mplayer -rawvideo is defaulting to that&lt;br /&gt;
&amp;lt;CHodapp&amp;gt; hmm&lt;br /&gt;
&amp;lt;CHodapp&amp;gt; still no output?&lt;br /&gt;
&amp;lt;Commn&amp;gt; CHodapp : something like this didnt work ? ffmpeg -f rawvideo -pix_fmt rgb24&lt;br /&gt;
&amp;lt;CHodapp&amp;gt; couldn't find codec parameters...&lt;br /&gt;
&amp;lt;CHodapp&amp;gt; wait, I forgot the size&lt;br /&gt;
&amp;lt;Commn&amp;gt; haha more static&lt;br /&gt;
&amp;lt;CHodapp&amp;gt; what commandline did you use?&lt;br /&gt;
&amp;lt;Commn&amp;gt; ffplay -f rawvideo -pix_fmt rgb24 -s 320x240 temp2.rgb&lt;br /&gt;
&amp;lt;CHodapp&amp;gt; wonder if my endianness is wrong...&lt;br /&gt;
&amp;lt;Commn&amp;gt; is it black frames ?&lt;br /&gt;
&amp;lt;Commn&amp;gt; ffplay -f rawvideo -pix_fmt bgr32 -s 320x240 temp2.rgb&lt;br /&gt;
&amp;lt;Commn&amp;gt; CHodapp : http://64.233.167.104/search?q=cache:0o70XuNe5QkJ:www.kingcot.eclipse.co.uk/unichrome/tvoutTest.html+mplayer+rawvideo+rgb&amp;amp;hl=en&amp;amp;ct=clnk&amp;amp;cd=50&amp;amp;gl=us&amp;amp;client=opera&lt;br /&gt;
&amp;lt;Commn&amp;gt; CHodapp : there is an app on that page which generates rgb data&lt;br /&gt;
&amp;lt;CHodapp&amp;gt; yeah...&lt;br /&gt;
&amp;lt;CHodapp&amp;gt; by the way, I just sent you data from /dev/urandom&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;Jan-&amp;gt; Just so you know, you do realise, the reason we're after using mplayer is because it's f@&amp;amp;^@ng brilliant.&lt;br /&gt;
&amp;lt;Jan-&amp;gt; It plays, as they say, *.&lt;br /&gt;
&amp;lt;Jan-&amp;gt; It'd play a bucket of cornflour if you painted the word &amp;quot;MOVIE&amp;quot; on it.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mailing lists==&lt;br /&gt;
&lt;br /&gt;
===[http://lists.mplayerhq.hu/mailman/listinfo/mplayer-cvslog mplayer-cvslog]===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; btw, anyone has a copy of the ISO-english spec? ;)&lt;br /&gt;
&lt;br /&gt;
Ok. :)&lt;br /&gt;
&lt;br /&gt;
1. There isn't a spec, since the language hasn't been standardized. All&lt;br /&gt;
we have are numerous competing drafts written by independent,&lt;br /&gt;
non-authoritative organizations.&lt;br /&gt;
&lt;br /&gt;
2. A large amount of existing English code, such as Shakespeare, is&lt;br /&gt;
unparseable by modern English speakers.&lt;br /&gt;
&lt;br /&gt;
3. If an element of the language has been frequently misused over a long&lt;br /&gt;
enough period of time, such misuse often becomes acceptable.&lt;br /&gt;
&lt;br /&gt;
4. An English speaker can be considered reasonably feature-complete even&lt;br /&gt;
if such speaker only recognizes a small subset of the language.&lt;br /&gt;
&lt;br /&gt;
5. Certain keywords tend to cause internal compiler errors. Such&lt;br /&gt;
keywords are known as &amp;quot;profanity&amp;quot;, and existing English speakers weakly&lt;br /&gt;
attempt to prevent recently-written speakers from being aware of them.&lt;br /&gt;
&lt;br /&gt;
6. English is a highly context dependent. Many keywords, when used in&lt;br /&gt;
their own particular context, take on an entirely illogical meaning.&lt;br /&gt;
These &amp;quot;idioms&amp;quot; cause compilation errors, especially when an old speaker&lt;br /&gt;
is attempting to communicate with a new one.&lt;br /&gt;
&lt;br /&gt;
7. ....&lt;br /&gt;
&lt;br /&gt;
I could go on, but that's enough fun for now. :)&lt;br /&gt;
-- Michael Niedermayer and Corey Hickey in mplayer-cvslog at mplayerhq.hu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[http://lists.mplayerhq.hu/mailman/listinfo/mplayer-dev-eng mplayer-dev-eng]===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Without a frontend, mplayer is useless.&lt;br /&gt;
-- Jean-Philippe Guillemin in mplayer-dev-eng at mplayerhq.hu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[about alsa resampler]&lt;br /&gt;
Now why on earth would anyone want to use this crap?? It's only&lt;br /&gt;
configurable between two extremes of sucking: very bad quality, or&lt;br /&gt;
very bad performance.&lt;br /&gt;
-- Rich Felker in mplayer-dev-eng at mplayerhq.hu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Reinventing the wheel certainly is annoying, but as long as all other&lt;br /&gt;
wheels are square...&lt;br /&gt;
&lt;br /&gt;
Reimar Döffinger&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
On Thu, Aug 24, 2006 at 01:10:18PM -0400, Dave Dodge wrote:&lt;br /&gt;
&amp;gt; IA64 compilation is an ongoing research project.&lt;br /&gt;
&lt;br /&gt;
Which is what leaves me always wondering where on earth (or actually far&lt;br /&gt;
away from earth) Intel engineers left their brains when designing&lt;br /&gt;
IA64...&lt;br /&gt;
Technology for the next century. As in we will get it to work properly&lt;br /&gt;
somewhen in the next century...&lt;br /&gt;
&lt;br /&gt;
Reimar Döffinger&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[http://lists.mplayerhq.hu/mailman/listinfo/mplayer-users mplayer-users]===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; &amp;gt; yes, video decoding is not perfect either so even if u decode the bitstream u &lt;br /&gt;
&amp;gt; &amp;gt; loose quality (idct inaccuracies and such) so u should really use a hexeditor &lt;br /&gt;
&amp;gt; &amp;gt; instead of mplayer to view ur movies&lt;br /&gt;
&amp;gt;&lt;br /&gt;
&amp;gt; Perhaps we could rewrite xmatrix so it takes its input from AVI&lt;br /&gt;
&amp;gt; files...&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Do you always look at it encoded?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Well ya have to. The video codecs work FOR the construct program. But&lt;br /&gt;
there's way too much information to decode this DIVX. You get used to&lt;br /&gt;
it -- I don't even see the code. All I see is blonde, brunette,&lt;br /&gt;
redhead...&amp;quot;&lt;br /&gt;
-- Michael Niedermayer, Moritz Bunkus and D Richard Felker III in mplayer-users at mplayerhq.hu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; Is there any possibility to convert a Ream Media video stream to&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; ogg/theora video?&lt;br /&gt;
&amp;gt;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt; no, ogg is banned for good from the list of possible outputs for&lt;br /&gt;
&amp;gt;&amp;gt; manifest insanity&lt;br /&gt;
&amp;gt;&lt;br /&gt;
&amp;gt; Thank you for your answer, but can you be more specific?&lt;br /&gt;
&lt;br /&gt;
ogg is by far the most insane mux format ever conceived,&lt;br /&gt;
thus no conscious coder wants to permit to give birth to an abomination&lt;br /&gt;
like that&lt;br /&gt;
-- Marek Mahut and Nico Sabbi in mplayer users at mplayerhq.hu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; &amp;gt; &amp;gt; 1. ok, true, I wanted to say mad TAG right ?  How can I get this&lt;br /&gt;
&amp;gt; &amp;gt; &amp;gt; to MP3 tag ?&lt;br /&gt;
&amp;gt; &amp;gt;&lt;br /&gt;
&amp;gt; &amp;gt; There is no such thing as a MAD tag.  MAD only plays MP1/MP2/MP3. &lt;br /&gt;
&amp;gt; &amp;gt; Your file has to have one of those as the audio track for MAD to be&lt;br /&gt;
&amp;gt; &amp;gt; able to play it at all.  You also didn't read the rest of my post.&lt;br /&gt;
&amp;gt;&lt;br /&gt;
&amp;gt; MAD audio codec then ?&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
I'd love to help, but I have to go bang my head against that wall over&lt;br /&gt;
there...&lt;br /&gt;
-- wim delvaux and RC in mplayer-users at mplayerhq.hu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Tobias Damisch wrote:&lt;br /&gt;
&amp;gt; Guillaume Poirier wrote:&lt;br /&gt;
&amp;gt; &amp;gt; MPlayer still lacks &amp;quot;fairies&amp;quot; support to invent the pixels in between,&lt;br /&gt;
&amp;gt; &amp;gt; needed to get a truly HD picture.&lt;br /&gt;
&amp;gt;&lt;br /&gt;
&amp;gt; Just get latest SVN and recompile with:&lt;br /&gt;
&amp;gt;&lt;br /&gt;
&amp;gt; --enable-fairies&lt;br /&gt;
&amp;gt;&lt;br /&gt;
&amp;gt; Then try adding -vf fscale=1600:1200 (or any other resolution you&lt;br /&gt;
&amp;gt; might desire) to your command line.&lt;br /&gt;
&lt;br /&gt;
Gentoo's latest mplayer ebuild is apparently an SVN snapshot from&lt;br /&gt;
08/10/2006 and doesn't seem to include a fairies USE flag for&lt;br /&gt;
compilation.  Was fairies support added after that date, or is the&lt;br /&gt;
ebuild missing a USE flag?&lt;br /&gt;
&lt;br /&gt;
Grant&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[http://lists.mplayerhq.hu/mailman/listinfo/ffmpeg-cvslog ffmpeg-cvslog]===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt; I'm sure Michael knows how to capitalize and punctuate at&lt;br /&gt;
&amp;gt;&amp;gt; least a little bit.&lt;br /&gt;
&amp;gt; thats defamation, ive never capitalized and punktuated correctly&lt;br /&gt;
&amp;gt; besides that i dont like pure capitalism ;)&lt;br /&gt;
I NEVER ASKED YOU TO WRITE LIKE THIS.&lt;br /&gt;
-- Måns Rullgård and Michael Niedermayer in ffmpeg-cvslog at mplayerhq.hu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Michael Niedermayer CVS &amp;lt;michael@mplayerhq.hu&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Modified Files:&lt;br /&gt;
       ffmpeg-doc.texi&lt;br /&gt;
Log Message:&lt;br /&gt;
split string to avoid buffer overflow in native english speaking persons (fix suggested by The Wanderer)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
On Mon, Dec 26, 2005 at 09:57:36PM +0100, Alexander Strasser wrote:&lt;br /&gt;
&amp;gt;   Oh, I just saw it was in the original mail. I must have&lt;br /&gt;
&amp;gt; accidently deleted it while writing the answer. Sorry for&lt;br /&gt;
&amp;gt; the trouble.&lt;br /&gt;
&lt;br /&gt;
no problem at all, better to ask then to miss some typos by the CIA/KGB guys&lt;br /&gt;
who edit all my outgoing and incoming mails&lt;br /&gt;
&lt;br /&gt;
Michael&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[http://lists.mplayerhq.hu/mailman/listinfo/ffmpeg-devel ffmpeg-devel]===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; All right, new screening process for prospective FFmpeg contributors:&lt;br /&gt;
&amp;gt; &amp;quot;Are you now, or have you ever been, a Microsoft Visual C++ user?&amp;quot;&lt;br /&gt;
&amp;gt; There's going to be scandal when the oversight committee investigates my&lt;br /&gt;
&amp;gt; employment history.&lt;br /&gt;
If you used msvc on your day job it doesn't count, as long as you really hated it.&lt;br /&gt;
-- Mike Melanson and Måns Rullgård in ffmpeg-devel at mplayerhq.hu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; patching file configure&lt;br /&gt;
&amp;gt; Hunk #1 FAILED at 914.&lt;br /&gt;
&amp;gt; 1 out of 1 hunk FAILED -- saving rejects to file configure.rej&lt;br /&gt;
Ah, yes, the swift evolution of ffmpeg made the patch obsolete in 24h.&lt;br /&gt;
-- Måns Rullgård and Víctor Paesa in ffmpeg-devel at mplayerhq.hu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[about the lack of &amp;quot;chained ogg&amp;quot; support]&lt;br /&gt;
I'm aware of this problem, and I've been trying to think of a&lt;br /&gt;
solution.  The more I think about it, the more it appears as an&lt;br /&gt;
abomination.  Just like everything Ogg related.  No surprises there.&lt;br /&gt;
-- Måns Rullgård in ffmpeg-devel at mplayerhq.hu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
not everything from OO is necessarily bad, like not everything from M$&lt;br /&gt;
is necessarily bad, if later where the case M$ would gone bankrupt long&lt;br /&gt;
ago ...&lt;br /&gt;
but thats geting deeply off topic, lets rather concentrate on flames and&lt;br /&gt;
insults  ...&lt;br /&gt;
-- Michael Niedermayer in ffmpeg-devel at mplayerhq.hu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Marco Gerards submits a THP demuxer]&lt;br /&gt;
Coooool. I have hundreds of THP files. I will find some that have sound&lt;br /&gt;
and get them posted soon. In the meantime, Niedermayer will be along&lt;br /&gt;
shortly to tear apart your patch. Good luck! :)&lt;br /&gt;
-- Mike Melanson in ffmpeg-devel at mplayerhq.hu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[about SwScaler rewrite]&lt;br /&gt;
&amp;gt; &amp;gt; And then we can call an architecture dependent init function that can&lt;br /&gt;
&amp;gt; &amp;gt; overide the C behavior much like is done for the dsputils.&lt;br /&gt;
&amp;gt; I was thinking about that too&lt;br /&gt;
thinking is good patch is better ...&lt;br /&gt;
-- Marc Hoffman, Luca Barbato and Michael Niedermayer in ffmpeg-devel at mplayerhq.hu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
On Sun, Jan 15, 2006 at 06:27:55PM +0100, Reimar Döffinger wrote:&lt;br /&gt;
&amp;gt;&lt;br /&gt;
&amp;gt; Oh, and the image of my RE drawing is up as well :-) :&lt;br /&gt;
&amp;gt; http://www.stud.uni-karlsruhe.de/~uvhe/LZODraw_bw.png&lt;br /&gt;
&lt;br /&gt;
Thank goodness your coding skills are better than your handwriting ;)&lt;br /&gt;
&lt;br /&gt;
Diego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
On Thu, Sep 22, 2005 at 10:51:05AM +0200, oandrieu@gmail.com wrote:&lt;br /&gt;
&amp;gt;  Michael Niedermayer [Wednesday 21 September 2005] :&lt;br /&gt;
&amp;gt;  &amp;gt; cosmetics&lt;br /&gt;
&amp;gt;&lt;br /&gt;
&amp;gt; Yes. And ?&lt;br /&gt;
&lt;br /&gt;
sorry, i should have been more verbose, maybe i should be restarted with -v&lt;br /&gt;
can someone of the admin(s) do that?&lt;br /&gt;
&lt;br /&gt;
Michael&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
as far as i can see this AVI file has _many_ video frames in each chunk, sick&lt;br /&gt;
how can a person be capable of using a text editor (and writing software) and&lt;br /&gt;
at the same time be such a complete idiot writing a program generating so&lt;br /&gt;
broken avi files ...&lt;br /&gt;
&lt;br /&gt;
Michael&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
michaels law: &amp;quot;if gcc can mess up, it does mess up&amp;quot; ;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; &amp;gt;&amp;gt; +     &amp;quot;psllw     $1, %%mm1               \n\t&amp;quot;          &lt;br /&gt;
&amp;gt; &amp;gt;&amp;gt; +     &amp;quot;psllw     $1, %%mm2               \n\t&amp;quot;          &lt;br /&gt;
&amp;gt; &amp;gt; &lt;br /&gt;
&amp;gt; &amp;gt; paddw&lt;br /&gt;
&amp;gt; &lt;br /&gt;
&amp;gt; Is that always faster?&lt;br /&gt;
&lt;br /&gt;
no, you can design a cpu where its not&lt;br /&gt;
&lt;br /&gt;
Michael&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if you think that this patch will be accepted due to you whining how much&lt;br /&gt;
time you spend on it already then you live in some strange fantasy world&lt;br /&gt;
-- Michael Niedermayer in ffmpeg-devel at mplayerhq.hu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Rich, I always knew you were a little out of the ordinary, but&lt;br /&gt;
pirating gay porn wasn't quite what I was expecting even from you.&lt;br /&gt;
-- Måns Rullgård in ffmpeg-devel at mplayerhq.hu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[after a discussion of a patch with a new audio decoder evolved into &lt;br /&gt;
 runtime generation of tables vs. hardcoding them in the object file debate]&lt;br /&gt;
&lt;br /&gt;
what is the name of this bikeshed?&lt;br /&gt;
-- compn&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[http://lists.mplayerhq.hu/mailman/listinfo/nut-devel NUT-devel]===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
We should have some nut samples.&lt;br /&gt;
Someone, (not me, I am lazy), should mux some free video and &lt;br /&gt;
audio into NUT (or just grab a camera and film something funny &lt;br /&gt;
like what happens with an egg in the microwave or something &lt;br /&gt;
else where A-V sync can be seen).&lt;br /&gt;
&lt;br /&gt;
Michael&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
A &amp;quot;spec&amp;quot; as readable as a sendmail configuration file doesn't make&lt;br /&gt;
matters better...&lt;br /&gt;
&lt;br /&gt;
Måns Rullgård&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===other===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
i've remembered i have root access at new mphq, but probably&lt;br /&gt;
it was just a dream :)))&lt;br /&gt;
-- A'rpi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FFmpeg works like a human being: something nice comes in, crap comes out.&lt;br /&gt;
-- superdump on an S-Bahn train in Berlin&lt;br /&gt;
(written from memory, please fix)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=RealMedia&amp;diff=6612</id>
		<title>RealMedia</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=RealMedia&amp;diff=6612"/>
		<updated>2006-12-25T22:10:49Z</updated>

		<summary type="html">&lt;p&gt;Roberto: audio/x-ralf-mpeg4 mimetype&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: rm, ra, rmvb&lt;br /&gt;
* Company: [[Real]]&lt;br /&gt;
* Specifications: https://common.helixcommunity.org/nonav/2003/HCS_SDK_r5/htmfiles/rmff.htm&lt;br /&gt;
&lt;br /&gt;
Multimedia container format developed by [[Real]] and used almost exclusively for codecs developed by [[Real]].&lt;br /&gt;
&lt;br /&gt;
The old .ra files are just for audio.  The newer RealMedia (.rm) files are for audio and video.&lt;br /&gt;
&lt;br /&gt;
== RA Format ==&lt;br /&gt;
&lt;br /&gt;
This is the old audio-only RealAudio file format.&lt;br /&gt;
A very similar structure is also used to describe audio streams in RM files.&lt;br /&gt;
&lt;br /&gt;
The audio data part is just a stream of bytes with no structure.&lt;br /&gt;
There is no index in .ra files, but seeking is possible because the codecs are CBR.&lt;br /&gt;
&lt;br /&gt;
=== RealAudio 1.0 file  (.ra version 3) ===&lt;br /&gt;
&lt;br /&gt;
This is from the very first version of RealAudio (1995).  These files can only contain [[RealAudio 14.4|8kbps VSELP]] audio data.  A [[FourCC]] (lpcJ) may be present, but it is ignored.  Byte order is big-endian.&lt;br /&gt;
&lt;br /&gt;
 byte[4]  Header signature ('.', 'r', 'a', 0xfd)&lt;br /&gt;
 word     Version (always 3)&lt;br /&gt;
 word     Header size, not including first 8 bytes&lt;br /&gt;
 byte[10] Unknown&lt;br /&gt;
 dword    Data size&lt;br /&gt;
 byte     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 byte     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 byte     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 byte     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
 byte     Unknown *&lt;br /&gt;
 byte     Fourcc string length (always 4) *&lt;br /&gt;
 byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *&lt;br /&gt;
  Audio data&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* Fields marked with * may be missing. Based on the only known sample with no [[FourCC]], it's assumed that all these fields are either present or missing.  To determine if they are missing, check the header size (bytes 6-7).&lt;br /&gt;
* The informative fields (title, author, copyright and comment) can have zero length.&lt;br /&gt;
&lt;br /&gt;
=== RealAudio 2.0 file (.ra version 4) ===&lt;br /&gt;
&lt;br /&gt;
This is second version of the RealAudio file format.  It is distinguished from the above by the value in byte 5 (=0x04).  This type of file must contain a valid [[FourCC]] to identify the audio codec.&lt;br /&gt;
&lt;br /&gt;
Possible [[FourCC]] values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].&lt;br /&gt;
&lt;br /&gt;
 byte[4]  Header signature ('.', 'r', 'a', 0xfd)&lt;br /&gt;
 word     Version (always 4)&lt;br /&gt;
 word     Unused (always 0)&lt;br /&gt;
 byte[4]  ra4 signature (always &amp;quot;.ra4&amp;quot;)&lt;br /&gt;
 dword    Data size - 0x27&lt;br /&gt;
 word     Version2 (always equal to version)&lt;br /&gt;
 dword    Header size - 16&lt;br /&gt;
 word     Codec flavor&lt;br /&gt;
 dword    Coded frame size&lt;br /&gt;
 byte[12] Unknown&lt;br /&gt;
 word     Sub packet h&lt;br /&gt;
 word     Frame size&lt;br /&gt;
 word     Subpacket size&lt;br /&gt;
 word     Unknown&lt;br /&gt;
 word     Samplerate&lt;br /&gt;
 word     Unknown&lt;br /&gt;
 word     Sample size&lt;br /&gt;
 word     Channels&lt;br /&gt;
 byte     Interleaver ID string length (always 4)&lt;br /&gt;
 byte[]   Interleaver ID string&lt;br /&gt;
 byte     [[FourCC]] string length (always 4)&lt;br /&gt;
 byte[]   [[FourCC]] string&lt;br /&gt;
 byte[3]  Unknown&lt;br /&gt;
 byte     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 byte     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 byte     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 byte     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
  Audio Data&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).&lt;br /&gt;
* The informative fields (title, author, copyright and comment) can have zero length.&lt;br /&gt;
&lt;br /&gt;
=== .ra version 5 ===&lt;br /&gt;
&lt;br /&gt;
While the .ra header can contain version 5, there are no known RealAudio files with this format, and it's not known if they really exist.&lt;br /&gt;
&lt;br /&gt;
== RealMedia Format ==&lt;br /&gt;
&lt;br /&gt;
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.&lt;br /&gt;
&lt;br /&gt;
A RealMedia file consists of a series of chunks. Each chunk has the following format:&lt;br /&gt;
&lt;br /&gt;
 dword  chunk type ([[FOURCC]])&lt;br /&gt;
 dword  chunk size, including 8-byte preamble&lt;br /&gt;
 word   chunk version&lt;br /&gt;
 byte[] chunk payload&lt;br /&gt;
&lt;br /&gt;
Real chunk types:&lt;br /&gt;
* .RMF: RealMedia file header (only one per file, must be the first chunk)&lt;br /&gt;
* PROP: File properties (only one per file)&lt;br /&gt;
* MDPR: Stream properties (one for each stream)&lt;br /&gt;
* CONT: Content description/metadata (typically one per file)&lt;br /&gt;
* DATA: File data&lt;br /&gt;
* INDX: File index (typically one per stream)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== RealMedia file header (.RMF) ===&lt;br /&gt;
&lt;br /&gt;
This must be the first chunk in a RealMedia file. Only one .RMF can be present in a file. The only useful information carried by .RMF is the number of headers.&lt;br /&gt;
&lt;br /&gt;
A .RMF chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword chunk type ('.RMF')&lt;br /&gt;
 dword chunk size (typically 0x12)&lt;br /&gt;
 word  chunk version (always 0, for every known file)&lt;br /&gt;
 dword file version&lt;br /&gt;
 dword number of headers&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* All known sample files have version equal to 0.&lt;br /&gt;
* There is a sample with chunk size = 0x10, in that case file version is a word. Note that the sample has chunk version = 0 like all other files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== File properties header (PROP) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.&lt;br /&gt;
&lt;br /&gt;
A PROP chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword  Chunk type ('PROP')&lt;br /&gt;
 dword  Chunk size (typically 0x32)&lt;br /&gt;
 word   Chunk version (always 0, for every known file)&lt;br /&gt;
 dword  Maximum bit rate&lt;br /&gt;
 dword  Average bit rate&lt;br /&gt;
 dword  Size of largest data packet&lt;br /&gt;
 dword  Average size of data packet&lt;br /&gt;
 dword  Number of data packets in the file&lt;br /&gt;
 dword  File duration in ms&lt;br /&gt;
 dword  Suggested number of ms to buffer before starting playback&lt;br /&gt;
 dword  Offset of the first INDX chunk form the start of the file&lt;br /&gt;
 dword  Offset of the first DATA chunk form the start of the file&lt;br /&gt;
 word   Number of streams in the file&lt;br /&gt;
 word   Flags (bitfield, see below)&lt;br /&gt;
&lt;br /&gt;
Flags:&lt;br /&gt;
* bit 0: file can be saved on disk&lt;br /&gt;
* bit 1: PerfectPlay can be used (extra buffering)&lt;br /&gt;
* bit 2: the file is a live broadcast&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Media properties header (MDPR) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains information about the properties of a RealMedia stream. This header defines the type of a stream and the codec used. All codec-related data is in the type specific part of this header.&lt;br /&gt;
&lt;br /&gt;
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.&lt;br /&gt;
&lt;br /&gt;
There is one MDPR chunk for every stream in the file.&lt;br /&gt;
&lt;br /&gt;
A MDPR chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword   Chunk type ('MDPR')&lt;br /&gt;
 dword   Chunk size&lt;br /&gt;
 word    Chunk version (always 0, for every known file)&lt;br /&gt;
 word    Stream number&lt;br /&gt;
 dword   Maximum bit rate&lt;br /&gt;
 dword   Average bit rate&lt;br /&gt;
 dword   Size of largest data packet&lt;br /&gt;
 dword   Average size of data packet&lt;br /&gt;
 dword   Stream start offset in ms&lt;br /&gt;
 dword   Preroll in ms (to be subtracted from timestamps?)&lt;br /&gt;
 dword   Stream duration in ms&lt;br /&gt;
 byte    Size of stream description string&lt;br /&gt;
 byte[]  Stream description string&lt;br /&gt;
 byte    Size of stream mime type string&lt;br /&gt;
 byte[]  Mime type string&lt;br /&gt;
 dword   Size of type specific part of the header&lt;br /&gt;
 byte[]  Type specific data, meaning and format depends on mime type&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Audio (audio/) ====&lt;br /&gt;
&lt;br /&gt;
===== audio/x-pn-realaudio and audio/x-pn-multirate-realaudio =====&lt;br /&gt;
These mimetypes are used to specify streams with RealAudio codecs. There are 3 known versions of this datablock: ra3, ra4, ra5. ra3 is used only with the old 14_4 codec, ra4 and ra5 can be used with all the other codecs.&lt;br /&gt;
&lt;br /&gt;
The audio block has this format&lt;br /&gt;
&lt;br /&gt;
  byte[4]  Header signature ('.', 'r', 'a', 0xfd)&lt;br /&gt;
  word     Version (3, 4 or 5)&lt;br /&gt;
 #if version == 3&lt;br /&gt;
  word     Header size, not including first 8 bytes&lt;br /&gt;
  byte[10] Unknown&lt;br /&gt;
  dword    Data size&lt;br /&gt;
  byte     Title string length&lt;br /&gt;
  byte[]   Title string&lt;br /&gt;
  byte     Author string length&lt;br /&gt;
  byte[]   Author string&lt;br /&gt;
  byte     Copyright string length&lt;br /&gt;
  byte[]   Copyright string&lt;br /&gt;
  byte     Comment string length&lt;br /&gt;
  byte[]   Comment string&lt;br /&gt;
  byte     Unknown *&lt;br /&gt;
  byte     Fourcc string length (always 4) *&lt;br /&gt;
  byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *&lt;br /&gt;
 #elseif version == 4 or version == 5&lt;br /&gt;
  word     Unused (always 0)&lt;br /&gt;
  byte[4]  ra signature (&amp;quot;.ra4&amp;quot; or &amp;quot;.ra5&amp;quot;, depending on version)&lt;br /&gt;
  dword    Unknown (maybe data size)&lt;br /&gt;
  word     Version2 (always equal to version)&lt;br /&gt;
  dword    Header size&lt;br /&gt;
  word     Codec flavor&lt;br /&gt;
  dword    Coded frame size&lt;br /&gt;
  byte[12] Unknown&lt;br /&gt;
  word     Sub packet h&lt;br /&gt;
  word     Frame size&lt;br /&gt;
  word     Subpacket size&lt;br /&gt;
  word     Unknown&lt;br /&gt;
 #if version == 5&lt;br /&gt;
  byte[6]  Unknown&lt;br /&gt;
 #endif&lt;br /&gt;
  word     Samplerate&lt;br /&gt;
  word     Unknown&lt;br /&gt;
  word     Sample size&lt;br /&gt;
  word     Channels&lt;br /&gt;
 #if version == 4&lt;br /&gt;
  byte     Interleaver ID string length (always 4)&lt;br /&gt;
  byte[]   Interleaver ID string&lt;br /&gt;
  byte     [[FourCC]] string length (always 4)&lt;br /&gt;
  byte[]   [[FourCC]] string&lt;br /&gt;
 #endif&lt;br /&gt;
 #if version == 5&lt;br /&gt;
  dword    Interleaver ID&lt;br /&gt;
  dword    [[FourCC]]&lt;br /&gt;
 #endif&lt;br /&gt;
  byte[3]  Unknown&lt;br /&gt;
 #if version == 5&lt;br /&gt;
  byte     Unknown&lt;br /&gt;
 #endif&lt;br /&gt;
  dword    Codec extradata length&lt;br /&gt;
  byte[]   Codec extradata&lt;br /&gt;
 #endif&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== audio/X-MP3-draft-00 =====&lt;br /&gt;
This is used to store MP3 audio in rm container.&lt;br /&gt;
When this mimetype is used the type-specific part of the MDPR header is not used, and its length is set to 0.&lt;br /&gt;
&lt;br /&gt;
The MP3 frames are stored in ADU format (see RFC 3119 for details) with no interleaving (at least this is true in the only known sample).&lt;br /&gt;
&lt;br /&gt;
===== audio/x-ralf-mpeg4 =====&lt;br /&gt;
This is used to store [[Real Lossless Codec|ralf]] lossless audio. This is the only known RealAudio codec that does not use the x-pn-realaudio mimetype.&lt;br /&gt;
&lt;br /&gt;
The format of this type-specific data is not known.&lt;br /&gt;
&lt;br /&gt;
=== Content description header (CONT) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains some text information (like title, author, ...) about the content of the file. This header has an informative purpose only and it's not needed to demux the file.&lt;br /&gt;
&lt;br /&gt;
A CONT chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword   Chunk type ('CONT')&lt;br /&gt;
 dword   Chunk size&lt;br /&gt;
 word    Chunk version (always 0, for every known file)&lt;br /&gt;
 word    Title string length&lt;br /&gt;
 byte[]  Title string&lt;br /&gt;
 word    Author string length&lt;br /&gt;
 byte[]  Author string&lt;br /&gt;
 word    Copyright string length&lt;br /&gt;
 byte[]  Copyright string&lt;br /&gt;
 word    Comment string length&lt;br /&gt;
 byte[]  Comment string&lt;br /&gt;
&lt;br /&gt;
=== Data header (DATA) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains a group of data packets. Packets from each stream are interleaved, except for multirate files.&lt;br /&gt;
&lt;br /&gt;
A DATA chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword   Chunk type ('DATA')&lt;br /&gt;
 dword   Chunk size&lt;br /&gt;
 word    Chunk version (always 0, for every known file)&lt;br /&gt;
 dword   Number of data packets in this chunk&lt;br /&gt;
 dword   Offset of the next DATA chunk (form the start of the file)&lt;br /&gt;
 byte[]  Data packets&lt;br /&gt;
&lt;br /&gt;
Each data packet has this format&lt;br /&gt;
&lt;br /&gt;
  word   Packet version (0 or 1 in available samples)&lt;br /&gt;
  word   Packet size&lt;br /&gt;
  word   Stream number&lt;br /&gt;
  dword  Timestamp (in ms)&lt;br /&gt;
  byte   Unknown&lt;br /&gt;
  byte   Flags (bitfield, see below)&lt;br /&gt;
 #if version == 1&lt;br /&gt;
  byte   Unknown&lt;br /&gt;
 #endif&lt;br /&gt;
  byte[]  Stream-specific data&lt;br /&gt;
&lt;br /&gt;
Flags:&lt;br /&gt;
* bit 0: reliable packet (refers to network transmission method)&lt;br /&gt;
* bit 1: keyframe&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
The previous description of the data packet comes from working demuxer code, the description in official [[Real]] docs (somewhere on [[Helix]] site) is a bit different:&lt;br /&gt;
&lt;br /&gt;
  word   Packet version&lt;br /&gt;
  word   Packet size&lt;br /&gt;
  word   Stream number&lt;br /&gt;
  dword  Timestamp&lt;br /&gt;
 #if version == 0&lt;br /&gt;
  byte   Packet group&lt;br /&gt;
  byte   Flags&lt;br /&gt;
 #endif&lt;br /&gt;
 #if version == 1&lt;br /&gt;
  word   ASM rule&lt;br /&gt;
  byte   ASM flags&lt;br /&gt;
 #endif&lt;br /&gt;
  byte[]  Stream-specific data&lt;br /&gt;
&lt;br /&gt;
where packet group is &amp;quot;The packet group to which the packet belongs. If packet grouping is not used, set this field to 0 (zero)&amp;quot;, asm rule is &amp;quot;The ASM rule assigned to this packet&amp;quot; and asm flags &amp;quot;Contains HX_  flags that dictate stream switching points&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Index header (INDX) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains index entries. It comes after all the DATA chunks.&lt;br /&gt;
An index chunk contains data for a single stream, A file can have more than one INDX chunk.&lt;br /&gt;
&lt;br /&gt;
A INDX chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword   Chunk type ('INDX')&lt;br /&gt;
 dword   Chunk size&lt;br /&gt;
 word    Chunk version (always 0, for every known file)&lt;br /&gt;
 dword   Number of entries in this chunk&lt;br /&gt;
 word    Stream number&lt;br /&gt;
 dword   Offset of the next INDX chunk (form the start of the file)&lt;br /&gt;
 byte[]  Index entries&lt;br /&gt;
&lt;br /&gt;
Each index entry has this format&lt;br /&gt;
&lt;br /&gt;
  word   Entry version (always 0, for every known file)&lt;br /&gt;
  dword  Timestamp (in ms)&lt;br /&gt;
  dword  Packet offset in file (form the start of the file)&lt;br /&gt;
  dword  Packet number&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Codecs ==&lt;br /&gt;
&lt;br /&gt;
Codecs in RealMedia are identified by the following four character codes:&lt;br /&gt;
&lt;br /&gt;
===== Audio =====&lt;br /&gt;
&lt;br /&gt;
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)&lt;br /&gt;
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)&lt;br /&gt;
* [[RealAudio_dnet|dnet]] - AC3&lt;br /&gt;
* [[RealAudio_sipr|sipr]] - Sipro&lt;br /&gt;
* [[RealAudio_cook|cook]] - Cook&lt;br /&gt;
* [[RealAudio_atrc|atrc]] - ATRAC&lt;br /&gt;
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format&lt;br /&gt;
* [[RealAudio_raac|raac]] - LC-AAC&lt;br /&gt;
* [[RealAudio_racp|racp]] - HE-AAC&lt;br /&gt;
&lt;br /&gt;
===== Video =====&lt;br /&gt;
&lt;br /&gt;
* [[RealVideo|RV10]] - H.263&lt;br /&gt;
* [[RealVideo|RV13]] - H.263&lt;br /&gt;
* [[RealVideo G2|RV20]] - H.263+&lt;br /&gt;
* [[RealVideo 3|RV30]] - Unknown format&lt;br /&gt;
* [[RealVideo 4|RV40]] - Unknown format&lt;br /&gt;
&lt;br /&gt;
[[Category: Container Formats]]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=RealMedia&amp;diff=6611</id>
		<title>RealMedia</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=RealMedia&amp;diff=6611"/>
		<updated>2006-12-25T21:51:40Z</updated>

		<summary type="html">&lt;p&gt;Roberto: audio/X-MP3-draft-00 mimetype&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: rm, ra, rmvb&lt;br /&gt;
* Company: [[Real]]&lt;br /&gt;
* Specifications: https://common.helixcommunity.org/nonav/2003/HCS_SDK_r5/htmfiles/rmff.htm&lt;br /&gt;
&lt;br /&gt;
Multimedia container format developed by [[Real]] and used almost exclusively for codecs developed by [[Real]].&lt;br /&gt;
&lt;br /&gt;
The old .ra files are just for audio.  The newer RealMedia (.rm) files are for audio and video.&lt;br /&gt;
&lt;br /&gt;
== RA Format ==&lt;br /&gt;
&lt;br /&gt;
This is the old audio-only RealAudio file format.&lt;br /&gt;
A very similar structure is also used to describe audio streams in RM files.&lt;br /&gt;
&lt;br /&gt;
The audio data part is just a stream of bytes with no structure.&lt;br /&gt;
There is no index in .ra files, but seeking is possible because the codecs are CBR.&lt;br /&gt;
&lt;br /&gt;
=== RealAudio 1.0 file  (.ra version 3) ===&lt;br /&gt;
&lt;br /&gt;
This is from the very first version of RealAudio (1995).  These files can only contain [[RealAudio 14.4|8kbps VSELP]] audio data.  A [[FourCC]] (lpcJ) may be present, but it is ignored.  Byte order is big-endian.&lt;br /&gt;
&lt;br /&gt;
 byte[4]  Header signature ('.', 'r', 'a', 0xfd)&lt;br /&gt;
 word     Version (always 3)&lt;br /&gt;
 word     Header size, not including first 8 bytes&lt;br /&gt;
 byte[10] Unknown&lt;br /&gt;
 dword    Data size&lt;br /&gt;
 byte     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 byte     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 byte     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 byte     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
 byte     Unknown *&lt;br /&gt;
 byte     Fourcc string length (always 4) *&lt;br /&gt;
 byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *&lt;br /&gt;
  Audio data&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* Fields marked with * may be missing. Based on the only known sample with no [[FourCC]], it's assumed that all these fields are either present or missing.  To determine if they are missing, check the header size (bytes 6-7).&lt;br /&gt;
* The informative fields (title, author, copyright and comment) can have zero length.&lt;br /&gt;
&lt;br /&gt;
=== RealAudio 2.0 file (.ra version 4) ===&lt;br /&gt;
&lt;br /&gt;
This is second version of the RealAudio file format.  It is distinguished from the above by the value in byte 5 (=0x04).  This type of file must contain a valid [[FourCC]] to identify the audio codec.&lt;br /&gt;
&lt;br /&gt;
Possible [[FourCC]] values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].&lt;br /&gt;
&lt;br /&gt;
 byte[4]  Header signature ('.', 'r', 'a', 0xfd)&lt;br /&gt;
 word     Version (always 4)&lt;br /&gt;
 word     Unused (always 0)&lt;br /&gt;
 byte[4]  ra4 signature (always &amp;quot;.ra4&amp;quot;)&lt;br /&gt;
 dword    Data size - 0x27&lt;br /&gt;
 word     Version2 (always equal to version)&lt;br /&gt;
 dword    Header size - 16&lt;br /&gt;
 word     Codec flavor&lt;br /&gt;
 dword    Coded frame size&lt;br /&gt;
 byte[12] Unknown&lt;br /&gt;
 word     Sub packet h&lt;br /&gt;
 word     Frame size&lt;br /&gt;
 word     Subpacket size&lt;br /&gt;
 word     Unknown&lt;br /&gt;
 word     Samplerate&lt;br /&gt;
 word     Unknown&lt;br /&gt;
 word     Sample size&lt;br /&gt;
 word     Channels&lt;br /&gt;
 byte     Interleaver ID string length (always 4)&lt;br /&gt;
 byte[]   Interleaver ID string&lt;br /&gt;
 byte     [[FourCC]] string length (always 4)&lt;br /&gt;
 byte[]   [[FourCC]] string&lt;br /&gt;
 byte[3]  Unknown&lt;br /&gt;
 byte     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 byte     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 byte     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 byte     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
  Audio Data&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).&lt;br /&gt;
* The informative fields (title, author, copyright and comment) can have zero length.&lt;br /&gt;
&lt;br /&gt;
=== .ra version 5 ===&lt;br /&gt;
&lt;br /&gt;
While the .ra header can contain version 5, there are no known RealAudio files with this format, and it's not known if they really exist.&lt;br /&gt;
&lt;br /&gt;
== RealMedia Format ==&lt;br /&gt;
&lt;br /&gt;
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.&lt;br /&gt;
&lt;br /&gt;
A RealMedia file consists of a series of chunks. Each chunk has the following format:&lt;br /&gt;
&lt;br /&gt;
 dword  chunk type ([[FOURCC]])&lt;br /&gt;
 dword  chunk size, including 8-byte preamble&lt;br /&gt;
 word   chunk version&lt;br /&gt;
 byte[] chunk payload&lt;br /&gt;
&lt;br /&gt;
Real chunk types:&lt;br /&gt;
* .RMF: RealMedia file header (only one per file, must be the first chunk)&lt;br /&gt;
* PROP: File properties (only one per file)&lt;br /&gt;
* MDPR: Stream properties (one for each stream)&lt;br /&gt;
* CONT: Content description/metadata (typically one per file)&lt;br /&gt;
* DATA: File data&lt;br /&gt;
* INDX: File index (typically one per stream)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== RealMedia file header (.RMF) ===&lt;br /&gt;
&lt;br /&gt;
This must be the first chunk in a RealMedia file. Only one .RMF can be present in a file. The only useful information carried by .RMF is the number of headers.&lt;br /&gt;
&lt;br /&gt;
A .RMF chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword chunk type ('.RMF')&lt;br /&gt;
 dword chunk size (typically 0x12)&lt;br /&gt;
 word  chunk version (always 0, for every known file)&lt;br /&gt;
 dword file version&lt;br /&gt;
 dword number of headers&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* All known sample files have version equal to 0.&lt;br /&gt;
* There is a sample with chunk size = 0x10, in that case file version is a word. Note that the sample has chunk version = 0 like all other files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== File properties header (PROP) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.&lt;br /&gt;
&lt;br /&gt;
A PROP chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword  Chunk type ('PROP')&lt;br /&gt;
 dword  Chunk size (typically 0x32)&lt;br /&gt;
 word   Chunk version (always 0, for every known file)&lt;br /&gt;
 dword  Maximum bit rate&lt;br /&gt;
 dword  Average bit rate&lt;br /&gt;
 dword  Size of largest data packet&lt;br /&gt;
 dword  Average size of data packet&lt;br /&gt;
 dword  Number of data packets in the file&lt;br /&gt;
 dword  File duration in ms&lt;br /&gt;
 dword  Suggested number of ms to buffer before starting playback&lt;br /&gt;
 dword  Offset of the first INDX chunk form the start of the file&lt;br /&gt;
 dword  Offset of the first DATA chunk form the start of the file&lt;br /&gt;
 word   Number of streams in the file&lt;br /&gt;
 word   Flags (bitfield, see below)&lt;br /&gt;
&lt;br /&gt;
Flags:&lt;br /&gt;
* bit 0: file can be saved on disk&lt;br /&gt;
* bit 1: PerfectPlay can be used (extra buffering)&lt;br /&gt;
* bit 2: the file is a live broadcast&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Media properties header (MDPR) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains information about the properties of a RealMedia stream. This header defines the type of a stream and the codec used. All codec-related data is in the type specific part of this header.&lt;br /&gt;
&lt;br /&gt;
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.&lt;br /&gt;
&lt;br /&gt;
There is one MDPR chunk for every stream in the file.&lt;br /&gt;
&lt;br /&gt;
A MDPR chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword   Chunk type ('MDPR')&lt;br /&gt;
 dword   Chunk size&lt;br /&gt;
 word    Chunk version (always 0, for every known file)&lt;br /&gt;
 word    Stream number&lt;br /&gt;
 dword   Maximum bit rate&lt;br /&gt;
 dword   Average bit rate&lt;br /&gt;
 dword   Size of largest data packet&lt;br /&gt;
 dword   Average size of data packet&lt;br /&gt;
 dword   Stream start offset in ms&lt;br /&gt;
 dword   Preroll in ms (to be subtracted from timestamps?)&lt;br /&gt;
 dword   Stream duration in ms&lt;br /&gt;
 byte    Size of stream description string&lt;br /&gt;
 byte[]  Stream description string&lt;br /&gt;
 byte    Size of stream mime type string&lt;br /&gt;
 byte[]  Mime type string&lt;br /&gt;
 dword   Size of type specific part of the header&lt;br /&gt;
 byte[]  Type specific data, meaning and format depends on mime type&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Audio (audio/) ====&lt;br /&gt;
&lt;br /&gt;
===== audio/x-pn-realaudio and audio/x-pn-multirate-realaudio =====&lt;br /&gt;
These mimetypes are used to specify streams with RealAudio codecs. There are 3 known versions of this datablock: ra3, ra4, ra5. ra3 is used only with the old 14_4 codec, ra4 and ra5 can be used with all the other codecs.&lt;br /&gt;
&lt;br /&gt;
The audio block has this format&lt;br /&gt;
&lt;br /&gt;
  byte[4]  Header signature ('.', 'r', 'a', 0xfd)&lt;br /&gt;
  word     Version (3, 4 or 5)&lt;br /&gt;
 #if version == 3&lt;br /&gt;
  word     Header size, not including first 8 bytes&lt;br /&gt;
  byte[10] Unknown&lt;br /&gt;
  dword    Data size&lt;br /&gt;
  byte     Title string length&lt;br /&gt;
  byte[]   Title string&lt;br /&gt;
  byte     Author string length&lt;br /&gt;
  byte[]   Author string&lt;br /&gt;
  byte     Copyright string length&lt;br /&gt;
  byte[]   Copyright string&lt;br /&gt;
  byte     Comment string length&lt;br /&gt;
  byte[]   Comment string&lt;br /&gt;
  byte     Unknown *&lt;br /&gt;
  byte     Fourcc string length (always 4) *&lt;br /&gt;
  byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *&lt;br /&gt;
 #elseif version == 4 or version == 5&lt;br /&gt;
  word     Unused (always 0)&lt;br /&gt;
  byte[4]  ra signature (&amp;quot;.ra4&amp;quot; or &amp;quot;.ra5&amp;quot;, depending on version)&lt;br /&gt;
  dword    Unknown (maybe data size)&lt;br /&gt;
  word     Version2 (always equal to version)&lt;br /&gt;
  dword    Header size&lt;br /&gt;
  word     Codec flavor&lt;br /&gt;
  dword    Coded frame size&lt;br /&gt;
  byte[12] Unknown&lt;br /&gt;
  word     Sub packet h&lt;br /&gt;
  word     Frame size&lt;br /&gt;
  word     Subpacket size&lt;br /&gt;
  word     Unknown&lt;br /&gt;
 #if version == 5&lt;br /&gt;
  byte[6]  Unknown&lt;br /&gt;
 #endif&lt;br /&gt;
  word     Samplerate&lt;br /&gt;
  word     Unknown&lt;br /&gt;
  word     Sample size&lt;br /&gt;
  word     Channels&lt;br /&gt;
 #if version == 4&lt;br /&gt;
  byte     Interleaver ID string length (always 4)&lt;br /&gt;
  byte[]   Interleaver ID string&lt;br /&gt;
  byte     [[FourCC]] string length (always 4)&lt;br /&gt;
  byte[]   [[FourCC]] string&lt;br /&gt;
 #endif&lt;br /&gt;
 #if version == 5&lt;br /&gt;
  dword    Interleaver ID&lt;br /&gt;
  dword    [[FourCC]]&lt;br /&gt;
 #endif&lt;br /&gt;
  byte[3]  Unknown&lt;br /&gt;
 #if version == 5&lt;br /&gt;
  byte     Unknown&lt;br /&gt;
 #endif&lt;br /&gt;
  dword    Codec extradata length&lt;br /&gt;
  byte[]   Codec extradata&lt;br /&gt;
 #endif&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== audio/X-MP3-draft-00 =====&lt;br /&gt;
This is used to store MP3 audio in rm container.&lt;br /&gt;
When this mimetype is used the type-specific part of the MDPR header is not used, and its length is set to 0.&lt;br /&gt;
&lt;br /&gt;
The MP3 frames are stored in ADU format (see RFC 3119 for details) with no interleaving (at least this is true in the only known sample).&lt;br /&gt;
&lt;br /&gt;
=== Content description header (CONT) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains some text information (like title, author, ...) about the content of the file. This header has an informative purpose only and it's not needed to demux the file.&lt;br /&gt;
&lt;br /&gt;
A CONT chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword   Chunk type ('CONT')&lt;br /&gt;
 dword   Chunk size&lt;br /&gt;
 word    Chunk version (always 0, for every known file)&lt;br /&gt;
 word    Title string length&lt;br /&gt;
 byte[]  Title string&lt;br /&gt;
 word    Author string length&lt;br /&gt;
 byte[]  Author string&lt;br /&gt;
 word    Copyright string length&lt;br /&gt;
 byte[]  Copyright string&lt;br /&gt;
 word    Comment string length&lt;br /&gt;
 byte[]  Comment string&lt;br /&gt;
&lt;br /&gt;
=== Data header (DATA) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains a group of data packets. Packets from each stream are interleaved, except for multirate files.&lt;br /&gt;
&lt;br /&gt;
A DATA chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword   Chunk type ('DATA')&lt;br /&gt;
 dword   Chunk size&lt;br /&gt;
 word    Chunk version (always 0, for every known file)&lt;br /&gt;
 dword   Number of data packets in this chunk&lt;br /&gt;
 dword   Offset of the next DATA chunk (form the start of the file)&lt;br /&gt;
 byte[]  Data packets&lt;br /&gt;
&lt;br /&gt;
Each data packet has this format&lt;br /&gt;
&lt;br /&gt;
  word   Packet version (0 or 1 in available samples)&lt;br /&gt;
  word   Packet size&lt;br /&gt;
  word   Stream number&lt;br /&gt;
  dword  Timestamp (in ms)&lt;br /&gt;
  byte   Unknown&lt;br /&gt;
  byte   Flags (bitfield, see below)&lt;br /&gt;
 #if version == 1&lt;br /&gt;
  byte   Unknown&lt;br /&gt;
 #endif&lt;br /&gt;
  byte[]  Stream-specific data&lt;br /&gt;
&lt;br /&gt;
Flags:&lt;br /&gt;
* bit 0: reliable packet (refers to network transmission method)&lt;br /&gt;
* bit 1: keyframe&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
The previous description of the data packet comes from working demuxer code, the description in official [[Real]] docs (somewhere on [[Helix]] site) is a bit different:&lt;br /&gt;
&lt;br /&gt;
  word   Packet version&lt;br /&gt;
  word   Packet size&lt;br /&gt;
  word   Stream number&lt;br /&gt;
  dword  Timestamp&lt;br /&gt;
 #if version == 0&lt;br /&gt;
  byte   Packet group&lt;br /&gt;
  byte   Flags&lt;br /&gt;
 #endif&lt;br /&gt;
 #if version == 1&lt;br /&gt;
  word   ASM rule&lt;br /&gt;
  byte   ASM flags&lt;br /&gt;
 #endif&lt;br /&gt;
  byte[]  Stream-specific data&lt;br /&gt;
&lt;br /&gt;
where packet group is &amp;quot;The packet group to which the packet belongs. If packet grouping is not used, set this field to 0 (zero)&amp;quot;, asm rule is &amp;quot;The ASM rule assigned to this packet&amp;quot; and asm flags &amp;quot;Contains HX_  flags that dictate stream switching points&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Index header (INDX) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains index entries. It comes after all the DATA chunks.&lt;br /&gt;
An index chunk contains data for a single stream, A file can have more than one INDX chunk.&lt;br /&gt;
&lt;br /&gt;
A INDX chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword   Chunk type ('INDX')&lt;br /&gt;
 dword   Chunk size&lt;br /&gt;
 word    Chunk version (always 0, for every known file)&lt;br /&gt;
 dword   Number of entries in this chunk&lt;br /&gt;
 word    Stream number&lt;br /&gt;
 dword   Offset of the next INDX chunk (form the start of the file)&lt;br /&gt;
 byte[]  Index entries&lt;br /&gt;
&lt;br /&gt;
Each index entry has this format&lt;br /&gt;
&lt;br /&gt;
  word   Entry version (always 0, for every known file)&lt;br /&gt;
  dword  Timestamp (in ms)&lt;br /&gt;
  dword  Packet offset in file (form the start of the file)&lt;br /&gt;
  dword  Packet number&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Codecs ==&lt;br /&gt;
&lt;br /&gt;
Codecs in RealMedia are identified by the following four character codes:&lt;br /&gt;
&lt;br /&gt;
===== Audio =====&lt;br /&gt;
&lt;br /&gt;
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)&lt;br /&gt;
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)&lt;br /&gt;
* [[RealAudio_dnet|dnet]] - AC3&lt;br /&gt;
* [[RealAudio_sipr|sipr]] - Sipro&lt;br /&gt;
* [[RealAudio_cook|cook]] - Cook&lt;br /&gt;
* [[RealAudio_atrc|atrc]] - ATRAC&lt;br /&gt;
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format&lt;br /&gt;
* [[RealAudio_raac|raac]] - LC-AAC&lt;br /&gt;
* [[RealAudio_racp|racp]] - HE-AAC&lt;br /&gt;
&lt;br /&gt;
===== Video =====&lt;br /&gt;
&lt;br /&gt;
* [[RealVideo|RV10]] - H.263&lt;br /&gt;
* [[RealVideo|RV13]] - H.263&lt;br /&gt;
* [[RealVideo G2|RV20]] - H.263+&lt;br /&gt;
* [[RealVideo 3|RV30]] - Unknown format&lt;br /&gt;
* [[RealVideo 4|RV40]] - Unknown format&lt;br /&gt;
&lt;br /&gt;
[[Category: Container Formats]]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=RealMedia&amp;diff=6610</id>
		<title>RealMedia</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=RealMedia&amp;diff=6610"/>
		<updated>2006-12-25T21:26:10Z</updated>

		<summary type="html">&lt;p&gt;Roberto: audio/x-pn-realaudio and audio/x-pn-multirate-realaudio  mimetypes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: rm, ra, rmvb&lt;br /&gt;
* Company: [[Real]]&lt;br /&gt;
* Specifications: https://common.helixcommunity.org/nonav/2003/HCS_SDK_r5/htmfiles/rmff.htm&lt;br /&gt;
&lt;br /&gt;
Multimedia container format developed by [[Real]] and used almost exclusively for codecs developed by [[Real]].&lt;br /&gt;
&lt;br /&gt;
The old .ra files are just for audio.  The newer RealMedia (.rm) files are for audio and video.&lt;br /&gt;
&lt;br /&gt;
== RA Format ==&lt;br /&gt;
&lt;br /&gt;
This is the old audio-only RealAudio file format.&lt;br /&gt;
A very similar structure is also used to describe audio streams in RM files.&lt;br /&gt;
&lt;br /&gt;
The audio data part is just a stream of bytes with no structure.&lt;br /&gt;
There is no index in .ra files, but seeking is possible because the codecs are CBR.&lt;br /&gt;
&lt;br /&gt;
=== RealAudio 1.0 file  (.ra version 3) ===&lt;br /&gt;
&lt;br /&gt;
This is from the very first version of RealAudio (1995).  These files can only contain [[RealAudio 14.4|8kbps VSELP]] audio data.  A [[FourCC]] (lpcJ) may be present, but it is ignored.  Byte order is big-endian.&lt;br /&gt;
&lt;br /&gt;
 byte[4]  Header signature ('.', 'r', 'a', 0xfd)&lt;br /&gt;
 word     Version (always 3)&lt;br /&gt;
 word     Header size, not including first 8 bytes&lt;br /&gt;
 byte[10] Unknown&lt;br /&gt;
 dword    Data size&lt;br /&gt;
 byte     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 byte     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 byte     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 byte     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
 byte     Unknown *&lt;br /&gt;
 byte     Fourcc string length (always 4) *&lt;br /&gt;
 byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *&lt;br /&gt;
  Audio data&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* Fields marked with * may be missing. Based on the only known sample with no [[FourCC]], it's assumed that all these fields are either present or missing.  To determine if they are missing, check the header size (bytes 6-7).&lt;br /&gt;
* The informative fields (title, author, copyright and comment) can have zero length.&lt;br /&gt;
&lt;br /&gt;
=== RealAudio 2.0 file (.ra version 4) ===&lt;br /&gt;
&lt;br /&gt;
This is second version of the RealAudio file format.  It is distinguished from the above by the value in byte 5 (=0x04).  This type of file must contain a valid [[FourCC]] to identify the audio codec.&lt;br /&gt;
&lt;br /&gt;
Possible [[FourCC]] values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].&lt;br /&gt;
&lt;br /&gt;
 byte[4]  Header signature ('.', 'r', 'a', 0xfd)&lt;br /&gt;
 word     Version (always 4)&lt;br /&gt;
 word     Unused (always 0)&lt;br /&gt;
 byte[4]  ra4 signature (always &amp;quot;.ra4&amp;quot;)&lt;br /&gt;
 dword    Data size - 0x27&lt;br /&gt;
 word     Version2 (always equal to version)&lt;br /&gt;
 dword    Header size - 16&lt;br /&gt;
 word     Codec flavor&lt;br /&gt;
 dword    Coded frame size&lt;br /&gt;
 byte[12] Unknown&lt;br /&gt;
 word     Sub packet h&lt;br /&gt;
 word     Frame size&lt;br /&gt;
 word     Subpacket size&lt;br /&gt;
 word     Unknown&lt;br /&gt;
 word     Samplerate&lt;br /&gt;
 word     Unknown&lt;br /&gt;
 word     Sample size&lt;br /&gt;
 word     Channels&lt;br /&gt;
 byte     Interleaver ID string length (always 4)&lt;br /&gt;
 byte[]   Interleaver ID string&lt;br /&gt;
 byte     [[FourCC]] string length (always 4)&lt;br /&gt;
 byte[]   [[FourCC]] string&lt;br /&gt;
 byte[3]  Unknown&lt;br /&gt;
 byte     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 byte     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 byte     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 byte     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
  Audio Data&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).&lt;br /&gt;
* The informative fields (title, author, copyright and comment) can have zero length.&lt;br /&gt;
&lt;br /&gt;
=== .ra version 5 ===&lt;br /&gt;
&lt;br /&gt;
While the .ra header can contain version 5, there are no known RealAudio files with this format, and it's not known if they really exist.&lt;br /&gt;
&lt;br /&gt;
== RealMedia Format ==&lt;br /&gt;
&lt;br /&gt;
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.&lt;br /&gt;
&lt;br /&gt;
A RealMedia file consists of a series of chunks. Each chunk has the following format:&lt;br /&gt;
&lt;br /&gt;
 dword  chunk type ([[FOURCC]])&lt;br /&gt;
 dword  chunk size, including 8-byte preamble&lt;br /&gt;
 word   chunk version&lt;br /&gt;
 byte[] chunk payload&lt;br /&gt;
&lt;br /&gt;
Real chunk types:&lt;br /&gt;
* .RMF: RealMedia file header (only one per file, must be the first chunk)&lt;br /&gt;
* PROP: File properties (only one per file)&lt;br /&gt;
* MDPR: Stream properties (one for each stream)&lt;br /&gt;
* CONT: Content description/metadata (typically one per file)&lt;br /&gt;
* DATA: File data&lt;br /&gt;
* INDX: File index (typically one per stream)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== RealMedia file header (.RMF) ===&lt;br /&gt;
&lt;br /&gt;
This must be the first chunk in a RealMedia file. Only one .RMF can be present in a file. The only useful information carried by .RMF is the number of headers.&lt;br /&gt;
&lt;br /&gt;
A .RMF chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword chunk type ('.RMF')&lt;br /&gt;
 dword chunk size (typically 0x12)&lt;br /&gt;
 word  chunk version (always 0, for every known file)&lt;br /&gt;
 dword file version&lt;br /&gt;
 dword number of headers&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* All known sample files have version equal to 0.&lt;br /&gt;
* There is a sample with chunk size = 0x10, in that case file version is a word. Note that the sample has chunk version = 0 like all other files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== File properties header (PROP) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.&lt;br /&gt;
&lt;br /&gt;
A PROP chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword  Chunk type ('PROP')&lt;br /&gt;
 dword  Chunk size (typically 0x32)&lt;br /&gt;
 word   Chunk version (always 0, for every known file)&lt;br /&gt;
 dword  Maximum bit rate&lt;br /&gt;
 dword  Average bit rate&lt;br /&gt;
 dword  Size of largest data packet&lt;br /&gt;
 dword  Average size of data packet&lt;br /&gt;
 dword  Number of data packets in the file&lt;br /&gt;
 dword  File duration in ms&lt;br /&gt;
 dword  Suggested number of ms to buffer before starting playback&lt;br /&gt;
 dword  Offset of the first INDX chunk form the start of the file&lt;br /&gt;
 dword  Offset of the first DATA chunk form the start of the file&lt;br /&gt;
 word   Number of streams in the file&lt;br /&gt;
 word   Flags (bitfield, see below)&lt;br /&gt;
&lt;br /&gt;
Flags:&lt;br /&gt;
* bit 0: file can be saved on disk&lt;br /&gt;
* bit 1: PerfectPlay can be used (extra buffering)&lt;br /&gt;
* bit 2: the file is a live broadcast&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Media properties header (MDPR) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains information about the properties of a RealMedia stream. This header defines the type of a stream and the codec used. All codec-related data is in the type specific part of this header.&lt;br /&gt;
&lt;br /&gt;
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.&lt;br /&gt;
&lt;br /&gt;
There is one MDPR chunk for every stream in the file.&lt;br /&gt;
&lt;br /&gt;
A MDPR chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword   Chunk type ('MDPR')&lt;br /&gt;
 dword   Chunk size&lt;br /&gt;
 word    Chunk version (always 0, for every known file)&lt;br /&gt;
 word    Stream number&lt;br /&gt;
 dword   Maximum bit rate&lt;br /&gt;
 dword   Average bit rate&lt;br /&gt;
 dword   Size of largest data packet&lt;br /&gt;
 dword   Average size of data packet&lt;br /&gt;
 dword   Stream start offset in ms&lt;br /&gt;
 dword   Preroll in ms (to be subtracted from timestamps?)&lt;br /&gt;
 dword   Stream duration in ms&lt;br /&gt;
 byte    Size of stream description string&lt;br /&gt;
 byte[]  Stream description string&lt;br /&gt;
 byte    Size of stream mime type string&lt;br /&gt;
 byte[]  Mime type string&lt;br /&gt;
 dword   Size of type specific part of the header&lt;br /&gt;
 byte[]  Type specific data, meaning and format depends on mime type&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Audio (audio/) ====&lt;br /&gt;
&lt;br /&gt;
===== audio/x-pn-realaudio and audio/x-pn-multirate-realaudio =====&lt;br /&gt;
These mimetypes are used to specify streams with RealAudio codecs. There are 3 known versions of this datablock: ra3, ra4, ra5. ra3 is used only with the old 14_4 codec, ra4 and ra5 can be used with all the other codecs.&lt;br /&gt;
&lt;br /&gt;
The audio block has this format&lt;br /&gt;
&lt;br /&gt;
  byte[4]  Header signature ('.', 'r', 'a', 0xfd)&lt;br /&gt;
  word     Version (3, 4 or 5)&lt;br /&gt;
 #if version == 3&lt;br /&gt;
  word     Header size, not including first 8 bytes&lt;br /&gt;
  byte[10] Unknown&lt;br /&gt;
  dword    Data size&lt;br /&gt;
  byte     Title string length&lt;br /&gt;
  byte[]   Title string&lt;br /&gt;
  byte     Author string length&lt;br /&gt;
  byte[]   Author string&lt;br /&gt;
  byte     Copyright string length&lt;br /&gt;
  byte[]   Copyright string&lt;br /&gt;
  byte     Comment string length&lt;br /&gt;
  byte[]   Comment string&lt;br /&gt;
  byte     Unknown *&lt;br /&gt;
  byte     Fourcc string length (always 4) *&lt;br /&gt;
  byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *&lt;br /&gt;
 #elseif version == 4 or version == 5&lt;br /&gt;
  word     Unused (always 0)&lt;br /&gt;
  byte[4]  ra signature (&amp;quot;.ra4&amp;quot; or &amp;quot;.ra5&amp;quot;, depending on version)&lt;br /&gt;
  dword    Unknown (maybe data size)&lt;br /&gt;
  word     Version2 (always equal to version)&lt;br /&gt;
  dword    Header size&lt;br /&gt;
  word     Codec flavor&lt;br /&gt;
  dword    Coded frame size&lt;br /&gt;
  byte[12] Unknown&lt;br /&gt;
  word     Sub packet h&lt;br /&gt;
  word     Frame size&lt;br /&gt;
  word     Subpacket size&lt;br /&gt;
  word     Unknown&lt;br /&gt;
 #if version == 5&lt;br /&gt;
  byte[6]  Unknown&lt;br /&gt;
 #endif&lt;br /&gt;
  word     Samplerate&lt;br /&gt;
  word     Unknown&lt;br /&gt;
  word     Sample size&lt;br /&gt;
  word     Channels&lt;br /&gt;
 #if version == 4&lt;br /&gt;
  byte     Interleaver ID string length (always 4)&lt;br /&gt;
  byte[]   Interleaver ID string&lt;br /&gt;
  byte     [[FourCC]] string length (always 4)&lt;br /&gt;
  byte[]   [[FourCC]] string&lt;br /&gt;
 #endif&lt;br /&gt;
 #if version == 5&lt;br /&gt;
  dword    Interleaver ID&lt;br /&gt;
  dword    [[FourCC]]&lt;br /&gt;
 #endif&lt;br /&gt;
  byte[3]  Unknown&lt;br /&gt;
 #if version == 5&lt;br /&gt;
  byte     Unknown&lt;br /&gt;
 #endif&lt;br /&gt;
  dword    Codec extradata length&lt;br /&gt;
  byte[]   Codec extradata&lt;br /&gt;
 #endif&lt;br /&gt;
&lt;br /&gt;
=== Content description header (CONT) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains some text information (like title, author, ...) about the content of the file. This header has an informative purpose only and it's not needed to demux the file.&lt;br /&gt;
&lt;br /&gt;
A CONT chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword   Chunk type ('CONT')&lt;br /&gt;
 dword   Chunk size&lt;br /&gt;
 word    Chunk version (always 0, for every known file)&lt;br /&gt;
 word    Title string length&lt;br /&gt;
 byte[]  Title string&lt;br /&gt;
 word    Author string length&lt;br /&gt;
 byte[]  Author string&lt;br /&gt;
 word    Copyright string length&lt;br /&gt;
 byte[]  Copyright string&lt;br /&gt;
 word    Comment string length&lt;br /&gt;
 byte[]  Comment string&lt;br /&gt;
&lt;br /&gt;
=== Data header (DATA) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains a group of data packets. Packets from each stream are interleaved, except for multirate files.&lt;br /&gt;
&lt;br /&gt;
A DATA chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword   Chunk type ('DATA')&lt;br /&gt;
 dword   Chunk size&lt;br /&gt;
 word    Chunk version (always 0, for every known file)&lt;br /&gt;
 dword   Number of data packets in this chunk&lt;br /&gt;
 dword   Offset of the next DATA chunk (form the start of the file)&lt;br /&gt;
 byte[]  Data packets&lt;br /&gt;
&lt;br /&gt;
Each data packet has this format&lt;br /&gt;
&lt;br /&gt;
  word   Packet version (0 or 1 in available samples)&lt;br /&gt;
  word   Packet size&lt;br /&gt;
  word   Stream number&lt;br /&gt;
  dword  Timestamp (in ms)&lt;br /&gt;
  byte   Unknown&lt;br /&gt;
  byte   Flags (bitfield, see below)&lt;br /&gt;
 #if version == 1&lt;br /&gt;
  byte   Unknown&lt;br /&gt;
 #endif&lt;br /&gt;
  byte[]  Stream-specific data&lt;br /&gt;
&lt;br /&gt;
Flags:&lt;br /&gt;
* bit 0: reliable packet (refers to network transmission method)&lt;br /&gt;
* bit 1: keyframe&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
The previous description of the data packet comes from working demuxer code, the description in official [[Real]] docs (somewhere on [[Helix]] site) is a bit different:&lt;br /&gt;
&lt;br /&gt;
  word   Packet version&lt;br /&gt;
  word   Packet size&lt;br /&gt;
  word   Stream number&lt;br /&gt;
  dword  Timestamp&lt;br /&gt;
 #if version == 0&lt;br /&gt;
  byte   Packet group&lt;br /&gt;
  byte   Flags&lt;br /&gt;
 #endif&lt;br /&gt;
 #if version == 1&lt;br /&gt;
  word   ASM rule&lt;br /&gt;
  byte   ASM flags&lt;br /&gt;
 #endif&lt;br /&gt;
  byte[]  Stream-specific data&lt;br /&gt;
&lt;br /&gt;
where packet group is &amp;quot;The packet group to which the packet belongs. If packet grouping is not used, set this field to 0 (zero)&amp;quot;, asm rule is &amp;quot;The ASM rule assigned to this packet&amp;quot; and asm flags &amp;quot;Contains HX_  flags that dictate stream switching points&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Index header (INDX) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains index entries. It comes after all the DATA chunks.&lt;br /&gt;
An index chunk contains data for a single stream, A file can have more than one INDX chunk.&lt;br /&gt;
&lt;br /&gt;
A INDX chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword   Chunk type ('INDX')&lt;br /&gt;
 dword   Chunk size&lt;br /&gt;
 word    Chunk version (always 0, for every known file)&lt;br /&gt;
 dword   Number of entries in this chunk&lt;br /&gt;
 word    Stream number&lt;br /&gt;
 dword   Offset of the next INDX chunk (form the start of the file)&lt;br /&gt;
 byte[]  Index entries&lt;br /&gt;
&lt;br /&gt;
Each index entry has this format&lt;br /&gt;
&lt;br /&gt;
  word   Entry version (always 0, for every known file)&lt;br /&gt;
  dword  Timestamp (in ms)&lt;br /&gt;
  dword  Packet offset in file (form the start of the file)&lt;br /&gt;
  dword  Packet number&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Codecs ==&lt;br /&gt;
&lt;br /&gt;
Codecs in RealMedia are identified by the following four character codes:&lt;br /&gt;
&lt;br /&gt;
===== Audio =====&lt;br /&gt;
&lt;br /&gt;
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)&lt;br /&gt;
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)&lt;br /&gt;
* [[RealAudio_dnet|dnet]] - AC3&lt;br /&gt;
* [[RealAudio_sipr|sipr]] - Sipro&lt;br /&gt;
* [[RealAudio_cook|cook]] - Cook&lt;br /&gt;
* [[RealAudio_atrc|atrc]] - ATRAC&lt;br /&gt;
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format&lt;br /&gt;
* [[RealAudio_raac|raac]] - LC-AAC&lt;br /&gt;
* [[RealAudio_racp|racp]] - HE-AAC&lt;br /&gt;
&lt;br /&gt;
===== Video =====&lt;br /&gt;
&lt;br /&gt;
* [[RealVideo|RV10]] - H.263&lt;br /&gt;
* [[RealVideo|RV13]] - H.263&lt;br /&gt;
* [[RealVideo G2|RV20]] - H.263+&lt;br /&gt;
* [[RealVideo 3|RV30]] - Unknown format&lt;br /&gt;
* [[RealVideo 4|RV40]] - Unknown format&lt;br /&gt;
&lt;br /&gt;
[[Category: Container Formats]]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=RealMedia&amp;diff=6602</id>
		<title>RealMedia</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=RealMedia&amp;diff=6602"/>
		<updated>2006-12-19T23:05:44Z</updated>

		<summary type="html">&lt;p&gt;Roberto: Cosmetics: fix indentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: rm, ra, rmvb&lt;br /&gt;
* Company: [[Real]]&lt;br /&gt;
&lt;br /&gt;
Multimedia container format developed by [[Real]] and used almost exclusively for codecs developed by [[Real]].&lt;br /&gt;
&lt;br /&gt;
The old .ra files are just for audio.  The newer RealMedia (.rm) files are for audio and video.&lt;br /&gt;
&lt;br /&gt;
== RA Format ==&lt;br /&gt;
&lt;br /&gt;
This is the old audio-only RealAudio file format.&lt;br /&gt;
A very similar structure is also used to describe audio streams in RM files.&lt;br /&gt;
&lt;br /&gt;
The audio data part is just a stream of bytes with no structure.&lt;br /&gt;
There is no index in .ra files, but seeking is possible because the codecs are CBR.&lt;br /&gt;
&lt;br /&gt;
=== RealAudio 1.0 file  (.ra version 3) ===&lt;br /&gt;
&lt;br /&gt;
This is from the very first version of RealAudio (1995).  These files can only contain [[RealAudio 14.4|8kbps VSELP]] audio data.  A [[FourCC]] (lpcJ) may be present, but it is ignored.  Byte order is big-endian.&lt;br /&gt;
&lt;br /&gt;
 byte[4]  Header signature ('.', 'r', 'a', 0xfd)&lt;br /&gt;
 word     Version (always 3)&lt;br /&gt;
 word     Header size, not including first 8 bytes&lt;br /&gt;
 byte[10] Unknown&lt;br /&gt;
 dword    Data size&lt;br /&gt;
 byte     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 byte     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 byte     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 byte     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
 byte     Unknown *&lt;br /&gt;
 byte     Fourcc string length (always 4) *&lt;br /&gt;
 byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *&lt;br /&gt;
  Audio data&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* Fields marked with * may be missing. Based on the only known sample with no [[FourCC]], it's assumed that all these fields are either present or missing.  To determine if they are missing, check the header size (bytes 6-7).&lt;br /&gt;
* The informative fields (title, author, copyright and comment) can have zero length.&lt;br /&gt;
&lt;br /&gt;
=== RealAudio 2.0 file (.ra version 4) ===&lt;br /&gt;
&lt;br /&gt;
This is second version of the RealAudio file format.  It is distinguished from the above by the value in byte 5 (=0x04).  This type of file must contain a valid [[FourCC]] to identify the audio codec.&lt;br /&gt;
&lt;br /&gt;
Possible [[FourCC]] values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].&lt;br /&gt;
&lt;br /&gt;
 byte[4]  Header signature ('.', 'r', 'a', 0xfd)&lt;br /&gt;
 word     Version (always 4)&lt;br /&gt;
 word     Unused (always 0)&lt;br /&gt;
 byte[4]  ra4 signature (always &amp;quot;.ra4&amp;quot;)&lt;br /&gt;
 dword    Data size - 0x27&lt;br /&gt;
 word     Version2 (always equal to version)&lt;br /&gt;
 dword    Header size - 16&lt;br /&gt;
 word     Codec flavor&lt;br /&gt;
 dword    Coded frame size&lt;br /&gt;
 byte[12] Unknown&lt;br /&gt;
 word     Sub packet h&lt;br /&gt;
 word     Frame size&lt;br /&gt;
 word     Subpacket size&lt;br /&gt;
 word     Unknown&lt;br /&gt;
 word     Samplerate&lt;br /&gt;
 word     Unknown&lt;br /&gt;
 word     Sample size&lt;br /&gt;
 word     Channels&lt;br /&gt;
 byte     Interleaver ID string length (always 4)&lt;br /&gt;
 byte[]   Interleaver ID string&lt;br /&gt;
 byte     [[FourCC]] string length (always 4)&lt;br /&gt;
 byte[]   [[FourCC]] string&lt;br /&gt;
 byte[3]  Unknown&lt;br /&gt;
 byte     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 byte     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 byte     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 byte     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
  Audio Data&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).&lt;br /&gt;
* The informative fields (title, author, copyright and comment) can have zero length.&lt;br /&gt;
&lt;br /&gt;
=== .ra version 5 ===&lt;br /&gt;
&lt;br /&gt;
While the .ra header can contain version 5, there are no known RealAudio files with this format, and it's not known if they really exist.&lt;br /&gt;
&lt;br /&gt;
== RealMedia Format ==&lt;br /&gt;
&lt;br /&gt;
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.&lt;br /&gt;
&lt;br /&gt;
A RealMedia file consists of a series of chunks. Each chunk has the following format:&lt;br /&gt;
&lt;br /&gt;
 dword  chunk type ([[FOURCC]])&lt;br /&gt;
 dword  chunk size, including 8-byte preamble&lt;br /&gt;
 word   chunk version&lt;br /&gt;
 byte[] chunk payload&lt;br /&gt;
&lt;br /&gt;
Real chunk types:&lt;br /&gt;
* .RMF: RealMedia file header (only one per file, must be the first chunk)&lt;br /&gt;
* PROP: File properties (only one per file)&lt;br /&gt;
* MDPR: Stream properties (one for each stream)&lt;br /&gt;
* CONT: Content description/metadata (typically one per file)&lt;br /&gt;
* DATA: File data&lt;br /&gt;
* INDX: File index (typically one per stream)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== RealMedia file header (.RMF) ===&lt;br /&gt;
&lt;br /&gt;
This must be the first chunk in a RealMedia file. Only one .RMF can be present in a file. The only useful information carried by .RMF is the number of headers.&lt;br /&gt;
&lt;br /&gt;
A .RMF chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword chunk type ('.RMF')&lt;br /&gt;
 dword chunk size (typically 0x12)&lt;br /&gt;
 word  chunk version (always 0, for every known file)&lt;br /&gt;
 dword file version&lt;br /&gt;
 dword number of headers&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* All known sample files have version equal to 0.&lt;br /&gt;
* There is a sample with chunk size = 0x10, in that case file version is a word. Note that the sample has chunk version = 0 like all other files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== File properties header (PROP) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.&lt;br /&gt;
&lt;br /&gt;
A PROP chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword  Chunk type ('PROP')&lt;br /&gt;
 dword  Chunk size (typically 0x32)&lt;br /&gt;
 word   Chunk version (always 0, for every known file)&lt;br /&gt;
 dword  Maximum bit rate&lt;br /&gt;
 dword  Average bit rate&lt;br /&gt;
 dword  Size of largest data packet&lt;br /&gt;
 dword  Average size of data packet&lt;br /&gt;
 dword  Number of data packets in the file&lt;br /&gt;
 dword  File duration in ms&lt;br /&gt;
 dword  Suggested number of ms to buffer before starting playback&lt;br /&gt;
 dword  Offset of the first INDX chunk form the start of the file&lt;br /&gt;
 dword  Offset of the first DATA chunk form the start of the file&lt;br /&gt;
 word   Number of streams in the file&lt;br /&gt;
 word   Flags (bitfield, see below)&lt;br /&gt;
&lt;br /&gt;
Flags:&lt;br /&gt;
* bit 0: file can be saved on disk&lt;br /&gt;
* bit 1: PerfectPlay can be used (extra buffering)&lt;br /&gt;
* bit 2: the file is a live broadcast&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Media properties header (MDPR) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains information about the properties of a RealMedia stream. This header defines the type of a stream and the codec used. All codec-related data is in the type specific part of this header.&lt;br /&gt;
&lt;br /&gt;
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.&lt;br /&gt;
&lt;br /&gt;
There is one MDPR chunk for every stream in the file.&lt;br /&gt;
&lt;br /&gt;
A MDPR chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword   Chunk type ('MDPR')&lt;br /&gt;
 dword   Chunk size&lt;br /&gt;
 word    Chunk version (always 0, for every known file)&lt;br /&gt;
 word    Stream number&lt;br /&gt;
 dword   Maximum bit rate&lt;br /&gt;
 dword   Average bit rate&lt;br /&gt;
 dword   Size of largest data packet&lt;br /&gt;
 dword   Average size of data packet&lt;br /&gt;
 dword   Stream start offset in ms&lt;br /&gt;
 dword   Preroll in ms (to be subtracted from timestamps?)&lt;br /&gt;
 dword   Stream duration in ms&lt;br /&gt;
 byte    Size of stream description string&lt;br /&gt;
 byte[]  Stream description string&lt;br /&gt;
 byte    Size of stream mime type string&lt;br /&gt;
 byte[]  Mime type string&lt;br /&gt;
 dword   Size of type specific part of the header&lt;br /&gt;
 byte[]  Type specific data, meaning and format depends on mime type&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Content description header (CONT) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains some text information (like title, author, ...) about the content of the file. This header has an informative purpose only and it's not needed to demux the file.&lt;br /&gt;
&lt;br /&gt;
A CONT chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword   Chunk type ('CONT')&lt;br /&gt;
 dword   Chunk size&lt;br /&gt;
 word    Chunk version (always 0, for every known file)&lt;br /&gt;
 word    Title string length&lt;br /&gt;
 byte[]  Title string&lt;br /&gt;
 word    Author string length&lt;br /&gt;
 byte[]  Author string&lt;br /&gt;
 word    Copyright string length&lt;br /&gt;
 byte[]  Copyright string&lt;br /&gt;
 word    Comment string length&lt;br /&gt;
 byte[]  Comment string&lt;br /&gt;
&lt;br /&gt;
=== Data header (DATA) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains a group of data packets. Packets from each stream are interleaved, except for multirate files.&lt;br /&gt;
&lt;br /&gt;
A DATA chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword   Chunk type ('DATA')&lt;br /&gt;
 dword   Chunk size&lt;br /&gt;
 word    Chunk version (always 0, for every known file)&lt;br /&gt;
 dword   Number of data packets in this chunk&lt;br /&gt;
 dword   Offset of the next DATA chunk (form the start of the file)&lt;br /&gt;
 byte[]  Data packets&lt;br /&gt;
&lt;br /&gt;
Each data packet has this format&lt;br /&gt;
&lt;br /&gt;
  word   Packet version (0 or 1 in available samples)&lt;br /&gt;
  word   Packet size&lt;br /&gt;
  word   Stream number&lt;br /&gt;
  dword  Timestamp (in ms)&lt;br /&gt;
  byte   Unknown&lt;br /&gt;
  byte   Flags (bitfield, see below)&lt;br /&gt;
 #if version == 1&lt;br /&gt;
  byte   Unknown&lt;br /&gt;
 #endif&lt;br /&gt;
  byte[]  Stream-specific data&lt;br /&gt;
&lt;br /&gt;
Flags:&lt;br /&gt;
* bit 0: reliable packet (refers to network transmission method)&lt;br /&gt;
* bit 1: keyframe&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
The previous description of the data packet comes from working demuxer code, the description in official [[Real]] docs (somewhere on [[Helix]] site) is a bit different:&lt;br /&gt;
&lt;br /&gt;
  word   Packet version&lt;br /&gt;
  word   Packet size&lt;br /&gt;
  word   Stream number&lt;br /&gt;
  dword  Timestamp&lt;br /&gt;
 #if version == 0&lt;br /&gt;
  byte   Packet group&lt;br /&gt;
  byte   Flags&lt;br /&gt;
 #endif&lt;br /&gt;
 #if version == 1&lt;br /&gt;
  word   ASM rule&lt;br /&gt;
  byte   ASM flags&lt;br /&gt;
 #endif&lt;br /&gt;
  byte[]  Stream-specific data&lt;br /&gt;
&lt;br /&gt;
where packet group is &amp;quot;The packet group to which the packet belongs. If packet grouping is not used, set this field to 0 (zero)&amp;quot;, asm rule is &amp;quot;The ASM rule assigned to this packet&amp;quot; and asm flags &amp;quot;Contains HX_  flags that dictate stream switching points&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Index header (INDX) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains index entries. It comes after all the DATA chunks.&lt;br /&gt;
An index chunk contains data for a single stream, A file can have more than one INDX chunk.&lt;br /&gt;
&lt;br /&gt;
A INDX chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword   Chunk type ('INDX')&lt;br /&gt;
 dword   Chunk size&lt;br /&gt;
 word    Chunk version (always 0, for every known file)&lt;br /&gt;
 dword   Number of entries in this chunk&lt;br /&gt;
 word    Stream number&lt;br /&gt;
 dword   Offset of the next INDX chunk (form the start of the file)&lt;br /&gt;
 byte[]  Index entries&lt;br /&gt;
&lt;br /&gt;
Each index entry has this format&lt;br /&gt;
&lt;br /&gt;
  word   Entry version (always 0, for every known file)&lt;br /&gt;
  dword  Timestamp (in ms)&lt;br /&gt;
  dword  Packet offset in file (form the start of the file)&lt;br /&gt;
  dword  Packet number&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Codecs ==&lt;br /&gt;
&lt;br /&gt;
Codecs in RealMedia are identified by the following four character codes:&lt;br /&gt;
&lt;br /&gt;
===== Audio =====&lt;br /&gt;
&lt;br /&gt;
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)&lt;br /&gt;
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)&lt;br /&gt;
* [[RealAudio_dnet|dnet]] - AC3&lt;br /&gt;
* [[RealAudio_sipr|sipr]] - Sipro&lt;br /&gt;
* [[RealAudio_cook|cook]] - Cook&lt;br /&gt;
* [[RealAudio_atrc|atrc]] - ATRAC&lt;br /&gt;
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format&lt;br /&gt;
* [[RealAudio_raac|raac]] - LC-AAC&lt;br /&gt;
* [[RealAudio_racp|racp]] - HE-AAC&lt;br /&gt;
&lt;br /&gt;
===== Video =====&lt;br /&gt;
&lt;br /&gt;
* [[RealVideo|RV10]] - H.263&lt;br /&gt;
* [[RealVideo|RV13]] - H.263&lt;br /&gt;
* [[RealVideo G2|RV20]] - H.263+&lt;br /&gt;
* [[RealVideo 3|RV30]] - Unknown format&lt;br /&gt;
* [[RealVideo 4|RV40]] - Unknown format&lt;br /&gt;
&lt;br /&gt;
[[Category: Container Formats]]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=RealMedia&amp;diff=6601</id>
		<title>RealMedia</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=RealMedia&amp;diff=6601"/>
		<updated>2006-12-19T23:04:49Z</updated>

		<summary type="html">&lt;p&gt;Roberto: Wikify some keywords&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: rm, ra, rmvb&lt;br /&gt;
* Company: [[Real]]&lt;br /&gt;
&lt;br /&gt;
Multimedia container format developed by [[Real]] and used almost exclusively for codecs developed by [[Real]].&lt;br /&gt;
&lt;br /&gt;
The old .ra files are just for audio.  The newer RealMedia (.rm) files are for audio and video.&lt;br /&gt;
&lt;br /&gt;
== RA Format ==&lt;br /&gt;
&lt;br /&gt;
This is the old audio-only RealAudio file format.&lt;br /&gt;
A very similar structure is also used to describe audio streams in RM files.&lt;br /&gt;
&lt;br /&gt;
The audio data part is just a stream of bytes with no structure.&lt;br /&gt;
There is no index in .ra files, but seeking is possible because the codecs are CBR.&lt;br /&gt;
&lt;br /&gt;
=== RealAudio 1.0 file  (.ra version 3) ===&lt;br /&gt;
&lt;br /&gt;
This is from the very first version of RealAudio (1995).  These files can only contain [[RealAudio 14.4|8kbps VSELP]] audio data.  A [[FourCC]] (lpcJ) may be present, but it is ignored.  Byte order is big-endian.&lt;br /&gt;
&lt;br /&gt;
 byte[4]  Header signature ('.', 'r', 'a', 0xfd)&lt;br /&gt;
 word     Version (always 3)&lt;br /&gt;
 word     Header size, not including first 8 bytes&lt;br /&gt;
 byte[10] Unknown&lt;br /&gt;
 dword    Data size&lt;br /&gt;
 byte     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 byte     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 byte     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 byte     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
 byte     Unknown *&lt;br /&gt;
 byte     Fourcc string length (always 4) *&lt;br /&gt;
 byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *&lt;br /&gt;
  Audio data&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* Fields marked with * may be missing. Based on the only known sample with no [[FourCC]], it's assumed that all these fields are either present or missing.  To determine if they are missing, check the header size (bytes 6-7).&lt;br /&gt;
* The informative fields (title, author, copyright and comment) can have zero length.&lt;br /&gt;
&lt;br /&gt;
=== RealAudio 2.0 file (.ra version 4) ===&lt;br /&gt;
&lt;br /&gt;
This is second version of the RealAudio file format.  It is distinguished from the above by the value in byte 5 (=0x04).  This type of file must contain a valid [[FourCC]] to identify the audio codec.&lt;br /&gt;
&lt;br /&gt;
Possible [[FourCC]] values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].&lt;br /&gt;
&lt;br /&gt;
 byte[4]  Header signature ('.', 'r', 'a', 0xfd)&lt;br /&gt;
 word     Version (always 4)&lt;br /&gt;
 word     Unused (always 0)&lt;br /&gt;
 byte[4]  ra4 signature (always &amp;quot;.ra4&amp;quot;)&lt;br /&gt;
 dword    Data size - 0x27&lt;br /&gt;
 word     Version2 (always equal to version)&lt;br /&gt;
 dword    Header size - 16&lt;br /&gt;
 word     Codec flavor&lt;br /&gt;
 dword    Coded frame size&lt;br /&gt;
 byte[12] Unknown&lt;br /&gt;
 word     Sub packet h&lt;br /&gt;
 word     Frame size&lt;br /&gt;
 word     Subpacket size&lt;br /&gt;
 word     Unknown&lt;br /&gt;
 word     Samplerate&lt;br /&gt;
 word     Unknown&lt;br /&gt;
 word     Sample size&lt;br /&gt;
 word     Channels&lt;br /&gt;
 byte     Interleaver ID string length (always 4)&lt;br /&gt;
 byte[]   Interleaver ID string&lt;br /&gt;
 byte     [[FourCC]] string length (always 4)&lt;br /&gt;
 byte[]   [[FourCC]] string&lt;br /&gt;
 byte[3]  Unknown&lt;br /&gt;
 byte     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 byte     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 byte     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 byte     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
  Audio Data&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).&lt;br /&gt;
* The informative fields (title, author, copyright and comment) can have zero length.&lt;br /&gt;
&lt;br /&gt;
=== .ra version 5 ===&lt;br /&gt;
&lt;br /&gt;
While the .ra header can contain version 5, there are no known RealAudio files with this format, and it's not known if they really exist.&lt;br /&gt;
&lt;br /&gt;
== RealMedia Format ==&lt;br /&gt;
&lt;br /&gt;
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.&lt;br /&gt;
&lt;br /&gt;
A RealMedia file consists of a series of chunks. Each chunk has the following format:&lt;br /&gt;
&lt;br /&gt;
 dword  chunk type ([[FOURCC]])&lt;br /&gt;
 dword  chunk size, including 8-byte preamble&lt;br /&gt;
 word   chunk version&lt;br /&gt;
 byte[] chunk payload&lt;br /&gt;
&lt;br /&gt;
Real chunk types:&lt;br /&gt;
* .RMF: RealMedia file header (only one per file, must be the first chunk)&lt;br /&gt;
* PROP: File properties (only one per file)&lt;br /&gt;
* MDPR: Stream properties (one for each stream)&lt;br /&gt;
* CONT: Content description/metadata (typically one per file)&lt;br /&gt;
* DATA: File data&lt;br /&gt;
* INDX: File index (typically one per stream)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== RealMedia file header (.RMF) ===&lt;br /&gt;
&lt;br /&gt;
This must be the first chunk in a RealMedia file. Only one .RMF can be present in a file. The only useful information carried by .RMF is the number of headers.&lt;br /&gt;
&lt;br /&gt;
A .RMF chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword chunk type ('.RMF')&lt;br /&gt;
 dword chunk size (typically 0x12)&lt;br /&gt;
 word  chunk version (always 0, for every known file)&lt;br /&gt;
 dword file version&lt;br /&gt;
 dword number of headers&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* All known sample files have version equal to 0.&lt;br /&gt;
* There is a sample with chunk size = 0x10, in that case file version is a word. Note that the sample has chunk version = 0 like all other files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== File properties header (PROP) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.&lt;br /&gt;
&lt;br /&gt;
A PROP chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword  Chunk type ('PROP')&lt;br /&gt;
 dword  Chunk size (typically 0x32)&lt;br /&gt;
 word   Chunk version (always 0, for every known file)&lt;br /&gt;
 dword  Maximum bit rate&lt;br /&gt;
 dword  Average bit rate&lt;br /&gt;
 dword  Size of largest data packet&lt;br /&gt;
 dword  Average size of data packet&lt;br /&gt;
 dword  Number of data packets in the file&lt;br /&gt;
 dword  File duration in ms&lt;br /&gt;
 dword  Suggested number of ms to buffer before starting playback&lt;br /&gt;
 dword  Offset of the first INDX chunk form the start of the file&lt;br /&gt;
 dword  Offset of the first DATA chunk form the start of the file&lt;br /&gt;
 word   Number of streams in the file&lt;br /&gt;
 word   Flags (bitfield, see below)&lt;br /&gt;
&lt;br /&gt;
Flags:&lt;br /&gt;
* bit 0: file can be saved on disk&lt;br /&gt;
* bit 1: PerfectPlay can be used (extra buffering)&lt;br /&gt;
* bit 2: the file is a live broadcast&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Media properties header (MDPR) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains information about the properties of a RealMedia stream. This header defines the type of a stream and the codec used. All codec-related data is in the type specific part of this header.&lt;br /&gt;
&lt;br /&gt;
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.&lt;br /&gt;
&lt;br /&gt;
There is one MDPR chunk for every stream in the file.&lt;br /&gt;
&lt;br /&gt;
A MDPR chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword   Chunk type ('MDPR')&lt;br /&gt;
 dword   Chunk size&lt;br /&gt;
 word    Chunk version (always 0, for every known file)&lt;br /&gt;
 word    Stream number&lt;br /&gt;
 dword   Maximum bit rate&lt;br /&gt;
 dword   Average bit rate&lt;br /&gt;
 dword   Size of largest data packet&lt;br /&gt;
 dword   Average size of data packet&lt;br /&gt;
 dword   Stream start offset in ms&lt;br /&gt;
 dword   Preroll in ms (to be subtracted from timestamps?)&lt;br /&gt;
 dword   Stream duration in ms&lt;br /&gt;
 byte    Size of stream description string&lt;br /&gt;
 byte[]  Stream description string&lt;br /&gt;
 byte    Size of stream mime type string&lt;br /&gt;
 byte[]  Mime type string&lt;br /&gt;
 dword   Size of type specific part of the header&lt;br /&gt;
 byte[]  Type specific data, meaning and format depends on mime type&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Content description header (CONT) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains some text information (like title, author, ...) about the content of the file. This header has an informative purpose only and it's not needed to demux the file.&lt;br /&gt;
&lt;br /&gt;
A CONT chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword   Chunk type ('CONT')&lt;br /&gt;
 dword   Chunk size&lt;br /&gt;
 word    Chunk version (always 0, for every known file)&lt;br /&gt;
 word     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 word     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 word     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 word     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Data header (DATA) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains a group of data packets. Packets from each stream are interleaved, except for multirate files.&lt;br /&gt;
&lt;br /&gt;
A DATA chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword   Chunk type ('DATA')&lt;br /&gt;
 dword   Chunk size&lt;br /&gt;
 word    Chunk version (always 0, for every known file)&lt;br /&gt;
 dword   Number of data packets in this chunk&lt;br /&gt;
 dword   Offset of the next DATA chunk (form the start of the file)&lt;br /&gt;
 byte[]  Data packets&lt;br /&gt;
&lt;br /&gt;
Each data packet has this format&lt;br /&gt;
&lt;br /&gt;
  word   Packet version (0 or 1 in available samples)&lt;br /&gt;
  word   Packet size&lt;br /&gt;
  word   Stream number&lt;br /&gt;
  dword  Timestamp (in ms)&lt;br /&gt;
  byte   Unknown&lt;br /&gt;
  byte   Flags (bitfield, see below)&lt;br /&gt;
 #if version == 1&lt;br /&gt;
  byte   Unknown&lt;br /&gt;
 #endif&lt;br /&gt;
  byte[]  Stream-specific data&lt;br /&gt;
&lt;br /&gt;
Flags:&lt;br /&gt;
* bit 0: reliable packet (refers to network transmission method)&lt;br /&gt;
* bit 1: keyframe&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
The previous description of the data packet comes from working demuxer code, the description in official [[Real]] docs (somewhere on [[Helix]] site) is a bit different:&lt;br /&gt;
&lt;br /&gt;
  word   Packet version&lt;br /&gt;
  word   Packet size&lt;br /&gt;
  word   Stream number&lt;br /&gt;
  dword  Timestamp&lt;br /&gt;
 #if version == 0&lt;br /&gt;
  byte   Packet group&lt;br /&gt;
  byte   Flags&lt;br /&gt;
 #endif&lt;br /&gt;
 #if version == 1&lt;br /&gt;
  word   ASM rule&lt;br /&gt;
  byte   ASM flags&lt;br /&gt;
 #endif&lt;br /&gt;
  byte[]  Stream-specific data&lt;br /&gt;
&lt;br /&gt;
where packet group is &amp;quot;The packet group to which the packet belongs. If packet grouping is not used, set this field to 0 (zero)&amp;quot;, asm rule is &amp;quot;The ASM rule assigned to this packet&amp;quot; and asm flags &amp;quot;Contains HX_  flags that dictate stream switching points&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Index header (INDX) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains index entries. It comes after all the DATA chunks.&lt;br /&gt;
An index chunk contains data for a single stream, A file can have more than one INDX chunk.&lt;br /&gt;
&lt;br /&gt;
A INDX chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword   Chunk type ('INDX')&lt;br /&gt;
 dword   Chunk size&lt;br /&gt;
 word    Chunk version (always 0, for every known file)&lt;br /&gt;
 dword   Number of entries in this chunk&lt;br /&gt;
 word    Stream number&lt;br /&gt;
 dword   Offset of the next INDX chunk (form the start of the file)&lt;br /&gt;
 byte[]  Index entries&lt;br /&gt;
&lt;br /&gt;
Each index entry has this format&lt;br /&gt;
&lt;br /&gt;
  word   Entry version (always 0, for every known file)&lt;br /&gt;
  dword  Timestamp (in ms)&lt;br /&gt;
  dword  Packet offset in file (form the start of the file)&lt;br /&gt;
  dword  Packet number&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Codecs ==&lt;br /&gt;
&lt;br /&gt;
Codecs in RealMedia are identified by the following four character codes:&lt;br /&gt;
&lt;br /&gt;
===== Audio =====&lt;br /&gt;
&lt;br /&gt;
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)&lt;br /&gt;
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)&lt;br /&gt;
* [[RealAudio_dnet|dnet]] - AC3&lt;br /&gt;
* [[RealAudio_sipr|sipr]] - Sipro&lt;br /&gt;
* [[RealAudio_cook|cook]] - Cook&lt;br /&gt;
* [[RealAudio_atrc|atrc]] - ATRAC&lt;br /&gt;
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format&lt;br /&gt;
* [[RealAudio_raac|raac]] - LC-AAC&lt;br /&gt;
* [[RealAudio_racp|racp]] - HE-AAC&lt;br /&gt;
&lt;br /&gt;
===== Video =====&lt;br /&gt;
&lt;br /&gt;
* [[RealVideo|RV10]] - H.263&lt;br /&gt;
* [[RealVideo|RV13]] - H.263&lt;br /&gt;
* [[RealVideo G2|RV20]] - H.263+&lt;br /&gt;
* [[RealVideo 3|RV30]] - Unknown format&lt;br /&gt;
* [[RealVideo 4|RV40]] - Unknown format&lt;br /&gt;
&lt;br /&gt;
[[Category: Container Formats]]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=RealMedia&amp;diff=6600</id>
		<title>RealMedia</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=RealMedia&amp;diff=6600"/>
		<updated>2006-12-19T22:48:18Z</updated>

		<summary type="html">&lt;p&gt;Roberto: Remove redundant comment in &amp;quot;official&amp;quot; Real data packet format&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: rm, ra, rmvb&lt;br /&gt;
* Company: [[Real]]&lt;br /&gt;
&lt;br /&gt;
Multimedia container format developed by [[Real]] and used almost exclusively for codecs developed by Real.&lt;br /&gt;
&lt;br /&gt;
The old .ra files are just for audio.  The newer RealMedia (.rm) files are for audio and video.&lt;br /&gt;
&lt;br /&gt;
== RA Format ==&lt;br /&gt;
&lt;br /&gt;
This is the old audio-only RealAudio file format.&lt;br /&gt;
A very similar structure is also used to describe audio streams in RM files.&lt;br /&gt;
&lt;br /&gt;
The audio data part is just a stream of bytes with no structure.&lt;br /&gt;
There is no index in .ra files, but seeking is possible because the codecs are CBR.&lt;br /&gt;
&lt;br /&gt;
=== RealAudio 1.0 file  (.ra version 3) ===&lt;br /&gt;
&lt;br /&gt;
This is from the very first version of RealAudio (1995).  These files can only contain [[RealAudio 14.4|8kbps VSELP]] audio data.  A FourCC (lpcJ) may be present, but it is ignored.  Byte order is big-endian.&lt;br /&gt;
&lt;br /&gt;
 byte[4]  Header signature ('.', 'r', 'a', 0xfd)&lt;br /&gt;
 word     Version (always 3)&lt;br /&gt;
 word     Header size, not including first 8 bytes&lt;br /&gt;
 byte[10] Unknown&lt;br /&gt;
 dword    Data size&lt;br /&gt;
 byte     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 byte     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 byte     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 byte     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
 byte     Unknown *&lt;br /&gt;
 byte     Fourcc string length (always 4) *&lt;br /&gt;
 byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *&lt;br /&gt;
  Audio data&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* Fields marked with * may be missing. Based on the only known sample with no FourCC, it's assumed that all these fields are either present or missing.  To determine if they are missing, check the header size (bytes 6-7).&lt;br /&gt;
* The informative fields (title, author, copyright and comment) can have zero length.&lt;br /&gt;
&lt;br /&gt;
=== RealAudio 2.0 file (.ra version 4) ===&lt;br /&gt;
&lt;br /&gt;
This is second version of the RealAudio file format.  It is distinguished from the above by the value in byte 5 (=0x04).  This type of file must contain a valid FourCC to identify the audio codec.&lt;br /&gt;
&lt;br /&gt;
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].&lt;br /&gt;
&lt;br /&gt;
 byte[4]  Header signature ('.', 'r', 'a', 0xfd)&lt;br /&gt;
 word     Version (always 4)&lt;br /&gt;
 word     Unused (always 0)&lt;br /&gt;
 byte[4]  ra4 signature (always &amp;quot;.ra4&amp;quot;)&lt;br /&gt;
 dword    Data size - 0x27&lt;br /&gt;
 word     Version2 (always equal to version)&lt;br /&gt;
 dword    Header size - 16&lt;br /&gt;
 word     Codec flavor&lt;br /&gt;
 dword    Coded frame size&lt;br /&gt;
 byte[12] Unknown&lt;br /&gt;
 word     Sub packet h&lt;br /&gt;
 word     Frame size&lt;br /&gt;
 word     Subpacket size&lt;br /&gt;
 word     Unknown&lt;br /&gt;
 word     Samplerate&lt;br /&gt;
 word     Unknown&lt;br /&gt;
 word     Sample size&lt;br /&gt;
 word     Channels&lt;br /&gt;
 byte     Interleaver ID string length (always 4)&lt;br /&gt;
 byte[]   Interleaver ID string&lt;br /&gt;
 byte     FourCC string length (always 4)&lt;br /&gt;
 byte[]   FourCC string&lt;br /&gt;
 byte[3]  Unknown&lt;br /&gt;
 byte     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 byte     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 byte     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 byte     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
  Audio Data&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).&lt;br /&gt;
* The informative fields (title, author, copyright and comment) can have zero length.&lt;br /&gt;
&lt;br /&gt;
=== .ra version 5 ===&lt;br /&gt;
&lt;br /&gt;
While the .ra header can contain version 5, there are no known RealAudio files with this format, and it's not known if they really exist.&lt;br /&gt;
&lt;br /&gt;
== RealMedia Format ==&lt;br /&gt;
&lt;br /&gt;
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.&lt;br /&gt;
&lt;br /&gt;
A RealMedia file consists of a series of chunks. Each chunk has the following format:&lt;br /&gt;
&lt;br /&gt;
 dword  chunk type ([[FOURCC]])&lt;br /&gt;
 dword  chunk size, including 8-byte preamble&lt;br /&gt;
 word   chunk version&lt;br /&gt;
 byte[] chunk payload&lt;br /&gt;
&lt;br /&gt;
Real chunk types:&lt;br /&gt;
* .RMF: RealMedia file header (only one per file, must be the first chunk)&lt;br /&gt;
* PROP: File properties (only one per file)&lt;br /&gt;
* MDPR: Stream properties (one for each stream)&lt;br /&gt;
* CONT: Content description/metadata (typically one per file)&lt;br /&gt;
* DATA: File data&lt;br /&gt;
* INDX: File index (typically one per stream)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== RealMedia file header (.RMF) ===&lt;br /&gt;
&lt;br /&gt;
This must be the first chunk in a RealMedia file. Only one .RMF can be present in a file. The only useful information carried by .RMF is the number of headers.&lt;br /&gt;
&lt;br /&gt;
A .RMF chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword chunk type ('.RMF')&lt;br /&gt;
 dword chunk size (typically 0x12)&lt;br /&gt;
 word  chunk version (always 0, for every known file)&lt;br /&gt;
 dword file version&lt;br /&gt;
 dword number of headers&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* All known sample files have version equal to 0.&lt;br /&gt;
* There is a sample with chunk size = 0x10, in that case file version is a word. Note that the sample has chunk version = 0 like all other files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== File properties header (PROP) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.&lt;br /&gt;
&lt;br /&gt;
A PROP chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword  Chunk type ('PROP')&lt;br /&gt;
 dword  Chunk size (typically 0x32)&lt;br /&gt;
 word   Chunk version (always 0, for every known file)&lt;br /&gt;
 dword  Maximum bit rate&lt;br /&gt;
 dword  Average bit rate&lt;br /&gt;
 dword  Size of largest data packet&lt;br /&gt;
 dword  Average size of data packet&lt;br /&gt;
 dword  Number of data packets in the file&lt;br /&gt;
 dword  File duration in ms&lt;br /&gt;
 dword  Suggested number of ms to buffer before starting playback&lt;br /&gt;
 dword  Offset of the first INDX chunk form the start of the file&lt;br /&gt;
 dword  Offset of the first DATA chunk form the start of the file&lt;br /&gt;
 word   Number of streams in the file&lt;br /&gt;
 word   Flags (bitfield, see below)&lt;br /&gt;
&lt;br /&gt;
Flags:&lt;br /&gt;
* bit 0: file can be saved on disk&lt;br /&gt;
* bit 1: PerfectPlay can be used (extra buffering)&lt;br /&gt;
* bit 2: the file is a live broadcast&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Media properties header (MDPR) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains information about the properties of a RealMedia stream. This header defines the type of a stream and the codec used. All codec-related data is in the type specific part of this header.&lt;br /&gt;
&lt;br /&gt;
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.&lt;br /&gt;
&lt;br /&gt;
There is one MDPR chunk for every stream in the file.&lt;br /&gt;
&lt;br /&gt;
A MDPR chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword   Chunk type ('MDPR')&lt;br /&gt;
 dword   Chunk size&lt;br /&gt;
 word    Chunk version (always 0, for every known file)&lt;br /&gt;
 word    Stream number&lt;br /&gt;
 dword   Maximum bit rate&lt;br /&gt;
 dword   Average bit rate&lt;br /&gt;
 dword   Size of largest data packet&lt;br /&gt;
 dword   Average size of data packet&lt;br /&gt;
 dword   Stream start offset in ms&lt;br /&gt;
 dword   Preroll in ms (to be subtracted from timestamps?)&lt;br /&gt;
 dword   Stream duration in ms&lt;br /&gt;
 byte    Size of stream description string&lt;br /&gt;
 byte[]  Stream description string&lt;br /&gt;
 byte    Size of stream mime type string&lt;br /&gt;
 byte[]  Mime type string&lt;br /&gt;
 dword   Size of type specific part of the header&lt;br /&gt;
 byte[]  Type specific data, meaning and format depends on mime type&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Content description header (CONT) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains some text information (like title, author, ...) about the content of the file. This header has an informative purpose only and it's not needed to demux the file.&lt;br /&gt;
&lt;br /&gt;
A CONT chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword   Chunk type ('CONT')&lt;br /&gt;
 dword   Chunk size&lt;br /&gt;
 word    Chunk version (always 0, for every known file)&lt;br /&gt;
 word     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 word     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 word     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 word     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Data header (DATA) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains a group of data packets. Packets from each stream are interleaved, except for multirate files.&lt;br /&gt;
&lt;br /&gt;
A DATA chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword   Chunk type ('DATA')&lt;br /&gt;
 dword   Chunk size&lt;br /&gt;
 word    Chunk version (always 0, for every known file)&lt;br /&gt;
 dword   Number of data packets in this chunk&lt;br /&gt;
 dword   Offset of the next DATA chunk (form the start of the file)&lt;br /&gt;
 byte[]  Data packets&lt;br /&gt;
&lt;br /&gt;
Each data packet has this format&lt;br /&gt;
&lt;br /&gt;
  word   Packet version (0 or 1 in available samples)&lt;br /&gt;
  word   Packet size&lt;br /&gt;
  word   Stream number&lt;br /&gt;
  dword  Timestamp (in ms)&lt;br /&gt;
  byte   Unknown&lt;br /&gt;
  byte   Flags (bitfield, see below)&lt;br /&gt;
 #if version == 1&lt;br /&gt;
  byte   Unknown&lt;br /&gt;
 #endif&lt;br /&gt;
  byte[]  Stream-specific data&lt;br /&gt;
&lt;br /&gt;
Flags:&lt;br /&gt;
* bit 0: reliable packet (refers to network transmission method)&lt;br /&gt;
* bit 1: keyframe&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
The previous description of the data packet comes from working demuxer code, the description in official Real docs (somewhere on Helix site) is a bit different:&lt;br /&gt;
&lt;br /&gt;
  word   Packet version&lt;br /&gt;
  word   Packet size&lt;br /&gt;
  word   Stream number&lt;br /&gt;
  dword  Timestamp&lt;br /&gt;
 #if version == 0&lt;br /&gt;
  byte   Packet group&lt;br /&gt;
  byte   Flags&lt;br /&gt;
 #endif&lt;br /&gt;
 #if version == 1&lt;br /&gt;
  word   ASM rule&lt;br /&gt;
  byte   ASM flags&lt;br /&gt;
 #endif&lt;br /&gt;
  byte[]  Stream-specific data&lt;br /&gt;
&lt;br /&gt;
where packet group is &amp;quot;The packet group to which the packet belongs. If packet grouping is not used, set this field to 0 (zero)&amp;quot;, asm rule is &amp;quot;The ASM rule assigned to this packet&amp;quot; and asm flags &amp;quot;Contains HX_  flags that dictate stream switching points&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Index header (INDX) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains index entries. It comes after all the DATA chunks.&lt;br /&gt;
An index chunk contains data for a single stream, A file can have more than one INDX chunk.&lt;br /&gt;
&lt;br /&gt;
A INDX chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword   Chunk type ('INDX')&lt;br /&gt;
 dword   Chunk size&lt;br /&gt;
 word    Chunk version (always 0, for every known file)&lt;br /&gt;
 dword   Number of entries in this chunk&lt;br /&gt;
 word    Stream number&lt;br /&gt;
 dword   Offset of the next INDX chunk (form the start of the file)&lt;br /&gt;
 byte[]  Index entries&lt;br /&gt;
&lt;br /&gt;
Each index entry has this format&lt;br /&gt;
&lt;br /&gt;
  word   Entry version (always 0, for every known file)&lt;br /&gt;
  dword  Timestamp (in ms)&lt;br /&gt;
  dword  Packet offset in file (form the start of the file)&lt;br /&gt;
  dword  Packet number&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Codecs ==&lt;br /&gt;
&lt;br /&gt;
Codecs in RealMedia are identified by the following four character codes:&lt;br /&gt;
&lt;br /&gt;
===== Audio =====&lt;br /&gt;
&lt;br /&gt;
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)&lt;br /&gt;
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)&lt;br /&gt;
* [[RealAudio_dnet|dnet]] - AC3&lt;br /&gt;
* [[RealAudio_sipr|sipr]] - Sipro&lt;br /&gt;
* [[RealAudio_cook|cook]] - Cook&lt;br /&gt;
* [[RealAudio_atrc|atrc]] - ATRAC&lt;br /&gt;
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format&lt;br /&gt;
* [[RealAudio_raac|raac]] - LC-AAC&lt;br /&gt;
* [[RealAudio_racp|racp]] - HE-AAC&lt;br /&gt;
&lt;br /&gt;
===== Video =====&lt;br /&gt;
&lt;br /&gt;
* [[RealVideo|RV10]] - H.263&lt;br /&gt;
* [[RealVideo|RV13]] - H.263&lt;br /&gt;
* [[RealVideo G2|RV20]] - H.263+&lt;br /&gt;
* [[RealVideo 3|RV30]] - Unknown format&lt;br /&gt;
* [[RealVideo 4|RV40]] - Unknown format&lt;br /&gt;
&lt;br /&gt;
[[Category: Container Formats]]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=RealMedia&amp;diff=6599</id>
		<title>RealMedia</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=RealMedia&amp;diff=6599"/>
		<updated>2006-12-19T22:47:16Z</updated>

		<summary type="html">&lt;p&gt;Roberto: Add time unit to data packet timestamp&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: rm, ra, rmvb&lt;br /&gt;
* Company: [[Real]]&lt;br /&gt;
&lt;br /&gt;
Multimedia container format developed by [[Real]] and used almost exclusively for codecs developed by Real.&lt;br /&gt;
&lt;br /&gt;
The old .ra files are just for audio.  The newer RealMedia (.rm) files are for audio and video.&lt;br /&gt;
&lt;br /&gt;
== RA Format ==&lt;br /&gt;
&lt;br /&gt;
This is the old audio-only RealAudio file format.&lt;br /&gt;
A very similar structure is also used to describe audio streams in RM files.&lt;br /&gt;
&lt;br /&gt;
The audio data part is just a stream of bytes with no structure.&lt;br /&gt;
There is no index in .ra files, but seeking is possible because the codecs are CBR.&lt;br /&gt;
&lt;br /&gt;
=== RealAudio 1.0 file  (.ra version 3) ===&lt;br /&gt;
&lt;br /&gt;
This is from the very first version of RealAudio (1995).  These files can only contain [[RealAudio 14.4|8kbps VSELP]] audio data.  A FourCC (lpcJ) may be present, but it is ignored.  Byte order is big-endian.&lt;br /&gt;
&lt;br /&gt;
 byte[4]  Header signature ('.', 'r', 'a', 0xfd)&lt;br /&gt;
 word     Version (always 3)&lt;br /&gt;
 word     Header size, not including first 8 bytes&lt;br /&gt;
 byte[10] Unknown&lt;br /&gt;
 dword    Data size&lt;br /&gt;
 byte     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 byte     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 byte     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 byte     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
 byte     Unknown *&lt;br /&gt;
 byte     Fourcc string length (always 4) *&lt;br /&gt;
 byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *&lt;br /&gt;
  Audio data&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* Fields marked with * may be missing. Based on the only known sample with no FourCC, it's assumed that all these fields are either present or missing.  To determine if they are missing, check the header size (bytes 6-7).&lt;br /&gt;
* The informative fields (title, author, copyright and comment) can have zero length.&lt;br /&gt;
&lt;br /&gt;
=== RealAudio 2.0 file (.ra version 4) ===&lt;br /&gt;
&lt;br /&gt;
This is second version of the RealAudio file format.  It is distinguished from the above by the value in byte 5 (=0x04).  This type of file must contain a valid FourCC to identify the audio codec.&lt;br /&gt;
&lt;br /&gt;
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].&lt;br /&gt;
&lt;br /&gt;
 byte[4]  Header signature ('.', 'r', 'a', 0xfd)&lt;br /&gt;
 word     Version (always 4)&lt;br /&gt;
 word     Unused (always 0)&lt;br /&gt;
 byte[4]  ra4 signature (always &amp;quot;.ra4&amp;quot;)&lt;br /&gt;
 dword    Data size - 0x27&lt;br /&gt;
 word     Version2 (always equal to version)&lt;br /&gt;
 dword    Header size - 16&lt;br /&gt;
 word     Codec flavor&lt;br /&gt;
 dword    Coded frame size&lt;br /&gt;
 byte[12] Unknown&lt;br /&gt;
 word     Sub packet h&lt;br /&gt;
 word     Frame size&lt;br /&gt;
 word     Subpacket size&lt;br /&gt;
 word     Unknown&lt;br /&gt;
 word     Samplerate&lt;br /&gt;
 word     Unknown&lt;br /&gt;
 word     Sample size&lt;br /&gt;
 word     Channels&lt;br /&gt;
 byte     Interleaver ID string length (always 4)&lt;br /&gt;
 byte[]   Interleaver ID string&lt;br /&gt;
 byte     FourCC string length (always 4)&lt;br /&gt;
 byte[]   FourCC string&lt;br /&gt;
 byte[3]  Unknown&lt;br /&gt;
 byte     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 byte     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 byte     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 byte     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
  Audio Data&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).&lt;br /&gt;
* The informative fields (title, author, copyright and comment) can have zero length.&lt;br /&gt;
&lt;br /&gt;
=== .ra version 5 ===&lt;br /&gt;
&lt;br /&gt;
While the .ra header can contain version 5, there are no known RealAudio files with this format, and it's not known if they really exist.&lt;br /&gt;
&lt;br /&gt;
== RealMedia Format ==&lt;br /&gt;
&lt;br /&gt;
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.&lt;br /&gt;
&lt;br /&gt;
A RealMedia file consists of a series of chunks. Each chunk has the following format:&lt;br /&gt;
&lt;br /&gt;
 dword  chunk type ([[FOURCC]])&lt;br /&gt;
 dword  chunk size, including 8-byte preamble&lt;br /&gt;
 word   chunk version&lt;br /&gt;
 byte[] chunk payload&lt;br /&gt;
&lt;br /&gt;
Real chunk types:&lt;br /&gt;
* .RMF: RealMedia file header (only one per file, must be the first chunk)&lt;br /&gt;
* PROP: File properties (only one per file)&lt;br /&gt;
* MDPR: Stream properties (one for each stream)&lt;br /&gt;
* CONT: Content description/metadata (typically one per file)&lt;br /&gt;
* DATA: File data&lt;br /&gt;
* INDX: File index (typically one per stream)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== RealMedia file header (.RMF) ===&lt;br /&gt;
&lt;br /&gt;
This must be the first chunk in a RealMedia file. Only one .RMF can be present in a file. The only useful information carried by .RMF is the number of headers.&lt;br /&gt;
&lt;br /&gt;
A .RMF chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword chunk type ('.RMF')&lt;br /&gt;
 dword chunk size (typically 0x12)&lt;br /&gt;
 word  chunk version (always 0, for every known file)&lt;br /&gt;
 dword file version&lt;br /&gt;
 dword number of headers&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* All known sample files have version equal to 0.&lt;br /&gt;
* There is a sample with chunk size = 0x10, in that case file version is a word. Note that the sample has chunk version = 0 like all other files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== File properties header (PROP) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.&lt;br /&gt;
&lt;br /&gt;
A PROP chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword  Chunk type ('PROP')&lt;br /&gt;
 dword  Chunk size (typically 0x32)&lt;br /&gt;
 word   Chunk version (always 0, for every known file)&lt;br /&gt;
 dword  Maximum bit rate&lt;br /&gt;
 dword  Average bit rate&lt;br /&gt;
 dword  Size of largest data packet&lt;br /&gt;
 dword  Average size of data packet&lt;br /&gt;
 dword  Number of data packets in the file&lt;br /&gt;
 dword  File duration in ms&lt;br /&gt;
 dword  Suggested number of ms to buffer before starting playback&lt;br /&gt;
 dword  Offset of the first INDX chunk form the start of the file&lt;br /&gt;
 dword  Offset of the first DATA chunk form the start of the file&lt;br /&gt;
 word   Number of streams in the file&lt;br /&gt;
 word   Flags (bitfield, see below)&lt;br /&gt;
&lt;br /&gt;
Flags:&lt;br /&gt;
* bit 0: file can be saved on disk&lt;br /&gt;
* bit 1: PerfectPlay can be used (extra buffering)&lt;br /&gt;
* bit 2: the file is a live broadcast&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Media properties header (MDPR) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains information about the properties of a RealMedia stream. This header defines the type of a stream and the codec used. All codec-related data is in the type specific part of this header.&lt;br /&gt;
&lt;br /&gt;
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.&lt;br /&gt;
&lt;br /&gt;
There is one MDPR chunk for every stream in the file.&lt;br /&gt;
&lt;br /&gt;
A MDPR chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword   Chunk type ('MDPR')&lt;br /&gt;
 dword   Chunk size&lt;br /&gt;
 word    Chunk version (always 0, for every known file)&lt;br /&gt;
 word    Stream number&lt;br /&gt;
 dword   Maximum bit rate&lt;br /&gt;
 dword   Average bit rate&lt;br /&gt;
 dword   Size of largest data packet&lt;br /&gt;
 dword   Average size of data packet&lt;br /&gt;
 dword   Stream start offset in ms&lt;br /&gt;
 dword   Preroll in ms (to be subtracted from timestamps?)&lt;br /&gt;
 dword   Stream duration in ms&lt;br /&gt;
 byte    Size of stream description string&lt;br /&gt;
 byte[]  Stream description string&lt;br /&gt;
 byte    Size of stream mime type string&lt;br /&gt;
 byte[]  Mime type string&lt;br /&gt;
 dword   Size of type specific part of the header&lt;br /&gt;
 byte[]  Type specific data, meaning and format depends on mime type&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Content description header (CONT) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains some text information (like title, author, ...) about the content of the file. This header has an informative purpose only and it's not needed to demux the file.&lt;br /&gt;
&lt;br /&gt;
A CONT chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword   Chunk type ('CONT')&lt;br /&gt;
 dword   Chunk size&lt;br /&gt;
 word    Chunk version (always 0, for every known file)&lt;br /&gt;
 word     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 word     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 word     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 word     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Data header (DATA) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains a group of data packets. Packets from each stream are interleaved, except for multirate files.&lt;br /&gt;
&lt;br /&gt;
A DATA chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword   Chunk type ('DATA')&lt;br /&gt;
 dword   Chunk size&lt;br /&gt;
 word    Chunk version (always 0, for every known file)&lt;br /&gt;
 dword   Number of data packets in this chunk&lt;br /&gt;
 dword   Offset of the next DATA chunk (form the start of the file)&lt;br /&gt;
 byte[]  Data packets&lt;br /&gt;
&lt;br /&gt;
Each data packet has this format&lt;br /&gt;
&lt;br /&gt;
  word   Packet version (0 or 1 in available samples)&lt;br /&gt;
  word   Packet size&lt;br /&gt;
  word   Stream number&lt;br /&gt;
  dword  Timestamp (in ms)&lt;br /&gt;
  byte   Unknown&lt;br /&gt;
  byte   Flags (bitfield, see below)&lt;br /&gt;
 #if version == 1&lt;br /&gt;
  byte   Unknown&lt;br /&gt;
 #endif&lt;br /&gt;
  byte[]  Stream-specific data&lt;br /&gt;
&lt;br /&gt;
Flags:&lt;br /&gt;
* bit 0: reliable packet (refers to network transmission method)&lt;br /&gt;
* bit 1: keyframe&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
The previous description of the data packet comes from working demuxer code, the description in official Real docs (somewhere on Helix site) is a bit different:&lt;br /&gt;
&lt;br /&gt;
  word   Packet version&lt;br /&gt;
  word   Packet size&lt;br /&gt;
  word   Stream number&lt;br /&gt;
  dword  Timestamp&lt;br /&gt;
 #if version == 0&lt;br /&gt;
  byte   Packet group&lt;br /&gt;
  byte   Flags (bitfield, see below)&lt;br /&gt;
 #endif&lt;br /&gt;
 #if version == 1&lt;br /&gt;
  word   ASM rule&lt;br /&gt;
  byte   ASM flags&lt;br /&gt;
 #endif&lt;br /&gt;
  byte[]  Stream-specific data&lt;br /&gt;
&lt;br /&gt;
where packet group is &amp;quot;The packet group to which the packet belongs. If packet grouping is not used, set this field to 0 (zero)&amp;quot;, asm rule is &amp;quot;The ASM rule assigned to this packet&amp;quot; and asm flags &amp;quot;Contains HX_  flags that dictate stream switching points&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Index header (INDX) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains index entries. It comes after all the DATA chunks.&lt;br /&gt;
An index chunk contains data for a single stream, A file can have more than one INDX chunk.&lt;br /&gt;
&lt;br /&gt;
A INDX chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword   Chunk type ('INDX')&lt;br /&gt;
 dword   Chunk size&lt;br /&gt;
 word    Chunk version (always 0, for every known file)&lt;br /&gt;
 dword   Number of entries in this chunk&lt;br /&gt;
 word    Stream number&lt;br /&gt;
 dword   Offset of the next INDX chunk (form the start of the file)&lt;br /&gt;
 byte[]  Index entries&lt;br /&gt;
&lt;br /&gt;
Each index entry has this format&lt;br /&gt;
&lt;br /&gt;
  word   Entry version (always 0, for every known file)&lt;br /&gt;
  dword  Timestamp (in ms)&lt;br /&gt;
  dword  Packet offset in file (form the start of the file)&lt;br /&gt;
  dword  Packet number&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Codecs ==&lt;br /&gt;
&lt;br /&gt;
Codecs in RealMedia are identified by the following four character codes:&lt;br /&gt;
&lt;br /&gt;
===== Audio =====&lt;br /&gt;
&lt;br /&gt;
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)&lt;br /&gt;
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)&lt;br /&gt;
* [[RealAudio_dnet|dnet]] - AC3&lt;br /&gt;
* [[RealAudio_sipr|sipr]] - Sipro&lt;br /&gt;
* [[RealAudio_cook|cook]] - Cook&lt;br /&gt;
* [[RealAudio_atrc|atrc]] - ATRAC&lt;br /&gt;
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format&lt;br /&gt;
* [[RealAudio_raac|raac]] - LC-AAC&lt;br /&gt;
* [[RealAudio_racp|racp]] - HE-AAC&lt;br /&gt;
&lt;br /&gt;
===== Video =====&lt;br /&gt;
&lt;br /&gt;
* [[RealVideo|RV10]] - H.263&lt;br /&gt;
* [[RealVideo|RV13]] - H.263&lt;br /&gt;
* [[RealVideo G2|RV20]] - H.263+&lt;br /&gt;
* [[RealVideo 3|RV30]] - Unknown format&lt;br /&gt;
* [[RealVideo 4|RV40]] - Unknown format&lt;br /&gt;
&lt;br /&gt;
[[Category: Container Formats]]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=RealMedia&amp;diff=6598</id>
		<title>RealMedia</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=RealMedia&amp;diff=6598"/>
		<updated>2006-12-19T22:46:23Z</updated>

		<summary type="html">&lt;p&gt;Roberto: INDX chunk and index entries&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: rm, ra, rmvb&lt;br /&gt;
* Company: [[Real]]&lt;br /&gt;
&lt;br /&gt;
Multimedia container format developed by [[Real]] and used almost exclusively for codecs developed by Real.&lt;br /&gt;
&lt;br /&gt;
The old .ra files are just for audio.  The newer RealMedia (.rm) files are for audio and video.&lt;br /&gt;
&lt;br /&gt;
== RA Format ==&lt;br /&gt;
&lt;br /&gt;
This is the old audio-only RealAudio file format.&lt;br /&gt;
A very similar structure is also used to describe audio streams in RM files.&lt;br /&gt;
&lt;br /&gt;
The audio data part is just a stream of bytes with no structure.&lt;br /&gt;
There is no index in .ra files, but seeking is possible because the codecs are CBR.&lt;br /&gt;
&lt;br /&gt;
=== RealAudio 1.0 file  (.ra version 3) ===&lt;br /&gt;
&lt;br /&gt;
This is from the very first version of RealAudio (1995).  These files can only contain [[RealAudio 14.4|8kbps VSELP]] audio data.  A FourCC (lpcJ) may be present, but it is ignored.  Byte order is big-endian.&lt;br /&gt;
&lt;br /&gt;
 byte[4]  Header signature ('.', 'r', 'a', 0xfd)&lt;br /&gt;
 word     Version (always 3)&lt;br /&gt;
 word     Header size, not including first 8 bytes&lt;br /&gt;
 byte[10] Unknown&lt;br /&gt;
 dword    Data size&lt;br /&gt;
 byte     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 byte     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 byte     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 byte     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
 byte     Unknown *&lt;br /&gt;
 byte     Fourcc string length (always 4) *&lt;br /&gt;
 byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *&lt;br /&gt;
  Audio data&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* Fields marked with * may be missing. Based on the only known sample with no FourCC, it's assumed that all these fields are either present or missing.  To determine if they are missing, check the header size (bytes 6-7).&lt;br /&gt;
* The informative fields (title, author, copyright and comment) can have zero length.&lt;br /&gt;
&lt;br /&gt;
=== RealAudio 2.0 file (.ra version 4) ===&lt;br /&gt;
&lt;br /&gt;
This is second version of the RealAudio file format.  It is distinguished from the above by the value in byte 5 (=0x04).  This type of file must contain a valid FourCC to identify the audio codec.&lt;br /&gt;
&lt;br /&gt;
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].&lt;br /&gt;
&lt;br /&gt;
 byte[4]  Header signature ('.', 'r', 'a', 0xfd)&lt;br /&gt;
 word     Version (always 4)&lt;br /&gt;
 word     Unused (always 0)&lt;br /&gt;
 byte[4]  ra4 signature (always &amp;quot;.ra4&amp;quot;)&lt;br /&gt;
 dword    Data size - 0x27&lt;br /&gt;
 word     Version2 (always equal to version)&lt;br /&gt;
 dword    Header size - 16&lt;br /&gt;
 word     Codec flavor&lt;br /&gt;
 dword    Coded frame size&lt;br /&gt;
 byte[12] Unknown&lt;br /&gt;
 word     Sub packet h&lt;br /&gt;
 word     Frame size&lt;br /&gt;
 word     Subpacket size&lt;br /&gt;
 word     Unknown&lt;br /&gt;
 word     Samplerate&lt;br /&gt;
 word     Unknown&lt;br /&gt;
 word     Sample size&lt;br /&gt;
 word     Channels&lt;br /&gt;
 byte     Interleaver ID string length (always 4)&lt;br /&gt;
 byte[]   Interleaver ID string&lt;br /&gt;
 byte     FourCC string length (always 4)&lt;br /&gt;
 byte[]   FourCC string&lt;br /&gt;
 byte[3]  Unknown&lt;br /&gt;
 byte     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 byte     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 byte     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 byte     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
  Audio Data&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).&lt;br /&gt;
* The informative fields (title, author, copyright and comment) can have zero length.&lt;br /&gt;
&lt;br /&gt;
=== .ra version 5 ===&lt;br /&gt;
&lt;br /&gt;
While the .ra header can contain version 5, there are no known RealAudio files with this format, and it's not known if they really exist.&lt;br /&gt;
&lt;br /&gt;
== RealMedia Format ==&lt;br /&gt;
&lt;br /&gt;
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.&lt;br /&gt;
&lt;br /&gt;
A RealMedia file consists of a series of chunks. Each chunk has the following format:&lt;br /&gt;
&lt;br /&gt;
 dword  chunk type ([[FOURCC]])&lt;br /&gt;
 dword  chunk size, including 8-byte preamble&lt;br /&gt;
 word   chunk version&lt;br /&gt;
 byte[] chunk payload&lt;br /&gt;
&lt;br /&gt;
Real chunk types:&lt;br /&gt;
* .RMF: RealMedia file header (only one per file, must be the first chunk)&lt;br /&gt;
* PROP: File properties (only one per file)&lt;br /&gt;
* MDPR: Stream properties (one for each stream)&lt;br /&gt;
* CONT: Content description/metadata (typically one per file)&lt;br /&gt;
* DATA: File data&lt;br /&gt;
* INDX: File index (typically one per stream)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== RealMedia file header (.RMF) ===&lt;br /&gt;
&lt;br /&gt;
This must be the first chunk in a RealMedia file. Only one .RMF can be present in a file. The only useful information carried by .RMF is the number of headers.&lt;br /&gt;
&lt;br /&gt;
A .RMF chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword chunk type ('.RMF')&lt;br /&gt;
 dword chunk size (typically 0x12)&lt;br /&gt;
 word  chunk version (always 0, for every known file)&lt;br /&gt;
 dword file version&lt;br /&gt;
 dword number of headers&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* All known sample files have version equal to 0.&lt;br /&gt;
* There is a sample with chunk size = 0x10, in that case file version is a word. Note that the sample has chunk version = 0 like all other files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== File properties header (PROP) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.&lt;br /&gt;
&lt;br /&gt;
A PROP chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword  Chunk type ('PROP')&lt;br /&gt;
 dword  Chunk size (typically 0x32)&lt;br /&gt;
 word   Chunk version (always 0, for every known file)&lt;br /&gt;
 dword  Maximum bit rate&lt;br /&gt;
 dword  Average bit rate&lt;br /&gt;
 dword  Size of largest data packet&lt;br /&gt;
 dword  Average size of data packet&lt;br /&gt;
 dword  Number of data packets in the file&lt;br /&gt;
 dword  File duration in ms&lt;br /&gt;
 dword  Suggested number of ms to buffer before starting playback&lt;br /&gt;
 dword  Offset of the first INDX chunk form the start of the file&lt;br /&gt;
 dword  Offset of the first DATA chunk form the start of the file&lt;br /&gt;
 word   Number of streams in the file&lt;br /&gt;
 word   Flags (bitfield, see below)&lt;br /&gt;
&lt;br /&gt;
Flags:&lt;br /&gt;
* bit 0: file can be saved on disk&lt;br /&gt;
* bit 1: PerfectPlay can be used (extra buffering)&lt;br /&gt;
* bit 2: the file is a live broadcast&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Media properties header (MDPR) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains information about the properties of a RealMedia stream. This header defines the type of a stream and the codec used. All codec-related data is in the type specific part of this header.&lt;br /&gt;
&lt;br /&gt;
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.&lt;br /&gt;
&lt;br /&gt;
There is one MDPR chunk for every stream in the file.&lt;br /&gt;
&lt;br /&gt;
A MDPR chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword   Chunk type ('MDPR')&lt;br /&gt;
 dword   Chunk size&lt;br /&gt;
 word    Chunk version (always 0, for every known file)&lt;br /&gt;
 word    Stream number&lt;br /&gt;
 dword   Maximum bit rate&lt;br /&gt;
 dword   Average bit rate&lt;br /&gt;
 dword   Size of largest data packet&lt;br /&gt;
 dword   Average size of data packet&lt;br /&gt;
 dword   Stream start offset in ms&lt;br /&gt;
 dword   Preroll in ms (to be subtracted from timestamps?)&lt;br /&gt;
 dword   Stream duration in ms&lt;br /&gt;
 byte    Size of stream description string&lt;br /&gt;
 byte[]  Stream description string&lt;br /&gt;
 byte    Size of stream mime type string&lt;br /&gt;
 byte[]  Mime type string&lt;br /&gt;
 dword   Size of type specific part of the header&lt;br /&gt;
 byte[]  Type specific data, meaning and format depends on mime type&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Content description header (CONT) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains some text information (like title, author, ...) about the content of the file. This header has an informative purpose only and it's not needed to demux the file.&lt;br /&gt;
&lt;br /&gt;
A CONT chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword   Chunk type ('CONT')&lt;br /&gt;
 dword   Chunk size&lt;br /&gt;
 word    Chunk version (always 0, for every known file)&lt;br /&gt;
 word     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 word     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 word     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 word     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Data header (DATA) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains a group of data packets. Packets from each stream are interleaved, except for multirate files.&lt;br /&gt;
&lt;br /&gt;
A DATA chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword   Chunk type ('DATA')&lt;br /&gt;
 dword   Chunk size&lt;br /&gt;
 word    Chunk version (always 0, for every known file)&lt;br /&gt;
 dword   Number of data packets in this chunk&lt;br /&gt;
 dword   Offset of the next DATA chunk (form the start of the file)&lt;br /&gt;
 byte[]  Data packets&lt;br /&gt;
&lt;br /&gt;
Each data packet has this format&lt;br /&gt;
&lt;br /&gt;
  word   Packet version (0 or 1 in available samples)&lt;br /&gt;
  word   Packet size&lt;br /&gt;
  word   Stream number&lt;br /&gt;
  dword  Timestamp&lt;br /&gt;
  byte   Unknown&lt;br /&gt;
  byte   Flags (bitfield, see below)&lt;br /&gt;
 #if version == 1&lt;br /&gt;
  byte   Unknown&lt;br /&gt;
 #endif&lt;br /&gt;
  byte[]  Stream-specific data&lt;br /&gt;
&lt;br /&gt;
Flags:&lt;br /&gt;
* bit 0: reliable packet (refers to network transmission method)&lt;br /&gt;
* bit 1: keyframe&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
The previous description of the data packet comes from working demuxer code, the description in official Real docs (somewhere on Helix site) is a bit different:&lt;br /&gt;
&lt;br /&gt;
  word   Packet version&lt;br /&gt;
  word   Packet size&lt;br /&gt;
  word   Stream number&lt;br /&gt;
  dword  Timestamp&lt;br /&gt;
 #if version == 0&lt;br /&gt;
  byte   Packet group&lt;br /&gt;
  byte   Flags (bitfield, see below)&lt;br /&gt;
 #endif&lt;br /&gt;
 #if version == 1&lt;br /&gt;
  word   ASM rule&lt;br /&gt;
  byte   ASM flags&lt;br /&gt;
 #endif&lt;br /&gt;
  byte[]  Stream-specific data&lt;br /&gt;
&lt;br /&gt;
where packet group is &amp;quot;The packet group to which the packet belongs. If packet grouping is not used, set this field to 0 (zero)&amp;quot;, asm rule is &amp;quot;The ASM rule assigned to this packet&amp;quot; and asm flags &amp;quot;Contains HX_  flags that dictate stream switching points&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Index header (INDX) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains index entries. It comes after all the DATA chunks.&lt;br /&gt;
An index chunk contains data for a single stream, A file can have more than one INDX chunk.&lt;br /&gt;
&lt;br /&gt;
A INDX chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword   Chunk type ('INDX')&lt;br /&gt;
 dword   Chunk size&lt;br /&gt;
 word    Chunk version (always 0, for every known file)&lt;br /&gt;
 dword   Number of entries in this chunk&lt;br /&gt;
 word    Stream number&lt;br /&gt;
 dword   Offset of the next INDX chunk (form the start of the file)&lt;br /&gt;
 byte[]  Index entries&lt;br /&gt;
&lt;br /&gt;
Each index entry has this format&lt;br /&gt;
&lt;br /&gt;
  word   Entry version (always 0, for every known file)&lt;br /&gt;
  dword  Timestamp (in ms)&lt;br /&gt;
  dword  Packet offset in file (form the start of the file)&lt;br /&gt;
  dword  Packet number&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Codecs ==&lt;br /&gt;
&lt;br /&gt;
Codecs in RealMedia are identified by the following four character codes:&lt;br /&gt;
&lt;br /&gt;
===== Audio =====&lt;br /&gt;
&lt;br /&gt;
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)&lt;br /&gt;
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)&lt;br /&gt;
* [[RealAudio_dnet|dnet]] - AC3&lt;br /&gt;
* [[RealAudio_sipr|sipr]] - Sipro&lt;br /&gt;
* [[RealAudio_cook|cook]] - Cook&lt;br /&gt;
* [[RealAudio_atrc|atrc]] - ATRAC&lt;br /&gt;
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format&lt;br /&gt;
* [[RealAudio_raac|raac]] - LC-AAC&lt;br /&gt;
* [[RealAudio_racp|racp]] - HE-AAC&lt;br /&gt;
&lt;br /&gt;
===== Video =====&lt;br /&gt;
&lt;br /&gt;
* [[RealVideo|RV10]] - H.263&lt;br /&gt;
* [[RealVideo|RV13]] - H.263&lt;br /&gt;
* [[RealVideo G2|RV20]] - H.263+&lt;br /&gt;
* [[RealVideo 3|RV30]] - Unknown format&lt;br /&gt;
* [[RealVideo 4|RV40]] - Unknown format&lt;br /&gt;
&lt;br /&gt;
[[Category: Container Formats]]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=RealMedia&amp;diff=6597</id>
		<title>RealMedia</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=RealMedia&amp;diff=6597"/>
		<updated>2006-12-19T22:11:43Z</updated>

		<summary type="html">&lt;p&gt;Roberto: DATA header and data packets&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: rm, ra, rmvb&lt;br /&gt;
* Company: [[Real]]&lt;br /&gt;
&lt;br /&gt;
Multimedia container format developed by [[Real]] and used almost exclusively for codecs developed by Real.&lt;br /&gt;
&lt;br /&gt;
The old .ra files are just for audio.  The newer RealMedia (.rm) files are for audio and video.&lt;br /&gt;
&lt;br /&gt;
== RA Format ==&lt;br /&gt;
&lt;br /&gt;
This is the old audio-only RealAudio file format.&lt;br /&gt;
A very similar structure is also used to describe audio streams in RM files.&lt;br /&gt;
&lt;br /&gt;
The audio data part is just a stream of bytes with no structure.&lt;br /&gt;
There is no index in .ra files, but seeking is possible because the codecs are CBR.&lt;br /&gt;
&lt;br /&gt;
=== RealAudio 1.0 file  (.ra version 3) ===&lt;br /&gt;
&lt;br /&gt;
This is from the very first version of RealAudio (1995).  These files can only contain [[RealAudio 14.4|8kbps VSELP]] audio data.  A FourCC (lpcJ) may be present, but it is ignored.  Byte order is big-endian.&lt;br /&gt;
&lt;br /&gt;
 byte[4]  Header signature ('.', 'r', 'a', 0xfd)&lt;br /&gt;
 word     Version (always 3)&lt;br /&gt;
 word     Header size, not including first 8 bytes&lt;br /&gt;
 byte[10] Unknown&lt;br /&gt;
 dword    Data size&lt;br /&gt;
 byte     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 byte     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 byte     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 byte     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
 byte     Unknown *&lt;br /&gt;
 byte     Fourcc string length (always 4) *&lt;br /&gt;
 byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *&lt;br /&gt;
  Audio data&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* Fields marked with * may be missing. Based on the only known sample with no FourCC, it's assumed that all these fields are either present or missing.  To determine if they are missing, check the header size (bytes 6-7).&lt;br /&gt;
* The informative fields (title, author, copyright and comment) can have zero length.&lt;br /&gt;
&lt;br /&gt;
=== RealAudio 2.0 file (.ra version 4) ===&lt;br /&gt;
&lt;br /&gt;
This is second version of the RealAudio file format.  It is distinguished from the above by the value in byte 5 (=0x04).  This type of file must contain a valid FourCC to identify the audio codec.&lt;br /&gt;
&lt;br /&gt;
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].&lt;br /&gt;
&lt;br /&gt;
 byte[4]  Header signature ('.', 'r', 'a', 0xfd)&lt;br /&gt;
 word     Version (always 4)&lt;br /&gt;
 word     Unused (always 0)&lt;br /&gt;
 byte[4]  ra4 signature (always &amp;quot;.ra4&amp;quot;)&lt;br /&gt;
 dword    Data size - 0x27&lt;br /&gt;
 word     Version2 (always equal to version)&lt;br /&gt;
 dword    Header size - 16&lt;br /&gt;
 word     Codec flavor&lt;br /&gt;
 dword    Coded frame size&lt;br /&gt;
 byte[12] Unknown&lt;br /&gt;
 word     Sub packet h&lt;br /&gt;
 word     Frame size&lt;br /&gt;
 word     Subpacket size&lt;br /&gt;
 word     Unknown&lt;br /&gt;
 word     Samplerate&lt;br /&gt;
 word     Unknown&lt;br /&gt;
 word     Sample size&lt;br /&gt;
 word     Channels&lt;br /&gt;
 byte     Interleaver ID string length (always 4)&lt;br /&gt;
 byte[]   Interleaver ID string&lt;br /&gt;
 byte     FourCC string length (always 4)&lt;br /&gt;
 byte[]   FourCC string&lt;br /&gt;
 byte[3]  Unknown&lt;br /&gt;
 byte     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 byte     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 byte     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 byte     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
  Audio Data&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).&lt;br /&gt;
* The informative fields (title, author, copyright and comment) can have zero length.&lt;br /&gt;
&lt;br /&gt;
=== .ra version 5 ===&lt;br /&gt;
&lt;br /&gt;
While the .ra header can contain version 5, there are no known RealAudio files with this format, and it's not known if they really exist.&lt;br /&gt;
&lt;br /&gt;
== RealMedia Format ==&lt;br /&gt;
&lt;br /&gt;
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.&lt;br /&gt;
&lt;br /&gt;
A RealMedia file consists of a series of chunks. Each chunk has the following format:&lt;br /&gt;
&lt;br /&gt;
 dword  chunk type ([[FOURCC]])&lt;br /&gt;
 dword  chunk size, including 8-byte preamble&lt;br /&gt;
 word   chunk version&lt;br /&gt;
 byte[] chunk payload&lt;br /&gt;
&lt;br /&gt;
Real chunk types:&lt;br /&gt;
* .RMF: RealMedia file header (only one per file, must be the first chunk)&lt;br /&gt;
* PROP: File properties (only one per file)&lt;br /&gt;
* MDPR: Stream properties (one for each stream)&lt;br /&gt;
* CONT: Content description/metadata (typically one per file)&lt;br /&gt;
* DATA: File data&lt;br /&gt;
* INDX: File index (typically one per stream)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== RealMedia file header (.RMF) ===&lt;br /&gt;
&lt;br /&gt;
This must be the first chunk in a RealMedia file. Only one .RMF can be present in a file. The only useful information carried by .RMF is the number of headers.&lt;br /&gt;
&lt;br /&gt;
A .RMF chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword chunk type ('.RMF')&lt;br /&gt;
 dword chunk size (typically 0x12)&lt;br /&gt;
 word  chunk version (always 0, for every known file)&lt;br /&gt;
 dword file version&lt;br /&gt;
 dword number of headers&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* All known sample files have version equal to 0.&lt;br /&gt;
* There is a sample with chunk size = 0x10, in that case file version is a word. Note that the sample has chunk version = 0 like all other files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== File properties header (PROP) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.&lt;br /&gt;
&lt;br /&gt;
A PROP chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword  Chunk type ('PROP')&lt;br /&gt;
 dword  Chunk size (typically 0x32)&lt;br /&gt;
 word   Chunk version (always 0, for every known file)&lt;br /&gt;
 dword  Maximum bit rate&lt;br /&gt;
 dword  Average bit rate&lt;br /&gt;
 dword  Size of largest data packet&lt;br /&gt;
 dword  Average size of data packet&lt;br /&gt;
 dword  Number of data packets in the file&lt;br /&gt;
 dword  File duration in ms&lt;br /&gt;
 dword  Suggested number of ms to buffer before starting playback&lt;br /&gt;
 dword  Offset of the first INDX chunk form the start of the file&lt;br /&gt;
 dword  Offset of the first DATA chunk form the start of the file&lt;br /&gt;
 word   Number of streams in the file&lt;br /&gt;
 word   Flags (bitfield, see below)&lt;br /&gt;
&lt;br /&gt;
Flags:&lt;br /&gt;
* bit 0: file can be saved on disk&lt;br /&gt;
* bit 1: PerfectPlay can be used (extra buffering)&lt;br /&gt;
* bit 2: the file is a live broadcast&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Media properties header (MDPR) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains information about the properties of a RealMedia stream. This header defines the type of a stream and the codec used. All codec-related data is in the type specific part of this header.&lt;br /&gt;
&lt;br /&gt;
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.&lt;br /&gt;
&lt;br /&gt;
There is one MDPR chunk for every stream in the file.&lt;br /&gt;
&lt;br /&gt;
A MDPR chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword   Chunk type ('MDPR')&lt;br /&gt;
 dword   Chunk size&lt;br /&gt;
 word    Chunk version (always 0, for every known file)&lt;br /&gt;
 word    Stream number&lt;br /&gt;
 dword   Maximum bit rate&lt;br /&gt;
 dword   Average bit rate&lt;br /&gt;
 dword   Size of largest data packet&lt;br /&gt;
 dword   Average size of data packet&lt;br /&gt;
 dword   Stream start offset in ms&lt;br /&gt;
 dword   Preroll in ms (to be subtracted from timestamps?)&lt;br /&gt;
 dword   Stream duration in ms&lt;br /&gt;
 byte    Size of stream description string&lt;br /&gt;
 byte[]  Stream description string&lt;br /&gt;
 byte    Size of stream mime type string&lt;br /&gt;
 byte[]  Mime type string&lt;br /&gt;
 dword   Size of type specific part of the header&lt;br /&gt;
 byte[]  Type specific data, meaning and format depends on mime type&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Content description header (CONT) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains some text information (like title, author, ...) about the content of the file. This header has an informative purpose only and it's not needed to demux the file.&lt;br /&gt;
&lt;br /&gt;
A CONT chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword   Chunk type ('CONT')&lt;br /&gt;
 dword   Chunk size&lt;br /&gt;
 word    Chunk version (always 0, for every known file)&lt;br /&gt;
 word     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 word     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 word     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 word     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Data header (DATA) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains a group of data packets. Packets from each stream are interleaved, except for multirate files.&lt;br /&gt;
&lt;br /&gt;
A DATA chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword   Chunk type ('DATA')&lt;br /&gt;
 dword   Chunk size&lt;br /&gt;
 word    Chunk version (always 0, for every known file)&lt;br /&gt;
 dword   Number of data packets in this chunk&lt;br /&gt;
 dword   Offset of the next DATA chunk (form the start of the file)&lt;br /&gt;
 byte[]  Data packets&lt;br /&gt;
&lt;br /&gt;
Each data packet has this format&lt;br /&gt;
&lt;br /&gt;
  word   Packet version (0 or 1 in available samples)&lt;br /&gt;
  word   Packet size&lt;br /&gt;
  word   Stream number&lt;br /&gt;
  dword  Timestamp&lt;br /&gt;
  byte   Unknown&lt;br /&gt;
  byte   Flags (bitfield, see below)&lt;br /&gt;
 #if version == 1&lt;br /&gt;
  byte   Unknown&lt;br /&gt;
 #endif&lt;br /&gt;
  byte[]  Stream-specific data&lt;br /&gt;
&lt;br /&gt;
Flags:&lt;br /&gt;
* bit 0: reliable packet (refers to network transmission method)&lt;br /&gt;
* bit 1: keyframe&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
The previous description of the data packet comes from working demuxer code, the description in official Real docs (somewhere on Helix site) is a bit different:&lt;br /&gt;
&lt;br /&gt;
  word   Packet version&lt;br /&gt;
  word   Packet size&lt;br /&gt;
  word   Stream number&lt;br /&gt;
  dword  Timestamp&lt;br /&gt;
 #if version == 0&lt;br /&gt;
  byte   Packet group&lt;br /&gt;
  byte   Flags (bitfield, see below)&lt;br /&gt;
 #endif&lt;br /&gt;
 #if version == 1&lt;br /&gt;
  word   ASM rule&lt;br /&gt;
  byte   ASM flags&lt;br /&gt;
 #endif&lt;br /&gt;
  byte[]  Stream-specific data&lt;br /&gt;
&lt;br /&gt;
where packet group is &amp;quot;The packet group to which the packet belongs. If packet grouping is not used, set this field to 0 (zero)&amp;quot;, asm rule is &amp;quot;The ASM rule assigned to this packet&amp;quot; and asm flags &amp;quot;Contains HX_  flags that dictate stream switching points&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Codecs ==&lt;br /&gt;
&lt;br /&gt;
Codecs in RealMedia are identified by the following four character codes:&lt;br /&gt;
&lt;br /&gt;
===== Audio =====&lt;br /&gt;
&lt;br /&gt;
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)&lt;br /&gt;
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)&lt;br /&gt;
* [[RealAudio_dnet|dnet]] - AC3&lt;br /&gt;
* [[RealAudio_sipr|sipr]] - Sipro&lt;br /&gt;
* [[RealAudio_cook|cook]] - Cook&lt;br /&gt;
* [[RealAudio_atrc|atrc]] - ATRAC&lt;br /&gt;
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format&lt;br /&gt;
* [[RealAudio_raac|raac]] - LC-AAC&lt;br /&gt;
* [[RealAudio_racp|racp]] - HE-AAC&lt;br /&gt;
&lt;br /&gt;
===== Video =====&lt;br /&gt;
&lt;br /&gt;
* [[RealVideo|RV10]] - H.263&lt;br /&gt;
* [[RealVideo|RV13]] - H.263&lt;br /&gt;
* [[RealVideo G2|RV20]] - H.263+&lt;br /&gt;
* [[RealVideo 3|RV30]] - Unknown format&lt;br /&gt;
* [[RealVideo 4|RV40]] - Unknown format&lt;br /&gt;
&lt;br /&gt;
[[Category: Container Formats]]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Intel_Music_Coder&amp;diff=6396</id>
		<title>Intel Music Coder</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Intel_Music_Coder&amp;diff=6396"/>
		<updated>2006-10-30T21:21:32Z</updated>

		<summary type="html">&lt;p&gt;Roberto: no longer incomplete&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Format: 0x401&lt;br /&gt;
* Company: [[Intel]]&lt;br /&gt;
* Samples: http://samples.mplayerhq.hu/A-codecs/IMC/&lt;br /&gt;
&lt;br /&gt;
Perceptual audio codec developed by Intel. It features a 256-point MDCT transform and constant bitrate (all known samples are mono and have 512-bit frames). These coefficients are grouped into 32 bands, the first bands hold 3-4 coefficients and the last bands contain 12 coefficients per band. Bit allocation for each coefficient is done adaptively for each frame. The window for MDCT overlap is a simple sine window normalized with sqrt(2).&lt;br /&gt;
&lt;br /&gt;
== Frame Structure ==&lt;br /&gt;
All bits are packed into 16-bit little-endian words, MSB first.&lt;br /&gt;
&lt;br /&gt;
  9 bits - should always be 0x21&lt;br /&gt;
  3 bits - frame type&lt;br /&gt;
  1 bit  - flag (used in bit allocation)&lt;br /&gt;
  &amp;lt;band coefficients&amp;gt;&lt;br /&gt;
  &amp;lt;band flags&amp;gt;&lt;br /&gt;
  &amp;lt;coefficient flags&amp;gt;&lt;br /&gt;
  &amp;lt;coefficients&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Band Coefficients ===&lt;br /&gt;
Each band should have one coefficient. If the frame type has bit 0x4 set then the first band coefficient should be read explicitly otherwise it should be read using one of 16 Huffman trees depending on frame type and band number (frame type specifies one of 4 sets which contain four static Huffman trees and an array pointing to one of those trees for each band number). If the returned Huffman code is 17 then read 4 additional bits and add their value to the result.&lt;br /&gt;
&lt;br /&gt;
=== Band Flags ===&lt;br /&gt;
Each band except bands with coefficient == 16 should have its own flag.&lt;br /&gt;
&lt;br /&gt;
=== Coefficient Flags ===&lt;br /&gt;
Coefficient flags are stored either as bits or may be coded as pairs:&lt;br /&gt;
&lt;br /&gt;
   0 -&amp;gt; 1, 1&lt;br /&gt;
  11 -&amp;gt; 0, 1&lt;br /&gt;
 100 -&amp;gt; 1, 0&lt;br /&gt;
 101 -&amp;gt; 0, 0&lt;br /&gt;
&lt;br /&gt;
=== Coefficients ===&lt;br /&gt;
Coefficients are stored in 1-6 bits with length calculated depending on bits left and bits per band.&lt;br /&gt;
&lt;br /&gt;
[[Category:Audio Codecs]]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Talk:Siren&amp;diff=6304</id>
		<title>Talk:Siren</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Talk:Siren&amp;diff=6304"/>
		<updated>2006-10-15T11:47:18Z</updated>

		<summary type="html">&lt;p&gt;Roberto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Do you know if this codec has any relation vith the Vivo Siren audio codec (fourcc 0x112) ?&lt;br /&gt;
Vivo siren should be based on G723&lt;br /&gt;
&lt;br /&gt;
--[[User:Roberto|rxt]] 07:47, 15 October 2006 (EDT)&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=WavPack&amp;diff=6149</id>
		<title>WavPack</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=WavPack&amp;diff=6149"/>
		<updated>2006-10-07T23:31:42Z</updated>

		<summary type="html">&lt;p&gt;Roberto: Add unofficial fourcc&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extension: wv&lt;br /&gt;
* Website: http://www.wavpack.com/&lt;br /&gt;
* Samples: http://samples.mplayerhq.hu/A-codecs/lossless/ (luckynight.wv)&lt;br /&gt;
* FOURCC (unofficial): WVPK&lt;br /&gt;
&lt;br /&gt;
WavPack is an open source lossless audio coding algorithm with floating point data support and optional lossy audio compression.&lt;br /&gt;
&lt;br /&gt;
== WavPack v.4 ==&lt;br /&gt;
=== File Format ===&lt;br /&gt;
General details of WavPack format can be found in file 'format.txt' in wavpack sources archive.&lt;br /&gt;
WavPack file consists of blocks each beginning with 'wvpk'. Every block contains all information about sound data - sampling rate, channels, bits per sample, etc.&lt;br /&gt;
and so-called metadata. Metadata may contain different coefficients using for restoring samples, correction bitstream and actual compressed samples.&lt;br /&gt;
&lt;br /&gt;
=== Block structure ===&lt;br /&gt;
Each block contains compressed data&lt;br /&gt;
&lt;br /&gt;
Block header (all data is stored in little-endian words)&lt;br /&gt;
  4 bytes - 'wvpk'&lt;br /&gt;
  32 bits - block size&lt;br /&gt;
  16 bits  - version &lt;br /&gt;
  8  bits - track number&lt;br /&gt;
  8  bits - track sub index&lt;br /&gt;
  32 bits - total samples in file (may be 0xFFFFFFFF)&lt;br /&gt;
  32 bits - offset in samples for current block (i.e. how much samples should be decoded by now)&lt;br /&gt;
  32 bits - samples in this block&lt;br /&gt;
  32 bits - flags&lt;br /&gt;
  32 bits - CRC&lt;br /&gt;
&lt;br /&gt;
Flags meaning:&lt;br /&gt;
  bits  0- 1 - bytes per sample minus one&lt;br /&gt;
  bit      2 - sound is monaural&lt;br /&gt;
  bit      3 - hybrid profile (lossy compression)&lt;br /&gt;
  bit      4 - joint stereo coding scheme&lt;br /&gt;
  bit      5 - cross-decorrelation scheme is used&lt;br /&gt;
  bit      6 - shaping for hybrid profile is present&lt;br /&gt;
  bit      7 - floating point data present&lt;br /&gt;
  bit      8 - int32 mode&lt;br /&gt;
  bits  9-10 - hybrid profile flags&lt;br /&gt;
  bits 11-12 - multi-channel start and end blocks&lt;br /&gt;
  bits 13-17 - shift parameter?&lt;br /&gt;
  bits 18-22 - scaling parameter?&lt;br /&gt;
  bits 23-26 - sampling rate index&lt;br /&gt;
&lt;br /&gt;
=== Metadata ===&lt;br /&gt;
Metadata can be divided into three parts: ID, length and data. Every metadata block has even length and data size is stored in words in either one or three bytes depending on ID flag&lt;br /&gt;
&lt;br /&gt;
Flags for ID:&lt;br /&gt;
  0x20 - decoder may ignore data contained here&lt;br /&gt;
  0x40 - data size is odd&lt;br /&gt;
  0x80 - data size is large&lt;br /&gt;
&lt;br /&gt;
IDs:&lt;br /&gt;
  * 0x01 - encoder info&lt;br /&gt;
  * 0x02 - decorrelation terms&lt;br /&gt;
  * 0x03 - decorrelation weights&lt;br /&gt;
  * 0x04 - decorrelation samples&lt;br /&gt;
  * 0x05 - entropy info&lt;br /&gt;
  * 0x0A - packed samples&lt;br /&gt;
&lt;br /&gt;
=== Decorrelation terms ===&lt;br /&gt;
Decorrelation terms are stored in one byte, lower 5 bits indicate predictor type, high 3 bits contain delta value.&lt;br /&gt;
&lt;br /&gt;
Possible predictor values:&lt;br /&gt;
  0-5 - predictors for stereo, only predictors 2-4 are implemented&lt;br /&gt;
  6-12 - predictor uses 1-7 samples for prediction&lt;br /&gt;
  13-16 - reserved&lt;br /&gt;
  17-18 - predictor does prediction by two samples&lt;br /&gt;
&lt;br /&gt;
=== Decorrelation weights ===&lt;br /&gt;
Each decorrelation term should have one or two weights depending on channels.&lt;br /&gt;
Each weight is packed into one byte and can be restored in this way:&lt;br /&gt;
&lt;br /&gt;
  n = getchar() &amp;lt;&amp;lt; 3;&lt;br /&gt;
  if(n &amp;gt; 0) n += (n + 64) &amp;gt;&amp;gt; 7;&lt;br /&gt;
&lt;br /&gt;
=== Decorrelation samples ===&lt;br /&gt;
Each decorrelation term may have up to 16 samples depending on its value. Each sample is 32-bit but stored in 16 bits, lower 8 bits are mantiss and high 8 bits are exponent-9, i.e if exponent &amp;lt; 9 shift mantiss right, otherwise left&lt;br /&gt;
&lt;br /&gt;
=== Entropy info ===&lt;br /&gt;
This section contains one or two sets of medians for samples decoding. Each median is log-packed into 16 bits as described above.&lt;br /&gt;
&lt;br /&gt;
=== Samples coding ===&lt;br /&gt;
Samples are stored in metadata block with ID=0x0A and are packed with modified Golomb codes. Decoding process is specified below where get_unary() is the function which returns length of '1'-bits string (i.e. 111110b = 5, 10b = 1).&lt;br /&gt;
Codeset is adaptively divided into four sets and every code has unary prefix (possibly escaped) defining interval of this code and mantis part like in Golomb code.&lt;br /&gt;
&lt;br /&gt;
  if(last_zero){&lt;br /&gt;
    n = 0;&lt;br /&gt;
    last_zero = 0;&lt;br /&gt;
  }else{&lt;br /&gt;
    n = get_unary();&lt;br /&gt;
    if(n == 16){&lt;br /&gt;
      n2 = get_unary();&lt;br /&gt;
      if(n2 &amp;lt; 2) n += n2;&lt;br /&gt;
      else n += (1 &amp;lt;&amp;lt; (n2-1)) | getbits(n2-1);&lt;br /&gt;
    }&lt;br /&gt;
    last_one = n &amp;amp; 1;&lt;br /&gt;
    if(last_one)&lt;br /&gt;
      n = (n&amp;gt;&amp;gt;1) + 1;&lt;br /&gt;
    else&lt;br /&gt;
      n = n &amp;gt;&amp;gt; 1;&lt;br /&gt;
    last_zero = !last_one;&lt;br /&gt;
  }&lt;br /&gt;
  if(n == 0){&lt;br /&gt;
    base = 0;&lt;br /&gt;
    add = median[0] - 1;&lt;br /&gt;
    decrease median[0];&lt;br /&gt;
  } else if(n == 1){&lt;br /&gt;
    base = median[0];&lt;br /&gt;
    add = median[1] - 1;&lt;br /&gt;
    increase median[0];&lt;br /&gt;
    decrease median[1];&lt;br /&gt;
  } else {&lt;br /&gt;
    base = median[0] + median[1] + median[2] * (n - 2);&lt;br /&gt;
    add = median[2] - 1;&lt;br /&gt;
    increase median[0];&lt;br /&gt;
    increase median[1];&lt;br /&gt;
    if(n == 2) derease median[2];&lt;br /&gt;
    else increase median[2];&lt;br /&gt;
  }&lt;br /&gt;
  k = log2(add);&lt;br /&gt;
  ex = (1 &amp;lt;&amp;lt; k) - add - 1;&lt;br /&gt;
  t2 = getbits(k - 1);&lt;br /&gt;
  if(t2 &amp;gt;= ex)&lt;br /&gt;
    t2 = t2 * 2 - ex + getbit();&lt;br /&gt;
  sign = getbit();&lt;br /&gt;
  if(sign==0) result = base + t2;&lt;br /&gt;
  else result = ~(base + t2);&lt;br /&gt;
&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
[[Category:Audio Codecs]]&lt;br /&gt;
[[Category:Lossless Audio Codecs]]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=True_Audio&amp;diff=6148</id>
		<title>True Audio</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=True_Audio&amp;diff=6148"/>
		<updated>2006-10-07T23:30:39Z</updated>

		<summary type="html">&lt;p&gt;Roberto: Add unofficial fourcc&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extension: tta&lt;br /&gt;
* Website: http://www.true-audio.com/&lt;br /&gt;
* Theory/Whitepaper: http://www.true-audio.com/codec.theory&lt;br /&gt;
* Samples: http://samples.mplayerhq.hu/A-codecs/lossless/ (luckynight.tta)&lt;br /&gt;
* FOURCC (unofficial): TTA1&lt;br /&gt;
&lt;br /&gt;
True Audio (TTA) is an open source lossless audio coding algorithm.&lt;br /&gt;
&lt;br /&gt;
[[Category:Audio Codecs]]&lt;br /&gt;
[[Category:Lossless Audio Codecs]]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=FFmpeg_Wishlist&amp;diff=5280</id>
		<title>FFmpeg Wishlist</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=FFmpeg_Wishlist&amp;diff=5280"/>
		<updated>2006-06-04T17:31:02Z</updated>

		<summary type="html">&lt;p&gt;Roberto: aac in rm is no longer a wish&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A temporary FFmpeg wish/todo list:&lt;br /&gt;
&lt;br /&gt;
* implement seeking in flv files&lt;br /&gt;
* improve flv demuxer, print name of missing codec support&lt;br /&gt;
* improved documentation (web,manpage)&lt;br /&gt;
* improve ac3 encoder (implement block switching)&lt;br /&gt;
* implement radix-4 fft routines&lt;br /&gt;
* implement iff demuxer (with anim and sound decoding)&lt;br /&gt;
* clean up alac decoder&lt;br /&gt;
* implement dts in wav support&lt;br /&gt;
* implement raw dts support&lt;br /&gt;
* implement Bethsoft VID demuxer/decoder&lt;br /&gt;
* implement proper piping&lt;br /&gt;
* clean up the building process so muxers and demuxers can individually be disabled&lt;br /&gt;
* clean up this patch enough to commit it [http://thread.gmane.org/gmane.comp.video.ffmpeg.devel/28596/focus=28599]&lt;br /&gt;
* implement flv v1.1 metadata muxing, look at [http://inlet-media.de/flvtool2 http://inlet-media.de/flvtool2] for more info&lt;br /&gt;
* implement grabbing from video devices under windows&lt;br /&gt;
* implement a Monkey's Audio decoder, look at the c++ sdk sources&lt;br /&gt;
* implement a JPEG2000 decoder&lt;br /&gt;
* integrate speex, glue code or native implementation&lt;br /&gt;
* write a ffmpeg man page&lt;br /&gt;
&lt;br /&gt;
== [[Snow]] ==&lt;br /&gt;
* multiple reference frames improvements&lt;br /&gt;
** decide which frames to keep (e.g. long-term refs)&lt;br /&gt;
** some changes to the mv prediction code&lt;br /&gt;
* non translational motion compensation&lt;br /&gt;
** estimate non translational parameters per block by using surrounding motion vectors&lt;br /&gt;
** add a ac coded bit per block to switch between translational and non-translational MC&lt;br /&gt;
** borrow the non translational MC code from libmpcodecs/vf_perspective.c&lt;br /&gt;
** some changes to the encoder to decide between translational and non t.&lt;br /&gt;
* Trellis quantization (select quantized coefficient so as to minimize the rate distrortion&lt;br /&gt;
* 4x4 sized block support (we have 16x16 and 8x8 currently)&lt;br /&gt;
* 1/8 pel motion compensation / estimation support (pretty much just encoder changes needed which in case of the iterative me should be trivial)&lt;br /&gt;
* improve the intra color decision&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=RealAudio_sipr&amp;diff=3802</id>
		<title>RealAudio sipr</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=RealAudio_sipr&amp;diff=3802"/>
		<updated>2006-04-01T13:44:24Z</updated>

		<summary type="html">&lt;p&gt;Roberto: Add flavors&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* FOURCC: sipr&lt;br /&gt;
* Company: [[Real|RealNetworks]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Audio codec found in [[RealMedia]] files, not as common as [[RealAudio_cook|cook]].&lt;br /&gt;
&lt;br /&gt;
Allegedly the same codec as [[ACELP.net]].  May be partly based on G.729, however RealAudio predates the finalization of the G.729 specifications for the 6.5 kbit/s and 11.8 kbit/s variants. [http://www.itu.int/rec/recommendation.asp?type=folders&amp;amp;lang=e&amp;amp;parent=T-REC-G.729 ITU-T G.729 page]&lt;br /&gt;
&lt;br /&gt;
Codec library with debugging symbols: [http://wwwa2.kph.uni-mainz.de/ftp/pub/machines/linux/multimedia/v50b3_linux20elf.tar.gz v50b3_linux20elf.tar.gz]&lt;br /&gt;
&lt;br /&gt;
Sipr flavors&lt;br /&gt;
 0  6.5 Kbps Voice&lt;br /&gt;
 1  8.5 Kbps Voice&lt;br /&gt;
 2  5 Kbps Voice&lt;br /&gt;
 3  16 Kbps Voice&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Undiscovered Audio Codecs]]&lt;br /&gt;
[[Category:Audio Codecs]]&lt;br /&gt;
[[Category:Vocoders]]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=ATRAC3&amp;diff=3801</id>
		<title>ATRAC3</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=ATRAC3&amp;diff=3801"/>
		<updated>2006-04-01T13:35:35Z</updated>

		<summary type="html">&lt;p&gt;Roberto: Add flavors&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;FOURCC: atrc&lt;br /&gt;
&lt;br /&gt;
Found in some old [[RealMedia]] files. Suspected to be similar to, or the same as, [[Sony ATRAC]].&lt;br /&gt;
&lt;br /&gt;
Atrc flavors&lt;br /&gt;
 0  66 Kbps Stereo Music - RA 8&lt;br /&gt;
 1  94 Kbps Stereo Music - RA 8&lt;br /&gt;
 2  105 Kbps Stereo Music - RA 8&lt;br /&gt;
 3  132 Kbps Stereo Music - RA 8&lt;br /&gt;
 4  146 Kbps Stereo Music - RA 8&lt;br /&gt;
 5  176 Kbps Stereo Music - RA 8&lt;br /&gt;
 6  264 Kbps Stereo Music - RA 8&lt;br /&gt;
 7  352 Kbps Stereo Music - RA 8&lt;br /&gt;
&lt;br /&gt;
[[Category:Undiscovered Audio Codecs]]&lt;br /&gt;
[[Category:Audio Codecs]]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=RealAudio_cook&amp;diff=3800</id>
		<title>RealAudio cook</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=RealAudio_cook&amp;diff=3800"/>
		<updated>2006-04-01T13:22:50Z</updated>

		<summary type="html">&lt;p&gt;Roberto: Added flavors&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* FourCC: cook&lt;br /&gt;
* Company: [[Real]]&lt;br /&gt;
* Samples: http://www.mplayerhq.hu/MPlayer/samples/real/AC-cook/&lt;br /&gt;
&lt;br /&gt;
RealAudio cook (a.k.a. Cooker a.k.a. gecko) is an audio codec created by [[Real]]. It features different coding modes, of which cook 5.1 is not yet supported by the decoder in [[FFmpeg]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cook Flavors&lt;br /&gt;
 00  8 Kbps Music - RealAudio&lt;br /&gt;
 01  11 Kbps Music - RealAudio&lt;br /&gt;
 02  16 Kbps Music - RealAudio&lt;br /&gt;
 03  20 Kbps Music - RealAudio&lt;br /&gt;
 04  32 Kbps Music - RealAudio&lt;br /&gt;
 05  44 Kbps Music - RealAudio&lt;br /&gt;
 06  64 Kbps Music - RealAudio&lt;br /&gt;
 07  32 Kbps - RealAudio&lt;br /&gt;
 08  6 Kbps Music - RealAudio&lt;br /&gt;
 09  20 Kbps Stereo Music&lt;br /&gt;
 10  32 Kbps Stereo Music&lt;br /&gt;
 11  44 Kbps Stereo Music&lt;br /&gt;
 12  64 Kbps Stereo Music&lt;br /&gt;
 13  96 Kbps Stereo Music&lt;br /&gt;
 14  64 Kbps - RealAudio&lt;br /&gt;
 15  20 Kbps Music High Response - RealAudio&lt;br /&gt;
 16  32 Kbps Music High Response - RealAudio&lt;br /&gt;
 17  16 Kbps Stereo Music - RealAudio&lt;br /&gt;
 18  20 Kbps Stereo Music - RealAudio&lt;br /&gt;
 19  20 Kbps Stereo Music High Response - RealAudio&lt;br /&gt;
 20  32 Kbps Stereo Music - RealAudio&lt;br /&gt;
 21  32 Kbps Stereo Music High Response - RealAudio&lt;br /&gt;
 22  44 Kbps Stereo Music - RealAudio&lt;br /&gt;
 23  44 Kbps Stereo Music High Response - RealAudio&lt;br /&gt;
 24  64 Kbps Stereo Music - RealAudio&lt;br /&gt;
 25  96 Kbps Stereo Music - RealAudio&lt;br /&gt;
 26  12 Kbps Stereo Music - RealAudio&lt;br /&gt;
 27  64 kbps Stereo Surround - RealAudio&lt;br /&gt;
 28  96 kbps Stereo Surround - RealAudio&lt;br /&gt;
 29  44 kbps Stereo Surround - RealAudio&lt;br /&gt;
 30  96 Kbps 5.1 Multichannel - RealAudio 10&lt;br /&gt;
 31  132 Kbps 5.1 Multichannel - RealAudio 10&lt;br /&gt;
 32  184 Kbps 5.1 Multichannel - RealAudio 10&lt;br /&gt;
 33  268 Kbps 5.1 Multichannel - RealAudio 10&lt;br /&gt;
&lt;br /&gt;
[[Category:Audio Codecs]]&lt;br /&gt;
[[Category:Incomplete Audio Codecs]]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=RealVideo_4&amp;diff=3711</id>
		<title>RealVideo 4</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=RealVideo_4&amp;diff=3711"/>
		<updated>2006-03-27T19:25:49Z</updated>

		<summary type="html">&lt;p&gt;Roberto: Clarify RealVideo 9/10&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* FourCC: rv40&lt;br /&gt;
* Company: [[Real]]&lt;br /&gt;
* Samples: http://www.mplayerhq.hu/MPlayer/samples/real/VC-RV40/&lt;br /&gt;
&lt;br /&gt;
RealVideo 4 is available in [[RealPlayer]] starting with version 9. RealVideo 10 (introduced with RealPlayer 10) uses the same RV40 video format, and can be played by RealPlayer 9 decoder. All Realvideo 10 enhancements are in the encoder.&lt;br /&gt;
&lt;br /&gt;
RV40 is suspected to be based on [[H.264]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Video Codecs]]&lt;br /&gt;
[[Category:Undiscovered Video Codecs]]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=RealMedia&amp;diff=2525</id>
		<title>RealMedia</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=RealMedia&amp;diff=2525"/>
		<updated>2006-03-04T15:24:53Z</updated>

		<summary type="html">&lt;p&gt;Roberto: Rename &amp;quot;Genre&amp;quot; as interleaver ID (&amp;quot;genr&amp;quot; is just the name of  the generic interleaver)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: rm, ra, rmvb&lt;br /&gt;
* Company: [[Real]]&lt;br /&gt;
&lt;br /&gt;
Multimedia container format developed by [[Real]] and used almost exclusively for codecs developed by Real.&lt;br /&gt;
&lt;br /&gt;
The old .ra files are just for audio.  The newer RealMedia (.rm) files are for audio and video.&lt;br /&gt;
&lt;br /&gt;
== RA Format ==&lt;br /&gt;
&lt;br /&gt;
This is the old audio-only RealAudio file format.&lt;br /&gt;
A very similar structure is also used to describe audio streams in RM files.&lt;br /&gt;
&lt;br /&gt;
The audio data part is just a stream of bytes with no structure.&lt;br /&gt;
There is no index in .ra files, but seeking is possible because the codecs are CBR.&lt;br /&gt;
&lt;br /&gt;
=== RealAudio 1.0 file  (.ra version 3) ===&lt;br /&gt;
&lt;br /&gt;
This is from the very first version of RealAudio (1995).  These files can only contain [[RealAudio 14.4|8kbps VSELP]] audio data.  A FourCC (lpcJ) may be present, but it is ignored.  Byte order is big-endian.&lt;br /&gt;
&lt;br /&gt;
 byte[4]  Header signature ('.', 'r', 'a', 0xfd)&lt;br /&gt;
 word     Version (always 3)&lt;br /&gt;
 word     Header size - 7&lt;br /&gt;
 byte[10] Unknown&lt;br /&gt;
 dword    Data size&lt;br /&gt;
 byte     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 byte     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 byte     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 byte     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
 byte     Unknown *&lt;br /&gt;
 byte     Fourcc string length (always 4) *&lt;br /&gt;
 byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *&lt;br /&gt;
  Audio data&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* Fields marked with * may be missing. Based on the only known sample with no FourCC, it's assumed that all these fields are either present or missing.  To determine if they are missing, check the header size (bytes 6-7).&lt;br /&gt;
* The informative fields (title, author, copyright and comment) can have zero length.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== RealAudio 2.0 file (.ra version 4) ===&lt;br /&gt;
&lt;br /&gt;
This is second version of the RealAudio file format.  It is distinguished from the above by the value in byte 5 (=0x04).  This type of file must contain a valid FourCC to identify the audio codec.&lt;br /&gt;
&lt;br /&gt;
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].&lt;br /&gt;
&lt;br /&gt;
 byte[4]  Header signature ('.', 'r', 'a', 0xfd)&lt;br /&gt;
 word     Version (always 4)&lt;br /&gt;
 word     Unused (always 0)&lt;br /&gt;
 byte[4]  ra4 signature (always &amp;quot;.ra4&amp;quot;)&lt;br /&gt;
 dword    Data size - 0x27&lt;br /&gt;
 word     Version2 (always equal to version)&lt;br /&gt;
 dword    Header size - 16&lt;br /&gt;
 word     Codec flavor&lt;br /&gt;
 dword    Coded frame size&lt;br /&gt;
 byte[12] Unknown&lt;br /&gt;
 word     Sub packet h&lt;br /&gt;
 word     Frame size&lt;br /&gt;
 word     Subpacket size&lt;br /&gt;
 word     Unknown&lt;br /&gt;
 word     Samplerate&lt;br /&gt;
 word     Unknown&lt;br /&gt;
 word     Sample size&lt;br /&gt;
 word     Channels&lt;br /&gt;
 byte     Interleaver ID string length (always 4)&lt;br /&gt;
 byte[]   Interleaver ID string&lt;br /&gt;
 byte     FourCC string length (always 4)&lt;br /&gt;
 byte[]   FourCC string&lt;br /&gt;
 byte[3]  Unknown&lt;br /&gt;
 byte     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 byte     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 byte     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 byte     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
  Audio Data&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).&lt;br /&gt;
* The informative fields (title, author, copyright and comment) can have zero length.&lt;br /&gt;
&lt;br /&gt;
=== .ra version 5 ===&lt;br /&gt;
&lt;br /&gt;
While the .ra header can contain version 5, there are no known RealAudio files with this format, and it's not known if they really exist.&lt;br /&gt;
&lt;br /&gt;
== RealMedia Format ==&lt;br /&gt;
&lt;br /&gt;
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.&lt;br /&gt;
&lt;br /&gt;
A RealMedia file consists of a series of chunks. Each chunk has the following format:&lt;br /&gt;
&lt;br /&gt;
 dword  chunk type ([[FOURCC]])&lt;br /&gt;
 dword  chunk size, including 8-byte preamble&lt;br /&gt;
 word   chunk version&lt;br /&gt;
 byte[] chunk payload&lt;br /&gt;
&lt;br /&gt;
Real chunk types:&lt;br /&gt;
* .RMF: RealMedia file header (only one per file, must be the first chunk)&lt;br /&gt;
* PROP: File properties (only one per file)&lt;br /&gt;
* MDPR: Stream properties (one for each stream)&lt;br /&gt;
* CONT: Content description/metadata (typically one per file)&lt;br /&gt;
* DATA: File data&lt;br /&gt;
* INDX: File index (typically one per stream)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== RealMedia file header (.RMF) ===&lt;br /&gt;
&lt;br /&gt;
This must be the first chunk in a RealMedia file. Only one .RMF can be present in a file. The only useful information carried by .RMF is the number of headers.&lt;br /&gt;
&lt;br /&gt;
A .RMF chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword chunk type ('.RMF')&lt;br /&gt;
 dword chunk size (typically 0x12)&lt;br /&gt;
 word  chunk version (always 0, for every known file)&lt;br /&gt;
 dword file version&lt;br /&gt;
 dword number of headers&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* All known sample files have version equal to 0.&lt;br /&gt;
* There is a sample with chunk size = 0x10, in that case file version is a word. Note that the sample has chunk version = 0 like all other files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== File properties header (PROP) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.&lt;br /&gt;
&lt;br /&gt;
A PROP chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword  Chunk type ('PROP')&lt;br /&gt;
 dword  Chunk size (typically 0x32)&lt;br /&gt;
 word   Chunk version (always 0, for every known file)&lt;br /&gt;
 dword  Maximum bit rate&lt;br /&gt;
 dword  Average bit rate&lt;br /&gt;
 dword  Size of largest data packet&lt;br /&gt;
 dword  Average size of data packet&lt;br /&gt;
 dword  Number of data packets in the file&lt;br /&gt;
 dword  File duration in ms&lt;br /&gt;
 dword  Suggested number of ms to buffer before starting playback&lt;br /&gt;
 dword  Offset of the first INDX chunk form the start of the file&lt;br /&gt;
 dword  Offset of the first DATA chunk form the start of the file&lt;br /&gt;
 word   Number of streams in the file&lt;br /&gt;
 word   Flags (bitfield, see below)&lt;br /&gt;
&lt;br /&gt;
Flags:&lt;br /&gt;
* bit 0: file can be saved on disk&lt;br /&gt;
* bit 1: PerfectPlay can be used (extra buffering)&lt;br /&gt;
* bit 2: the file is a live broadcast&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Media properties header (MDPR) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains information about the properties of a RealMedia stream. This header defines the type of a stream and the codec used. All codec-related data is in the type specific part of this header.&lt;br /&gt;
&lt;br /&gt;
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.&lt;br /&gt;
&lt;br /&gt;
There is one MDPR chunk for every stream in the file.&lt;br /&gt;
&lt;br /&gt;
A MDPR chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword   Chunk type ('MDPR')&lt;br /&gt;
 dword   Chunk size&lt;br /&gt;
 word    Chunk version (always 0, for every known file)&lt;br /&gt;
 word    Stream number&lt;br /&gt;
 dword   Maximum bit rate&lt;br /&gt;
 dword   Average bit rate&lt;br /&gt;
 dword   Size of largest data packet&lt;br /&gt;
 dword   Average size of data packet&lt;br /&gt;
 dword   Stream start offset in ms&lt;br /&gt;
 dword   Preroll in ms (to be subtracted from timestamps?)&lt;br /&gt;
 dword   Stream duration in ms&lt;br /&gt;
 byte    Size of stream description string&lt;br /&gt;
 byte[]  Stream description string&lt;br /&gt;
 byte    Size of stream mime type string&lt;br /&gt;
 byte[]  Mime type string&lt;br /&gt;
 dword   Size of type specific part of the header&lt;br /&gt;
 byte[]  Type specific data, meaning and format depends on mime type&lt;br /&gt;
&lt;br /&gt;
== Codecs ==&lt;br /&gt;
&lt;br /&gt;
Codecs in RealMedia are identified by the following four character codes:&lt;br /&gt;
&lt;br /&gt;
===== Audio =====&lt;br /&gt;
&lt;br /&gt;
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)&lt;br /&gt;
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)&lt;br /&gt;
* [[RealAudio_dnet|dnet]] - AC3&lt;br /&gt;
* [[RealAudio_sipr|sipr]] - Sipro&lt;br /&gt;
* [[RealAudio_cook|cook]] - Cook&lt;br /&gt;
* [[RealAudio_atrc|atrc]] - ATRAC&lt;br /&gt;
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format&lt;br /&gt;
* [[RealAudio_raac|raac]] - LC-AAC&lt;br /&gt;
* [[RealAudio_racp|racp]] - HE-AAC&lt;br /&gt;
&lt;br /&gt;
===== Video =====&lt;br /&gt;
&lt;br /&gt;
* [[RealVideo|rv10]] - H.263&lt;br /&gt;
* [[RealVideo|rv13]] - H.263&lt;br /&gt;
* [[RealVideo|rv20]] - H.263+&lt;br /&gt;
* [[RealVideo|rv30]] - Unknown format&lt;br /&gt;
* [[RealVideo|rv40]] - Unknown format&lt;br /&gt;
&lt;br /&gt;
[[Category: Container Formats]]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=RealMedia&amp;diff=2514</id>
		<title>RealMedia</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=RealMedia&amp;diff=2514"/>
		<updated>2006-03-02T22:34:26Z</updated>

		<summary type="html">&lt;p&gt;Roberto: Start adding MDPR&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: rm, ra, rmvb&lt;br /&gt;
* Company: [[Real]]&lt;br /&gt;
&lt;br /&gt;
Multimedia container format developed by [[Real]] and used almost exclusively for codecs developed by Real.&lt;br /&gt;
&lt;br /&gt;
The old .ra files are just for audio.  The newer RealMedia (.rm) files are for audio and video.&lt;br /&gt;
&lt;br /&gt;
== RA Format ==&lt;br /&gt;
&lt;br /&gt;
This is the old audio-only RealAudio file format.&lt;br /&gt;
A very similar structure is also used to describe audio streams in RM files.&lt;br /&gt;
&lt;br /&gt;
The audio data part is just a stream of bytes with no structure.&lt;br /&gt;
There is no index in .ra files, but seeking is possible because the codecs are CBR.&lt;br /&gt;
&lt;br /&gt;
=== RealAudio 1.0 file  (.ra version 3) ===&lt;br /&gt;
&lt;br /&gt;
This is from the very first version of RealAudio (1995).  These files can only contain [[RealAudio 14.4|8kbps VSELP]] audio data.  A FourCC (lpcJ) may be present, but it is ignored.  Byte order is big-endian.&lt;br /&gt;
&lt;br /&gt;
 byte[4]  Header signature ('.', 'r', 'a', 0xfd)&lt;br /&gt;
 word     Version (always 3)&lt;br /&gt;
 word     Header size - 7&lt;br /&gt;
 byte[10] Unknown&lt;br /&gt;
 dword    Data size&lt;br /&gt;
 byte     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 byte     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 byte     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 byte     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
 byte     Unknown *&lt;br /&gt;
 byte     Fourcc string length (always 4) *&lt;br /&gt;
 byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *&lt;br /&gt;
  Audio data&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* Fields marked with * may be missing. Based on the only known sample with no FourCC, it's assumed that all these fields are either present or missing.  To determine if they are missing, check the header size (bytes 6-7).&lt;br /&gt;
* The informative fields (title, author, copyright and comment) can have zero length.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== RealAudio 2.0 file (.ra version 4) ===&lt;br /&gt;
&lt;br /&gt;
This is second version of the RealAudio file format.  It is distinguished from the above by the value in byte 5 (=0x04).  This type of file must contain a valid FourCC to identify the audio codec.&lt;br /&gt;
&lt;br /&gt;
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].&lt;br /&gt;
&lt;br /&gt;
 byte[4]  Header signature ('.', 'r', 'a', 0xfd)&lt;br /&gt;
 word     Version (always 4)&lt;br /&gt;
 word     Unused (always 0)&lt;br /&gt;
 byte[4]  ra4 signature (always &amp;quot;.ra4&amp;quot;)&lt;br /&gt;
 dword    Data size - 0x27&lt;br /&gt;
 word     Version2 (always equal to version)&lt;br /&gt;
 dword    Header size - 16&lt;br /&gt;
 word     Codec flavor&lt;br /&gt;
 dword    Coded frame size&lt;br /&gt;
 byte[12] Unknown&lt;br /&gt;
 word     Sub packet h&lt;br /&gt;
 word     Frame size&lt;br /&gt;
 word     Subpacket size&lt;br /&gt;
 word     Unknown&lt;br /&gt;
 word     Samplerate&lt;br /&gt;
 word     Unknown&lt;br /&gt;
 word     Sample size&lt;br /&gt;
 word     Channels&lt;br /&gt;
 byte     Genre string length (always 4)&lt;br /&gt;
 byte[]   Genre string&lt;br /&gt;
 byte     FourCC string length (always 4)&lt;br /&gt;
 byte[]   FourCC string&lt;br /&gt;
 byte[3]  Unknown&lt;br /&gt;
 byte     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 byte     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 byte     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 byte     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
  Audio Data&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).&lt;br /&gt;
* The informative fields (title, author, copyright and comment) can have zero length.&lt;br /&gt;
&lt;br /&gt;
=== .ra version 5 ===&lt;br /&gt;
&lt;br /&gt;
While the .ra header can contain version 5, there are no known RealAudio files with this format, and it's not known if they really exist.&lt;br /&gt;
&lt;br /&gt;
== RealMedia Format ==&lt;br /&gt;
&lt;br /&gt;
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.&lt;br /&gt;
&lt;br /&gt;
A RealMedia file consists of a series of chunks. Each chunk has the following format:&lt;br /&gt;
&lt;br /&gt;
 dword  chunk type ([[FOURCC]])&lt;br /&gt;
 dword  chunk size, including 8-byte preamble&lt;br /&gt;
 word   chunk version&lt;br /&gt;
 byte[] chunk payload&lt;br /&gt;
&lt;br /&gt;
Real chunk types:&lt;br /&gt;
* .RMF: RealMedia file header (only one per file, must be the first chunk)&lt;br /&gt;
* PROP: File properties (only one per file)&lt;br /&gt;
* MDPR: Stream properties (one for each stream)&lt;br /&gt;
* CONT: Content description/metadata (typically one per file)&lt;br /&gt;
* DATA: File data&lt;br /&gt;
* INDX: File index (typically one per stream)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== RealMedia file header (.RMF) ===&lt;br /&gt;
&lt;br /&gt;
This must be the first chunk in a RealMedia file. Only one .RMF can be present in a file. The only useful information carried by .RMF is the number of headers.&lt;br /&gt;
&lt;br /&gt;
A .RMF chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword chunk type ('.RMF')&lt;br /&gt;
 dword chunk size (typically 0x12)&lt;br /&gt;
 word  chunk version (always 0, for every known file)&lt;br /&gt;
 dword file version&lt;br /&gt;
 dword number of headers&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* All known sample files have version equal to 0.&lt;br /&gt;
* There is a sample with chunk size = 0x10, in that case file version is a word. Note that the sample has chunk version = 0 like all other files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== File properties header (PROP) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.&lt;br /&gt;
&lt;br /&gt;
A PROP chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword  Chunk type ('PROP')&lt;br /&gt;
 dword  Chunk size (typically 0x32)&lt;br /&gt;
 word   Chunk version (always 0, for every known file)&lt;br /&gt;
 dword  Maximum bit rate&lt;br /&gt;
 dword  Average bit rate&lt;br /&gt;
 dword  Size of largest data packet&lt;br /&gt;
 dword  Average size of data packet&lt;br /&gt;
 dword  Number of data packets in the file&lt;br /&gt;
 dword  File duration in ms&lt;br /&gt;
 dword  Suggested number of ms to buffer before starting playback&lt;br /&gt;
 dword  Offset of the first INDX chunk form the start of the file&lt;br /&gt;
 dword  Offset of the first DATA chunk form the start of the file&lt;br /&gt;
 word   Number of streams in the file&lt;br /&gt;
 word   Flags (bitfield, see below)&lt;br /&gt;
&lt;br /&gt;
Flags:&lt;br /&gt;
* bit 0: file can be saved on disk&lt;br /&gt;
* bit 1: PerfectPlay can be used (extra buffering)&lt;br /&gt;
* bit 2: the file is a live broadcast&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Media properties header (MDPR) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains information about the properties of a RealMedia stream. This header defines the type of a stream and the codec used. All codec-related data is in the type specific part of this header.&lt;br /&gt;
&lt;br /&gt;
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.&lt;br /&gt;
&lt;br /&gt;
There is one MDPR chunk for every stream in the file.&lt;br /&gt;
&lt;br /&gt;
A MDPR chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword   Chunk type ('MDPR')&lt;br /&gt;
 dword   Chunk size&lt;br /&gt;
 word    Chunk version (always 0, for every known file)&lt;br /&gt;
 word    Stream number&lt;br /&gt;
 dword   Maximum bit rate&lt;br /&gt;
 dword   Average bit rate&lt;br /&gt;
 dword   Size of largest data packet&lt;br /&gt;
 dword   Average size of data packet&lt;br /&gt;
 dword   Stream start offset in ms&lt;br /&gt;
 dword   Preroll in ms (to be subtracted from timestamps?)&lt;br /&gt;
 dword   Stream duration in ms&lt;br /&gt;
 byte    Size of stream description string&lt;br /&gt;
 byte[]  Stream description string&lt;br /&gt;
 byte    Size of stream mime type string&lt;br /&gt;
 byte[]  Mime type string&lt;br /&gt;
 dword   Size of type specific part of the header&lt;br /&gt;
 byte[]  Type specific data, meaning and format depends on mime type&lt;br /&gt;
&lt;br /&gt;
== Codecs ==&lt;br /&gt;
&lt;br /&gt;
Codecs in RealMedia are identified by the following four character codes:&lt;br /&gt;
&lt;br /&gt;
===== Audio =====&lt;br /&gt;
&lt;br /&gt;
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)&lt;br /&gt;
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)&lt;br /&gt;
* [[RealAudio_dnet|dnet]] - AC3&lt;br /&gt;
* [[RealAudio_sipr|sipr]] - Sipro&lt;br /&gt;
* [[RealAudio_cook|cook]] - Cook&lt;br /&gt;
* [[RealAudio_atrc|atrc]] - ATRAC&lt;br /&gt;
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format&lt;br /&gt;
* [[RealAudio_raac|raac]] - LC-AAC&lt;br /&gt;
* [[RealAudio_racp|racp]] - HE-AAC&lt;br /&gt;
&lt;br /&gt;
===== Video =====&lt;br /&gt;
&lt;br /&gt;
* [[RealVideo|rv10]] - H.263&lt;br /&gt;
* [[RealVideo|rv13]] - H.263&lt;br /&gt;
* [[RealVideo|rv20]] - H.263+&lt;br /&gt;
* [[RealVideo|rv30]] - Unknown format&lt;br /&gt;
* [[RealVideo|rv40]] - Unknown format&lt;br /&gt;
&lt;br /&gt;
[[Category: Container Formats]]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=RealMedia&amp;diff=2511</id>
		<title>RealMedia</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=RealMedia&amp;diff=2511"/>
		<updated>2006-03-01T21:50:47Z</updated>

		<summary type="html">&lt;p&gt;Roberto: PROP header&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: rm, ra, rmvb&lt;br /&gt;
* Company: [[Real]]&lt;br /&gt;
&lt;br /&gt;
Multimedia container format developed by [[Real]] and used almost exclusively for codecs developed by Real.&lt;br /&gt;
&lt;br /&gt;
The old .ra files are just for audio.  The newer RealMedia (.rm) files are for audio and video.&lt;br /&gt;
&lt;br /&gt;
== RA Format ==&lt;br /&gt;
&lt;br /&gt;
This is the old audio-only RealAudio file format.&lt;br /&gt;
A very similar structure is also used to describe audio streams in RM files.&lt;br /&gt;
&lt;br /&gt;
The audio data part is just a stream of bytes with no structure.&lt;br /&gt;
There is no index in .ra files, but seeking is possible because the codecs are CBR.&lt;br /&gt;
&lt;br /&gt;
=== RealAudio 1.0 file  (.ra version 3) ===&lt;br /&gt;
&lt;br /&gt;
This is from the very first version of RealAudio (1995).  These files can only contain [[RealAudio 14.4|8kbps VSELP]] audio data.  A FourCC (lpcJ) may be present, but it is ignored.  Byte order is big-endian.&lt;br /&gt;
&lt;br /&gt;
 byte[4]  Header signature ('.', 'r', 'a', 0xfd)&lt;br /&gt;
 word     Version (always 3)&lt;br /&gt;
 word     Header size - 7&lt;br /&gt;
 byte[10] Unknown&lt;br /&gt;
 dword    Data size&lt;br /&gt;
 byte     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 byte     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 byte     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 byte     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
 byte     Unknown *&lt;br /&gt;
 byte     Fourcc string length (always 4) *&lt;br /&gt;
 byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *&lt;br /&gt;
  Audio data&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* Fields marked with * may be missing. Based on the only known sample with no FourCC, it's assumed that all these fields are either present or missing.  To determine if they are missing, check the header size (bytes 6-7).&lt;br /&gt;
* The informative fields (title, author, copyright and comment) can have zero length.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== RealAudio 2.0 file (.ra version 4) ===&lt;br /&gt;
&lt;br /&gt;
This is second version of the RealAudio file format.  It is distinguished from the above by the value in byte 5 (=0x04).  This type of file must contain a valid FourCC to identify the audio codec.&lt;br /&gt;
&lt;br /&gt;
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].&lt;br /&gt;
&lt;br /&gt;
 byte[4]  Header signature ('.', 'r', 'a', 0xfd)&lt;br /&gt;
 word     Version (always 4)&lt;br /&gt;
 word     Unused (always 0)&lt;br /&gt;
 byte[4]  ra4 signature (always &amp;quot;.ra4&amp;quot;)&lt;br /&gt;
 dword    Data size - 0x27&lt;br /&gt;
 word     Version2 (always equal to version)&lt;br /&gt;
 dword    Header size - 16&lt;br /&gt;
 word     Codec flavor&lt;br /&gt;
 dword    Coded frame size&lt;br /&gt;
 byte[12] Unknown&lt;br /&gt;
 word     Sub packet h&lt;br /&gt;
 word     Frame size&lt;br /&gt;
 word     Subpacket size&lt;br /&gt;
 word     Unknown&lt;br /&gt;
 word     Samplerate&lt;br /&gt;
 word     Unknown&lt;br /&gt;
 word     Sample size&lt;br /&gt;
 word     Channels&lt;br /&gt;
 byte     Genre string length (always 4)&lt;br /&gt;
 byte[]   Genre string&lt;br /&gt;
 byte     FourCC string length (always 4)&lt;br /&gt;
 byte[]   FourCC string&lt;br /&gt;
 byte[3]  Unknown&lt;br /&gt;
 byte     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 byte     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 byte     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 byte     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
  Audio Data&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).&lt;br /&gt;
* The informative fields (title, author, copyright and comment) can have zero length.&lt;br /&gt;
&lt;br /&gt;
=== .ra version 5 ===&lt;br /&gt;
&lt;br /&gt;
While the .ra header can contain version 5, there are no known RealAudio files with this format, and it's not known if they really exist.&lt;br /&gt;
&lt;br /&gt;
== RealMedia Format ==&lt;br /&gt;
&lt;br /&gt;
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.&lt;br /&gt;
&lt;br /&gt;
A RealMedia file consists of a series of chunks. Each chunk has the following format:&lt;br /&gt;
&lt;br /&gt;
 dword  chunk type ([[FOURCC]])&lt;br /&gt;
 dword  chunk size, including 8-byte preamble&lt;br /&gt;
 word   chunk version&lt;br /&gt;
 byte[] chunk payload&lt;br /&gt;
&lt;br /&gt;
Real chunk types:&lt;br /&gt;
* .RMF: RealMedia file header (only one per file, must be the first chunk)&lt;br /&gt;
* PROP: File properties (only one per file)&lt;br /&gt;
* MDPR: Stream properties (one for each stream)&lt;br /&gt;
* CONT: Content description/metadata (typically one per file)&lt;br /&gt;
* DATA: File data&lt;br /&gt;
* INDX: File index (typically one per stream)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== RealMedia file header (.RMF) ===&lt;br /&gt;
&lt;br /&gt;
This must be the first chunk in a RealMedia file. Only one .RMF can be present in a file. The only useful information carried by .RMF is the number of headers.&lt;br /&gt;
&lt;br /&gt;
A .RMF chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword chunk type ('.RMF')&lt;br /&gt;
 dword chunk size (typically 0x12)&lt;br /&gt;
 word  chunk version (always 0, for every known file)&lt;br /&gt;
 dword file version&lt;br /&gt;
 dword number of headers&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* All known sample files have version equal to 0.&lt;br /&gt;
* There is a sample with chunk size = 0x10, in that case file version is a word. Note that the sample has chunk version = 0 like all other files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== File properties header (PROP) ===&lt;br /&gt;
&lt;br /&gt;
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.&lt;br /&gt;
&lt;br /&gt;
A PROP chunk has the following format&lt;br /&gt;
&lt;br /&gt;
 dword  Chunk type ('PROP')&lt;br /&gt;
 dword  Chunk size (typically 0x32)&lt;br /&gt;
 word   Chunk version (always 0, for every known file)&lt;br /&gt;
 dword  Maximum bit rate&lt;br /&gt;
 dword  Average bit rate&lt;br /&gt;
 dword  Size of largest data packet&lt;br /&gt;
 dword  Average size of data packet&lt;br /&gt;
 dword  Number of data packets in the file&lt;br /&gt;
 dword  File duration in ms&lt;br /&gt;
 dword  Suggested number of ms to buffer before starting playback&lt;br /&gt;
 dword  Offset of the first INDX chunk form the start of the file&lt;br /&gt;
 dword  Offset of the first DATA chunk form the start of the file&lt;br /&gt;
 word   Number of streams in the file&lt;br /&gt;
 word   Flags (bitfield, see below)&lt;br /&gt;
&lt;br /&gt;
Flags:&lt;br /&gt;
* bit 0: file can be saved on disk&lt;br /&gt;
* bit 1: PerfectPlay can be used (extra buffering)&lt;br /&gt;
* bit 2: the file is a live broadcast&lt;br /&gt;
&lt;br /&gt;
== Codecs ==&lt;br /&gt;
&lt;br /&gt;
Codecs in RealMedia are identified by the following four character codes:&lt;br /&gt;
&lt;br /&gt;
===== Audio =====&lt;br /&gt;
&lt;br /&gt;
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)&lt;br /&gt;
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)&lt;br /&gt;
* [[RealAudio_dnet|dnet]] - AC3&lt;br /&gt;
* [[RealAudio_sipr|sipr]] - Sipro&lt;br /&gt;
* [[RealAudio_cook|cook]] - Cook&lt;br /&gt;
* [[RealAudio_atrc|atrc]] - ATRAC&lt;br /&gt;
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format&lt;br /&gt;
* [[RealAudio_raac|raac]] - LC-AAC&lt;br /&gt;
* [[RealAudio_racp|racp]] - HE-AAC&lt;br /&gt;
&lt;br /&gt;
===== Video =====&lt;br /&gt;
&lt;br /&gt;
* [[RealVideo|rv10]] - H.263&lt;br /&gt;
* [[RealVideo|rv13]] - H.263&lt;br /&gt;
* [[RealVideo|rv20]] - H.263+&lt;br /&gt;
* [[RealVideo|rv30]] - Unknown format&lt;br /&gt;
* [[RealVideo|rv40]] - Unknown format&lt;br /&gt;
&lt;br /&gt;
[[Category: Container Formats]]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=RealMedia&amp;diff=2423</id>
		<title>RealMedia</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=RealMedia&amp;diff=2423"/>
		<updated>2006-02-26T23:46:22Z</updated>

		<summary type="html">&lt;p&gt;Roberto: .RMF&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: rm, ra, rmvb&lt;br /&gt;
* Company: [[Real]]&lt;br /&gt;
&lt;br /&gt;
Multimedia container format developed by [[Real]] and used almost exclusively for codecs developed by Real.&lt;br /&gt;
&lt;br /&gt;
The old .ra files are just for audio.  The newer RealMedia (.rm) files are for audio and video.&lt;br /&gt;
&lt;br /&gt;
== RA Format ==&lt;br /&gt;
&lt;br /&gt;
This is the old audio-only RealAudio file format.&lt;br /&gt;
A very similar structure is also used to describe audio streams in RM files.&lt;br /&gt;
&lt;br /&gt;
The audio data part is just a stream of bytes with no structure.&lt;br /&gt;
There is no index in .ra files.&lt;br /&gt;
&lt;br /&gt;
=== RealAudio 1.0 file  (.ra version 3) ===&lt;br /&gt;
&lt;br /&gt;
This is from the very first version of RealAudio (1994).  These files can only contain [[RealAudio 14.4|8kbps VSELP]] audio data.  A FourCC (lpcJ) may be present, but it is ignored.&lt;br /&gt;
&lt;br /&gt;
 byte[4]  Header signature ('.', 'r', 'a', 0xfd)&lt;br /&gt;
 word     Version (always 3)&lt;br /&gt;
 word     Header size - 7&lt;br /&gt;
 byte[10] Unknown&lt;br /&gt;
 dword    Data size&lt;br /&gt;
 byte     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 byte     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 byte     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 byte     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
 byte     Unknown *&lt;br /&gt;
 byte     Fourcc string length (always 4) *&lt;br /&gt;
 byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *&lt;br /&gt;
  Audio data&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* Fields marked with * may be missing. Based on the only known sample with no FourCC, it's assumed that all these fields are either present or missing.&lt;br /&gt;
* The informative fields (title, author, copyright and comment) can have zero length.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== RealAudio 2.0 file (.ra version 4) ===&lt;br /&gt;
&lt;br /&gt;
This is second version of the RealAudio file format.  It is distinguished from the above by the value in byte 5 (=0x04).  This type of file must contain a valid FourCC to identify the audio codec.&lt;br /&gt;
&lt;br /&gt;
Possible fourcc values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].&lt;br /&gt;
&lt;br /&gt;
 byte[4]  Header signature ('.', 'r', 'a', 0xfd)&lt;br /&gt;
 word     Version (always 4)&lt;br /&gt;
 word     Unused (always 0)&lt;br /&gt;
 byte[4]  ra4 signature (always &amp;quot;.ra4&amp;quot;)&lt;br /&gt;
 dword    Data size - 0x27&lt;br /&gt;
 word     Version2 (always equal to version)&lt;br /&gt;
 dword    Header size - 16&lt;br /&gt;
 word     Codec flavor&lt;br /&gt;
 dword    Coded Frame Size&lt;br /&gt;
 byte[12] Unknown&lt;br /&gt;
 word     Sub packet h&lt;br /&gt;
 word     Frame Size&lt;br /&gt;
 word     Sub Packet Size&lt;br /&gt;
 word     Unknown&lt;br /&gt;
 word     Sample rate&lt;br /&gt;
 word     Unknown&lt;br /&gt;
 word     Sample size&lt;br /&gt;
 word     Channels&lt;br /&gt;
 byte     genr string length (always 4)&lt;br /&gt;
 byte[]   genr string&lt;br /&gt;
 byte     Fourcc string length (always 4)&lt;br /&gt;
 byte[]   Fourcc string&lt;br /&gt;
 byte[3]  Unknown&lt;br /&gt;
 byte     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 byte     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 byte     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 byte     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
  Audio Data&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).&lt;br /&gt;
* The informative fields (title, author, copyright and comment) can have zero length.&lt;br /&gt;
&lt;br /&gt;
=== .ra version 5 ===&lt;br /&gt;
&lt;br /&gt;
While .ra header can have version 5, there are no known RealAudio files with this format, and it's not known if they really exist.&lt;br /&gt;
&lt;br /&gt;
== RealMedia Format ==&lt;br /&gt;
&lt;br /&gt;
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big endian-format.&lt;br /&gt;
&lt;br /&gt;
A RealMedia file consists of a series of chunks. Each chunk has the following format:&lt;br /&gt;
&lt;br /&gt;
 dword  chunk type ([[FOURCC]])&lt;br /&gt;
 dword  chunk size, including 8-byte preamble&lt;br /&gt;
 word   chunk version&lt;br /&gt;
 byte[] chunk payload&lt;br /&gt;
&lt;br /&gt;
Real chunk types:&lt;br /&gt;
* .RMF: RealMedia file header (only one per file, must be the first chunk)&lt;br /&gt;
* PROP: File properties (only one per file)&lt;br /&gt;
* MDPR: Stream properties (one for each stream)&lt;br /&gt;
* CONT: Content description/metadata (typically one per file)&lt;br /&gt;
* DATA: File data&lt;br /&gt;
* INDX: File index (tipically one per stream)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== RealMedia file header (.RMF) ===&lt;br /&gt;
This must be the first chunk in a RealMedia file. Only one .RMF can be present in a file. The only useful informations carried by .RMF is the number of headers.&lt;br /&gt;
&lt;br /&gt;
A .RMF chunk have this format&lt;br /&gt;
&lt;br /&gt;
 dword chunk type ('.RMF')&lt;br /&gt;
 dword chunk size (tipically 0x12)&lt;br /&gt;
 word  chunk version (always 0, for every known file)&lt;br /&gt;
 dword file version&lt;br /&gt;
 dword number of headers&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* All known sample file version equal to 0&lt;br /&gt;
* There is a sample with chunk size = 0x10, in that case file version is a word. Note that the sample have chunk version = 0 like all other files&lt;br /&gt;
&lt;br /&gt;
== Codecs ==&lt;br /&gt;
&lt;br /&gt;
Codecs in RealMedia are identified by the following four character codes:&lt;br /&gt;
&lt;br /&gt;
===== Audio =====&lt;br /&gt;
&lt;br /&gt;
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)&lt;br /&gt;
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)&lt;br /&gt;
* [[RealAudio_dnet|dnet]] - AC3&lt;br /&gt;
* [[RealAudio_sipr|sipr]] - Sipro&lt;br /&gt;
* [[RealAudio_cook|cook]] - Cook&lt;br /&gt;
* [[RealAudio_atrc|atrc]] - ATRAC&lt;br /&gt;
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format&lt;br /&gt;
* [[RealAudio_raac|raac]] - LC-AAC&lt;br /&gt;
* [[RealAudio_racp|racp]] - HE-AAC&lt;br /&gt;
&lt;br /&gt;
===== Video =====&lt;br /&gt;
&lt;br /&gt;
* [[RealVideo|rv10]] - H.263&lt;br /&gt;
* [[RealVideo|rv13]] - H.263&lt;br /&gt;
* [[RealVideo|rv20]] - H.263+&lt;br /&gt;
* [[RealVideo|rv30]] - Unknown format&lt;br /&gt;
* [[RealVideo|rv40]] - Unknown format&lt;br /&gt;
&lt;br /&gt;
[[Category: Container Formats]]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=RealMedia&amp;diff=2422</id>
		<title>RealMedia</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=RealMedia&amp;diff=2422"/>
		<updated>2006-02-26T22:52:10Z</updated>

		<summary type="html">&lt;p&gt;Roberto: Add version, chunk frequency; remove vido and .ar (they are substructures of MDPR)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: rm, ra, rmvb&lt;br /&gt;
* Company: [[Real]]&lt;br /&gt;
&lt;br /&gt;
Multimedia container format developed by [[Real]] and used almost exclusively for codecs developed by Real.&lt;br /&gt;
&lt;br /&gt;
The old .ra files are just for audio.  The newer RealMedia (.rm) files are for audio and video.&lt;br /&gt;
&lt;br /&gt;
== RA Format ==&lt;br /&gt;
&lt;br /&gt;
This is the old audio-only RealAudio file format.&lt;br /&gt;
A very similar structure is also used to describe audio streams in RM files.&lt;br /&gt;
&lt;br /&gt;
The audio data part is just a stream of bytes with no structure.&lt;br /&gt;
There is no index in .ra files.&lt;br /&gt;
&lt;br /&gt;
=== RealAudio 1.0 file  (.ra version 3) ===&lt;br /&gt;
&lt;br /&gt;
This is from the very first version of RealAudio (1994).  These files can only contain [[RealAudio 14.4|8kbps VSELP]] audio data.  A FourCC (lpcJ) may be present, but it is ignored.&lt;br /&gt;
&lt;br /&gt;
 byte[4]  Header signature ('.', 'r', 'a', 0xfd)&lt;br /&gt;
 word     Version (always 3)&lt;br /&gt;
 word     Header size - 7&lt;br /&gt;
 byte[10] Unknown&lt;br /&gt;
 dword    Data size&lt;br /&gt;
 byte     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 byte     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 byte     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 byte     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
 byte     Unknown *&lt;br /&gt;
 byte     Fourcc string length (always 4) *&lt;br /&gt;
 byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *&lt;br /&gt;
  Audio data&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* Fields marked with * may be missing. Based on the only known sample with no FourCC, it's assumed that all these fields are either present or missing.&lt;br /&gt;
* The informative fields (title, author, copyright and comment) can have zero length.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== RealAudio 2.0 file (.ra version 4) ===&lt;br /&gt;
&lt;br /&gt;
This is second version of the RealAudio file format.  It is distinguished from the above by the value in byte 5 (=0x04).  This type of file must contain a valid FourCC to identify the audio codec.&lt;br /&gt;
&lt;br /&gt;
Possible fourcc values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].&lt;br /&gt;
&lt;br /&gt;
 byte[4]  Header signature ('.', 'r', 'a', 0xfd)&lt;br /&gt;
 word     Version (always 4)&lt;br /&gt;
 word     Unused (always 0)&lt;br /&gt;
 byte[4]  ra4 signature (always &amp;quot;.ra4&amp;quot;)&lt;br /&gt;
 dword    Data size - 0x27&lt;br /&gt;
 word     Version2 (always equal to version)&lt;br /&gt;
 dword    Header size - 16&lt;br /&gt;
 word     Codec flavor&lt;br /&gt;
 dword    Coded Frame Size&lt;br /&gt;
 byte[12] Unknown&lt;br /&gt;
 word     Sub packet h&lt;br /&gt;
 word     Frame Size&lt;br /&gt;
 word     Sub Packet Size&lt;br /&gt;
 word     Unknown&lt;br /&gt;
 word     Sample rate&lt;br /&gt;
 word     Unknown&lt;br /&gt;
 word     Sample size&lt;br /&gt;
 word     Channels&lt;br /&gt;
 byte     genr string length (always 4)&lt;br /&gt;
 byte[]   genr string&lt;br /&gt;
 byte     Fourcc string length (always 4)&lt;br /&gt;
 byte[]   Fourcc string&lt;br /&gt;
 byte[3]  Unknown&lt;br /&gt;
 byte     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 byte     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 byte     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 byte     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
  Audio Data&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).&lt;br /&gt;
* The informative fields (title, author, copyright and comment) can have zero length.&lt;br /&gt;
&lt;br /&gt;
=== .ra version 5 ===&lt;br /&gt;
&lt;br /&gt;
While .ra header can have version 5, there are no known RealAudio files with this format, and it's not known if they really exist.&lt;br /&gt;
&lt;br /&gt;
== RealMedia Format ==&lt;br /&gt;
&lt;br /&gt;
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big endian-format.&lt;br /&gt;
&lt;br /&gt;
A RealMedia file consists of a series of chunks. Each chunk has the following format:&lt;br /&gt;
&lt;br /&gt;
 dword  chunk type ([[FOURCC]])&lt;br /&gt;
 dword  chunk size, including 8-byte preamble&lt;br /&gt;
 word   chunk version&lt;br /&gt;
 byte[] chunk payload&lt;br /&gt;
&lt;br /&gt;
Real chunk types:&lt;br /&gt;
* .RMF: RealMedia file header (only one per file, must be the first chunk)&lt;br /&gt;
* PROP: File properties (only one per file)&lt;br /&gt;
* MDPR: Stream properties (one for each stream)&lt;br /&gt;
* CONT: Content description/metadata (typically one per file)&lt;br /&gt;
* DATA: File data&lt;br /&gt;
* INDX: File index (tipically one per stream)&lt;br /&gt;
&lt;br /&gt;
== Codecs ==&lt;br /&gt;
&lt;br /&gt;
Codecs in RealMedia are identified by the following four character codes:&lt;br /&gt;
&lt;br /&gt;
===== Audio =====&lt;br /&gt;
&lt;br /&gt;
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)&lt;br /&gt;
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)&lt;br /&gt;
* [[RealAudio_dnet|dnet]] - AC3&lt;br /&gt;
* [[RealAudio_sipr|sipr]] - Sipro&lt;br /&gt;
* [[RealAudio_cook|cook]] - Cook&lt;br /&gt;
* [[RealAudio_atrc|atrc]] - ATRAC&lt;br /&gt;
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format&lt;br /&gt;
* [[RealAudio_raac|raac]] - LC-AAC&lt;br /&gt;
* [[RealAudio_racp|racp]] - HE-AAC&lt;br /&gt;
&lt;br /&gt;
===== Video =====&lt;br /&gt;
&lt;br /&gt;
* [[RealVideo|rv10]] - H.263&lt;br /&gt;
* [[RealVideo|rv13]] - H.263&lt;br /&gt;
* [[RealVideo|rv20]] - H.263+&lt;br /&gt;
* [[RealVideo|rv30]] - Unknown format&lt;br /&gt;
* [[RealVideo|rv40]] - Unknown format&lt;br /&gt;
&lt;br /&gt;
[[Category: Container Formats]]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=RealMedia&amp;diff=2421</id>
		<title>RealMedia</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=RealMedia&amp;diff=2421"/>
		<updated>2006-02-26T21:20:12Z</updated>

		<summary type="html">&lt;p&gt;Roberto: Explain audio data part&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: rm, ra, rmvb&lt;br /&gt;
* Company: [[Real]]&lt;br /&gt;
&lt;br /&gt;
Multimedia container format developed by [[Real]] and used almost exclusively for codecs developed by Real.&lt;br /&gt;
&lt;br /&gt;
The old .ra files are just for audio.  The newer RealMedia (.rm) files are for audio and video.&lt;br /&gt;
&lt;br /&gt;
== RA Format ==&lt;br /&gt;
&lt;br /&gt;
This is the old audio-only RealAudio file format.&lt;br /&gt;
A very similar structure is also used to describe audio streams in RM files.&lt;br /&gt;
&lt;br /&gt;
The audio data part is just a stream of bytes with no structure.&lt;br /&gt;
There is no index in .ra files.&lt;br /&gt;
&lt;br /&gt;
=== RealAudio 1.0 file  (.ra version 3) ===&lt;br /&gt;
&lt;br /&gt;
This is from the very first version of RealAudio (1994).  These files can only contain [[RealAudio 14.4|8kbps VSELP]] audio data.  A FourCC (lpcJ) may be present, but it is ignored.&lt;br /&gt;
&lt;br /&gt;
 byte[4]  Header signature ('.', 'r', 'a', 0xfd)&lt;br /&gt;
 word     Version (always 3)&lt;br /&gt;
 word     Header size - 7&lt;br /&gt;
 byte[10] Unknown&lt;br /&gt;
 dword    Data size&lt;br /&gt;
 byte     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 byte     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 byte     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 byte     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
 byte     Unknown *&lt;br /&gt;
 byte     Fourcc string length (always 4) *&lt;br /&gt;
 byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *&lt;br /&gt;
  Audio data&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* Fields marked with * may be missing. Based on the only known sample with no FourCC, it's assumed that all these fields are either present or missing.&lt;br /&gt;
* The informative fields (title, author, copyright and comment) can have zero length.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== RealAudio 2.0 file (.ra version 4) ===&lt;br /&gt;
&lt;br /&gt;
This is second version of the RealAudio file format.  It is distinguished from the above by the value in byte 5 (=0x04).  This type of file must contain a valid FourCC to identify the audio codec.&lt;br /&gt;
&lt;br /&gt;
Possible fourcc values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].&lt;br /&gt;
&lt;br /&gt;
 byte[4]  Header signature ('.', 'r', 'a', 0xfd)&lt;br /&gt;
 word     Version (always 4)&lt;br /&gt;
 word     Unused (always 0)&lt;br /&gt;
 byte[4]  ra4 signature (always &amp;quot;.ra4&amp;quot;)&lt;br /&gt;
 dword    Data size - 0x27&lt;br /&gt;
 word     Version2 (always equal to version)&lt;br /&gt;
 dword    Header size - 16&lt;br /&gt;
 word     Codec flavor&lt;br /&gt;
 dword    Coded Frame Size&lt;br /&gt;
 byte[12] Unknown&lt;br /&gt;
 word     Sub packet h&lt;br /&gt;
 word     Frame Size&lt;br /&gt;
 word     Sub Packet Size&lt;br /&gt;
 word     Unknown&lt;br /&gt;
 word     Sample rate&lt;br /&gt;
 word     Unknown&lt;br /&gt;
 word     Sample size&lt;br /&gt;
 word     Channels&lt;br /&gt;
 byte     genr string length (always 4)&lt;br /&gt;
 byte[]   genr string&lt;br /&gt;
 byte     Fourcc string length (always 4)&lt;br /&gt;
 byte[]   Fourcc string&lt;br /&gt;
 byte[3]  Unknown&lt;br /&gt;
 byte     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 byte     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 byte     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 byte     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
  Audio Data&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).&lt;br /&gt;
* The informative fields (title, author, copyright and comment) can have zero length.&lt;br /&gt;
&lt;br /&gt;
=== .ra version 5 ===&lt;br /&gt;
&lt;br /&gt;
While .ra header can have version 5, there are no known RealAudio files with this format, and it's not known if they really exist.&lt;br /&gt;
&lt;br /&gt;
== RealMedia Format ==&lt;br /&gt;
&lt;br /&gt;
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big endian-format.&lt;br /&gt;
&lt;br /&gt;
A RealMedia file consists of a series of chunks. Each chunk has the following format:&lt;br /&gt;
&lt;br /&gt;
 bytes 0-3    chunk type ([[FOURCC]])&lt;br /&gt;
 bytes 4-7    chunk size, including 8-byte preamble&lt;br /&gt;
 bytes n..    chunk payload&lt;br /&gt;
&lt;br /&gt;
Real chunk types:&lt;br /&gt;
* .RMF: RealMedia file header&lt;br /&gt;
* PROP: File properties&lt;br /&gt;
* MDPR: Stream properties&lt;br /&gt;
* CONT: Content description/metadata&lt;br /&gt;
* DATA: File data&lt;br /&gt;
* INDX: File index&lt;br /&gt;
* '.','r','a',0xFD: Legacy RealAudio encapsulation&lt;br /&gt;
* VIDO&lt;br /&gt;
&lt;br /&gt;
== Codecs ==&lt;br /&gt;
&lt;br /&gt;
Codecs in RealMedia are identified by the following four character codes:&lt;br /&gt;
&lt;br /&gt;
===== Audio =====&lt;br /&gt;
&lt;br /&gt;
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)&lt;br /&gt;
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)&lt;br /&gt;
* [[RealAudio_dnet|dnet]] - AC3&lt;br /&gt;
* [[RealAudio_sipr|sipr]] - Sipro&lt;br /&gt;
* [[RealAudio_cook|cook]] - Cook&lt;br /&gt;
* [[RealAudio_atrc|atrc]] - ATRAC&lt;br /&gt;
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format&lt;br /&gt;
* [[RealAudio_raac|raac]] - LC-AAC&lt;br /&gt;
* [[RealAudio_racp|racp]] - HE-AAC&lt;br /&gt;
&lt;br /&gt;
===== Video =====&lt;br /&gt;
&lt;br /&gt;
* [[RealVideo|rv10]] - H.263&lt;br /&gt;
* [[RealVideo|rv13]] - H.263&lt;br /&gt;
* [[RealVideo|rv20]] - H.263+&lt;br /&gt;
* [[RealVideo|rv30]] - Unknown format&lt;br /&gt;
* [[RealVideo|rv40]] - Unknown format&lt;br /&gt;
&lt;br /&gt;
[[Category: Container Formats]]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=RealMedia&amp;diff=2414</id>
		<title>RealMedia</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=RealMedia&amp;diff=2414"/>
		<updated>2006-02-25T14:50:39Z</updated>

		<summary type="html">&lt;p&gt;Roberto: Add rmvb extension&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: rm, ra, rmvb&lt;br /&gt;
* Company: [[Real]]&lt;br /&gt;
&lt;br /&gt;
Multimedia container format developed by [[Real]] and used almost exclusively for codecs developed by Real.&lt;br /&gt;
&lt;br /&gt;
The old .ra files are just for audio.  The newer RealMedia (.rm) files are for audio and video.&lt;br /&gt;
&lt;br /&gt;
== RA Format ==&lt;br /&gt;
&lt;br /&gt;
This is the old audio-only RealAudio file format.&lt;br /&gt;
A very similar structure is also used to describe audio streams in RM files.&lt;br /&gt;
&lt;br /&gt;
=== RealAudio 1.0 file  (.ra version 3) ===&lt;br /&gt;
&lt;br /&gt;
This is from the very first version of RealAudio (1994).  These files can only contain [[RealAudio 14.4|8kbps VSELP]] audio data.  A FourCC (lpcJ) may be present, but it is ignored.&lt;br /&gt;
&lt;br /&gt;
 byte[4]  Header signature ('.', 'r', 'a', 0xfd)&lt;br /&gt;
 word     Version (always 3)&lt;br /&gt;
 word     Header size - 7&lt;br /&gt;
 byte[10] Unknown&lt;br /&gt;
 dword    Data size&lt;br /&gt;
 byte     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 byte     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 byte     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 byte     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
 byte     Unknown *&lt;br /&gt;
 byte     Fourcc string length (always 4) *&lt;br /&gt;
 byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *&lt;br /&gt;
  Audio data&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* Fields marked with * may be missing. Based on the only known sample with no FourCC, it's assumed that all these fields are either present or missing.&lt;br /&gt;
* The informative fields (title, author, copyright and comment) can have zero length.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== RealAudio 2.0 file (.ra version 4) ===&lt;br /&gt;
&lt;br /&gt;
This is second version of the RealAudio file format.  It is distinguished from the above by the value in byte 5 (=0x04).  This type of file must contain a valid FourCC to identify the audio codec.&lt;br /&gt;
&lt;br /&gt;
Possible fourcc values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].&lt;br /&gt;
&lt;br /&gt;
 byte[4]  Header signature ('.', 'r', 'a', 0xfd)&lt;br /&gt;
 word     Version (always 4)&lt;br /&gt;
 word     Unused (always 0)&lt;br /&gt;
 byte[4]  ra4 signature (always &amp;quot;.ra4&amp;quot;)&lt;br /&gt;
 dword    Data size - 0x27&lt;br /&gt;
 word     Version2 (always equal to version)&lt;br /&gt;
 dword    Header size - 16&lt;br /&gt;
 word     Codec flavor&lt;br /&gt;
 dword    Coded Frame Size&lt;br /&gt;
 byte[12] Unknown&lt;br /&gt;
 word     Sub packet h&lt;br /&gt;
 word     Frame Size&lt;br /&gt;
 word     Sub Packet Size&lt;br /&gt;
 word     Unknown&lt;br /&gt;
 word     Sample rate&lt;br /&gt;
 word     Unknown&lt;br /&gt;
 word     Sample size&lt;br /&gt;
 word     Channels&lt;br /&gt;
 byte     genr string length (always 4)&lt;br /&gt;
 byte[]   genr string&lt;br /&gt;
 byte     Fourcc string length (always 4)&lt;br /&gt;
 byte[]   Fourcc string&lt;br /&gt;
 byte[3]  Unknown&lt;br /&gt;
 byte     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 byte     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 byte     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 byte     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
  Audio Data&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).&lt;br /&gt;
* The informative fields (title, author, copyright and comment) can have zero length.&lt;br /&gt;
&lt;br /&gt;
=== .ra version 5 ===&lt;br /&gt;
&lt;br /&gt;
While .ra header can have version 5, there are no known RealAudio files with this format, and it's not known if they really exist.&lt;br /&gt;
&lt;br /&gt;
== RealMedia Format ==&lt;br /&gt;
&lt;br /&gt;
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big endian-format.&lt;br /&gt;
&lt;br /&gt;
A RealMedia file consists of a series of chunks. Each chunk has the following format:&lt;br /&gt;
&lt;br /&gt;
 bytes 0-3    chunk type ([[FOURCC]])&lt;br /&gt;
 bytes 4-7    chunk size, including 8-byte preamble&lt;br /&gt;
 bytes n..    chunk payload&lt;br /&gt;
&lt;br /&gt;
Real chunk types:&lt;br /&gt;
* .RMF: RealMedia file header&lt;br /&gt;
* PROP: File properties&lt;br /&gt;
* MDPR: Stream properties&lt;br /&gt;
* CONT: Content description/metadata&lt;br /&gt;
* DATA: File data&lt;br /&gt;
* INDX: File index&lt;br /&gt;
* '.','r','a',0xFD: Legacy RealAudio encapsulation&lt;br /&gt;
* VIDO&lt;br /&gt;
&lt;br /&gt;
== Codecs ==&lt;br /&gt;
&lt;br /&gt;
Codecs in RealMedia are identified by the following four character codes:&lt;br /&gt;
&lt;br /&gt;
===== Audio =====&lt;br /&gt;
&lt;br /&gt;
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)&lt;br /&gt;
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)&lt;br /&gt;
* [[RealAudio_dnet|dnet]] - AC3&lt;br /&gt;
* [[RealAudio_sipr|sipr]] - Sipro&lt;br /&gt;
* [[RealAudio_cook|cook]] - Cook&lt;br /&gt;
* [[RealAudio_atrc|atrc]] - ATRAC&lt;br /&gt;
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format&lt;br /&gt;
* [[RealAudio_raac|raac]] - LC-AAC&lt;br /&gt;
* [[RealAudio_racp|racp]] - HE-AAC&lt;br /&gt;
&lt;br /&gt;
===== Video =====&lt;br /&gt;
&lt;br /&gt;
* [[RealVideo|rv10]] - H.263&lt;br /&gt;
* [[RealVideo|rv13]] - H.263&lt;br /&gt;
* [[RealVideo|rv20]] - H.263+&lt;br /&gt;
* [[RealVideo|rv30]] - Unknown format&lt;br /&gt;
* [[RealVideo|rv40]] - Unknown format&lt;br /&gt;
&lt;br /&gt;
[[Category: Container Formats]]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Talk:RealMedia&amp;diff=2413</id>
		<title>Talk:RealMedia</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Talk:RealMedia&amp;diff=2413"/>
		<updated>2006-02-25T13:31:31Z</updated>

		<summary type="html">&lt;p&gt;Roberto: add signature&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Part of the .ra headers can be used in RM files for audio codec description (some new codecs like ralf, or even mp3 in rm, uses their own mimetype != realaudio so they have no .ra header).&lt;br /&gt;
&lt;br /&gt;
I'll extract the common part or .ra when i'll rite thr RM audio part, and then i'll also version 5 details (mostly are unknown ignored bytes)&lt;br /&gt;
--[[User:Roberto|rxt]] 08:31, 25 February 2006 (EST)&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Talk:RealMedia&amp;diff=2405</id>
		<title>Talk:RealMedia</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Talk:RealMedia&amp;diff=2405"/>
		<updated>2006-02-25T00:15:38Z</updated>

		<summary type="html">&lt;p&gt;Roberto: random notes for myself, let's check how discussion tab works :)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Part of the .ra headers can be used in RM files for audio codec description (some new codecs like ralf, or even mp3 in rm, uses their own mimetype != realaudio so they have no .ra header).&lt;br /&gt;
&lt;br /&gt;
I'll extract the common part or .ra when i'll rite thr RM audio part, and then i'll also version 5 details (mostly are unknown ignored bytes)&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=RealMedia&amp;diff=2404</id>
		<title>RealMedia</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=RealMedia&amp;diff=2404"/>
		<updated>2006-02-25T00:09:23Z</updated>

		<summary type="html">&lt;p&gt;Roberto: Extended and clarified&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: rm, ra&lt;br /&gt;
* Company: [[Real]]&lt;br /&gt;
&lt;br /&gt;
Multimedia container format developed by [[Real]] and used almost exclusively for codecs developed by Real.&lt;br /&gt;
&lt;br /&gt;
The old .ra files are just for audio.  The newer RealMedia (.rm) files are for audio and video.&lt;br /&gt;
&lt;br /&gt;
== RA Format ==&lt;br /&gt;
&lt;br /&gt;
This is the old audio-only RealAudio file format.&lt;br /&gt;
A very similar structure is also used to descibe audio streams in RM files.&lt;br /&gt;
&lt;br /&gt;
=== RealAudio 1.0 file  (.ra version 3) ===&lt;br /&gt;
&lt;br /&gt;
This is from the very first version of RealAudio (1994).  These files can only contain [[RealAudio 14.4|8kbps VSELP]] audio data.  A FourCC (lpcJ) may be present, but it is ignored.&lt;br /&gt;
&lt;br /&gt;
 byte[4]  Header signature ('.', 'r', 'a', 0xfd)&lt;br /&gt;
 word     Version (always 3)&lt;br /&gt;
 word     Header size - 7&lt;br /&gt;
 byte[10] Unknown&lt;br /&gt;
 dword    Data size&lt;br /&gt;
 byte     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 byte     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 byte     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 byte     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
 byte     Unknown *&lt;br /&gt;
 byte     Fourcc string length (always 4) *&lt;br /&gt;
 byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *&lt;br /&gt;
  Audio data&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
*fields marked with * may be missing. Based on the only known sample with no fourcc, it's assumed that all these fields are either present or missing.&lt;br /&gt;
* the informative fields (title, author, copyright and comment) can have zero length.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== RealAudio 2.0 file (.ra version 4) ===&lt;br /&gt;
&lt;br /&gt;
This is second version of the RealAudio file format.  It is distinguished from the above by the value in byte 5 (=0x04).  This type of file must contain a valid FourCC to identify the audio codec.&lt;br /&gt;
&lt;br /&gt;
Possible fourcc values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].&lt;br /&gt;
&lt;br /&gt;
 byte[4]  Header signature ('.', 'r', 'a', 0xfd)&lt;br /&gt;
 word     Version (always 4)&lt;br /&gt;
 word     Unused (always 0)&lt;br /&gt;
 byte[4]  ra4 signature (always &amp;quot;.ra4&amp;quot;)&lt;br /&gt;
 dword    Data size - 0x27&lt;br /&gt;
 word     Version2 (always equal to version)&lt;br /&gt;
 dword    Header size - 16&lt;br /&gt;
 word     Codec flavor&lt;br /&gt;
 dword    Coded Frame Size&lt;br /&gt;
 byte[12] Unknown&lt;br /&gt;
 word     Sub packet h&lt;br /&gt;
 word     Frame Size&lt;br /&gt;
 word     Sub Packet Size&lt;br /&gt;
 word     Unknown&lt;br /&gt;
 word     Sample rate&lt;br /&gt;
 word     Unknown&lt;br /&gt;
 word     Sample size&lt;br /&gt;
 word     Channels&lt;br /&gt;
 byte     genr string length (always 4)&lt;br /&gt;
 byte[]   genr string&lt;br /&gt;
 byte     Fourcc string length (always 4)&lt;br /&gt;
 byte[]   Fourcc string&lt;br /&gt;
 byte[3]  Unknown&lt;br /&gt;
 byte     Title string length&lt;br /&gt;
 byte[]   Title string&lt;br /&gt;
 byte     Author string length&lt;br /&gt;
 byte[]   Author string&lt;br /&gt;
 byte     Copyright string length&lt;br /&gt;
 byte[]   Copyright string&lt;br /&gt;
 byte     Comment string length&lt;br /&gt;
 byte[]   Comment string&lt;br /&gt;
  Audio Data&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* the 0x27 in data size is the size of the fixed-length part of the header (up to channels).&lt;br /&gt;
* the informative fields (title, author, copyright and comment) can have zero length.&lt;br /&gt;
&lt;br /&gt;
=== .ra version 5 ===&lt;br /&gt;
&lt;br /&gt;
While .ra header can have version 5, there are no known RealAudio files with this format, and it's not known if they really exist.&lt;br /&gt;
&lt;br /&gt;
== RealMedia Format ==&lt;br /&gt;
&lt;br /&gt;
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big endian format.&lt;br /&gt;
&lt;br /&gt;
A RealMedia file consists of a series of chunks. Each chunk has the following format:&lt;br /&gt;
&lt;br /&gt;
 bytes 0-3    chunk type ([[FOURCC]])&lt;br /&gt;
 bytes 4-7    chunk size, including 8-byte preamble&lt;br /&gt;
 bytes n..    chunk payload&lt;br /&gt;
&lt;br /&gt;
Real chunk types:&lt;br /&gt;
* .RMF: RealMedia file header&lt;br /&gt;
* PROP: File properties&lt;br /&gt;
* MDPR: Stream properties&lt;br /&gt;
* CONT: Content description/metadata&lt;br /&gt;
* DATA: File data&lt;br /&gt;
* INDX: File index&lt;br /&gt;
* '.','r','a',0xFD: Legacy RealAudio encapsulation&lt;br /&gt;
* VIDO&lt;br /&gt;
&lt;br /&gt;
== Codecs ==&lt;br /&gt;
&lt;br /&gt;
Codecs in RealMedia are identified by the following four character codes:&lt;br /&gt;
&lt;br /&gt;
===== Audio =====&lt;br /&gt;
&lt;br /&gt;
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)&lt;br /&gt;
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)&lt;br /&gt;
* [[RealAudio_dnet|dnet]] - AC3&lt;br /&gt;
* [[RealAudio_sipr|sipr]] - Sipro&lt;br /&gt;
* [[RealAudio_cook|cook]] - Cook&lt;br /&gt;
* [[RealAudio_atrc|atrc]] - ATRAC&lt;br /&gt;
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format&lt;br /&gt;
* [[RealAudio_raac|raac]] - LC-AAC&lt;br /&gt;
* [[RealAudio_racp|racp]] - HE-AAC&lt;br /&gt;
&lt;br /&gt;
===== Video =====&lt;br /&gt;
&lt;br /&gt;
* rv10 - H.263&lt;br /&gt;
* rv13 - H.263&lt;br /&gt;
* rv20 - H.263+&lt;br /&gt;
* rv30 - Unknown format&lt;br /&gt;
* rv40 - Unknown format&lt;br /&gt;
&lt;br /&gt;
[[Category: Container Formats]]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Flic_Video&amp;diff=2402</id>
		<title>Flic Video</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Flic_Video&amp;diff=2402"/>
		<updated>2006-02-24T20:13:32Z</updated>

		<summary type="html">&lt;p&gt;Roberto: Video only note&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the original format used by [[Autodesk]] Animator.&lt;br /&gt;
&lt;br /&gt;
You can find a complete description of the fli/flc format (both container and video codec) here [http://www.compuphase.com/flic.htm http://www.compuphase.com/flic.htm].&lt;br /&gt;
&lt;br /&gt;
==Video Codec==&lt;br /&gt;
* FOURCC (unofficial): FLIC&lt;br /&gt;
* Frame type: IP (conditional replenishment)&lt;br /&gt;
* Company: [[Autodesk]]&lt;br /&gt;
&lt;br /&gt;
The codec uses RGB colorspace: paletted RGB8, RGB15, RGB16, RGB24.&amp;lt;br&amp;gt;RGB8 is tightly coupled with the VGA mode 0x13.&lt;br /&gt;
&lt;br /&gt;
Compression methods are RLE-based.&lt;br /&gt;
&lt;br /&gt;
==Container==&lt;br /&gt;
There are many variations of flic container, the most common are the original FLI from Autodesk Animator and the extended FLC from Autodesk Animator Pro.&lt;br /&gt;
&lt;br /&gt;
Flic files are video-only.&lt;br /&gt;
&lt;br /&gt;
The file format is chunk-based.&lt;br /&gt;
&lt;br /&gt;
[[Category:Video Codecs]]&lt;br /&gt;
[[Category:Container Formats]]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Flic_Video&amp;diff=2401</id>
		<title>Flic Video</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Flic_Video&amp;diff=2401"/>
		<updated>2006-02-24T20:12:26Z</updated>

		<summary type="html">&lt;p&gt;Roberto: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the original format used by [[Autodesk]] Animator.&lt;br /&gt;
&lt;br /&gt;
You can find a complete description of the fli/flc format (both container and video codec) here [http://www.compuphase.com/flic.htm http://www.compuphase.com/flic.htm].&lt;br /&gt;
&lt;br /&gt;
==Video Codec==&lt;br /&gt;
* FOURCC (unofficial): FLIC&lt;br /&gt;
* Frame type: IP (conditional replenishment)&lt;br /&gt;
* Company: [[Autodesk]]&lt;br /&gt;
&lt;br /&gt;
The codec uses RGB colorspace: paletted RGB8, RGB15, RGB16, RGB24.&amp;lt;br&amp;gt;RGB8 is tightly coupled with the VGA mode 0x13.&lt;br /&gt;
&lt;br /&gt;
Compression methods are RLE-based.&lt;br /&gt;
&lt;br /&gt;
==Container==&lt;br /&gt;
There are many variations of flic container, the most common are the original FLI from Autodesk Animator and the extended FLC from Autodesk Animator Pro.&lt;br /&gt;
&lt;br /&gt;
The file format is chunk-based.&lt;br /&gt;
&lt;br /&gt;
[[Category:Video Codecs]]&lt;br /&gt;
[[Category:Container Formats]]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Pegasus_Lossless_JPEG&amp;diff=2333</id>
		<title>Pegasus Lossless JPEG</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Pegasus_Lossless_JPEG&amp;diff=2333"/>
		<updated>2006-02-19T13:19:04Z</updated>

		<summary type="html">&lt;p&gt;Roberto: remove from Undiscovered Video Codecs, playable by lavc&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* FOURCCs: JPGL&lt;br /&gt;
&lt;br /&gt;
[[Category:Lossless Video Codecs]]&lt;br /&gt;
[[Category:Video Codecs]]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=CorePNG&amp;diff=2313</id>
		<title>CorePNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=CorePNG&amp;diff=2313"/>
		<updated>2006-02-17T23:52:10Z</updated>

		<summary type="html">&lt;p&gt;Roberto: Add page with a short description&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* FOURCCs: PNG1&lt;br /&gt;
* Name: CorePNG&lt;br /&gt;
* Frame type: IP&lt;br /&gt;
&lt;br /&gt;
This lossless codec is based on the PNG image format.&lt;br /&gt;
Each frame can be encoded as-is (I frame), or can represent a delta from the previous frame (P frame). In both cases the data is compressed with in standard PNG format.&lt;br /&gt;
&lt;br /&gt;
The codec was originally developed to compress subtitles.&lt;br /&gt;
&lt;br /&gt;
The codec supports RGB[A] and YUV colorspaces: in RGB mode every frame is compresses as a PNG image; in YUV mode a frame is stored as 3 PNG images with order Y, U, V,&lt;br /&gt;
&lt;br /&gt;
Here you can find the [http://corecodec.org/projects/corepng CorePNG codec website]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Lossless_Codec_Libraries&amp;diff=2109</id>
		<title>Lossless Codec Libraries</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Lossless_Codec_Libraries&amp;diff=2109"/>
		<updated>2006-02-05T18:03:27Z</updated>

		<summary type="html">&lt;p&gt;Roberto: remove from &amp;quot;incomplete video codecs&amp;quot; category: codec is ok, doc only is incomplete&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This page is based on the document 'Description of the LCL codecs (MSZH and ZLIB)' by Roberto Togni found at [http://multimedia.cx/lcl.txt http://multimedia.cx/lcl.txt].''&lt;br /&gt;
&lt;br /&gt;
* FOURCCs: MSZH and ZLIB&lt;br /&gt;
* Frame type: intra only&lt;br /&gt;
&lt;br /&gt;
These two codecs, used in [[Microsoft Audio/Video Interleaved|AVI]] files, were created by Kenji Oshima to compress digital animation. MSZH is based on a simple proprietary compressor while ZLIB uses deflate method found in the [http://www.zlib.org zlib library] to compress frames.&lt;br /&gt;
&lt;br /&gt;
This description is based on LCL Ver 2.23 dated 2000.09.20. &lt;br /&gt;
&lt;br /&gt;
== Basic Description ==&lt;br /&gt;
&lt;br /&gt;
The codec converts original RGB24 image data to a target colorspace and compresses it with a selected algorithm. The codec can also remove unchanged frames and replace them with null frames, and can filter image data before compression. The only difference between avimszh and avizlib is in the stream compressor. PNG filtering is available only in avizlib. Except for null frames, there is no temporal compression, and all frames can be decoded independently from the others. Each AVI chunk contains one frame. In case of multithreaded mode the two sections are stored into the same chunk.&lt;br /&gt;
&lt;br /&gt;
== File Header ==&lt;br /&gt;
&lt;br /&gt;
Codec information is stored at the end of [[BITMAPINFOHEADER]] structure into AVI header. This structure is 8 bytes longer than the standard structure.&lt;br /&gt;
&lt;br /&gt;
 struct {&lt;br /&gt;
   standard BITMAPINFOHEADER fields&lt;br /&gt;
 &lt;br /&gt;
   unsigned char unknown[4];&lt;br /&gt;
   unsigned char imagetype;&lt;br /&gt;
   unsigned char compression;&lt;br /&gt;
   unsigned char flags;&lt;br /&gt;
   unsigned char codec;&lt;br /&gt;
 } BITMAPINFOHEADER_extended&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* unknown:&lt;br /&gt;
 always [4, 0, 0, 0]&lt;br /&gt;
&lt;br /&gt;
* codec:&lt;br /&gt;
 1 mszh&lt;br /&gt;
 3 zlib&lt;br /&gt;
&lt;br /&gt;
* imagetype:&lt;br /&gt;
 0 [[YUV 1:1:1]]&lt;br /&gt;
 1 [[YUV 4:2:2]]&lt;br /&gt;
 2 [[RGB24]]&lt;br /&gt;
 3 [[YUV 4:1:1]]&lt;br /&gt;
 4 [[YUV 2:1:1]]&lt;br /&gt;
 5 [[YUV 4:2:0]]&lt;br /&gt;
&lt;br /&gt;
* compression:&lt;br /&gt;
 0 mszh: compression&lt;br /&gt;
 1 mszh: no compression, zlib: hispeed compression&lt;br /&gt;
 9 zlib: high compression&lt;br /&gt;
 -1 zlib: normal compression (zlib standard level)&lt;br /&gt;
&lt;br /&gt;
* flags:&lt;br /&gt;
 bit 0: multithread used&lt;br /&gt;
 bit 1: nullframe insertion used&lt;br /&gt;
 bit 3: png fileter used (zlib only)&lt;br /&gt;
&lt;br /&gt;
== Image Types ==&lt;br /&gt;
&lt;br /&gt;
'''(TODO: These should probably be moved to their own pages)'''&lt;br /&gt;
&lt;br /&gt;
=== RGB24 ===&lt;br /&gt;
&lt;br /&gt;
This colorspace is laid out as standard Blue-Green-Red order color data, totaling 3 bytes per pixel.&lt;br /&gt;
&lt;br /&gt;
=== YUV ===&lt;br /&gt;
&lt;br /&gt;
YUV formats can be converted to RGB using the following equations:&lt;br /&gt;
    R = Y + 1.403V'&lt;br /&gt;
    G = Y - 0.344U' - 0.714V'&lt;br /&gt;
    B = Y + 1.770U'&lt;br /&gt;
or, in a programmer-friendly form (integer math)&lt;br /&gt;
    b = ((y &amp;lt;&amp;lt; 20) + u * 1858076 + 0x80000) &amp;gt;&amp;gt; 20;&lt;br /&gt;
    g = ((y &amp;lt;&amp;lt; 20) - u * 360857 - v * 748830 + 0x80000) &amp;gt;&amp;gt; 20;&lt;br /&gt;
    r = ((y &amp;lt;&amp;lt; 20) + v * 1470103 + 0x80000) &amp;gt;&amp;gt; 20;&lt;br /&gt;
Values are then clamped to 0-255 range.&lt;br /&gt;
&lt;br /&gt;
Please note that these equations don't have the 128 offset value into U and V components.&lt;br /&gt;
&lt;br /&gt;
YUV structure: packed format with various subsampling factors&lt;br /&gt;
'''(TODO: add byte order and description for every YUV format)'''&lt;br /&gt;
&lt;br /&gt;
Please note that byte order is different from standard YUV formats with the same name!&lt;br /&gt;
&lt;br /&gt;
== Compression ==&lt;br /&gt;
&lt;br /&gt;
As the codec name suggests, all compressors are lossless.&lt;br /&gt;
&lt;br /&gt;
=== Zlib compression ===&lt;br /&gt;
&lt;br /&gt;
This mode uses the standard zlib deflate method. For algorithm description refer to the zlib docs. The compressor state is reset every frame (decode every frame independently). Compression codes (1, 9, -1) have the same meaning as zlib compression flags. Zlib does not require compression level at decompressor so the value is there only for informational purposes.&lt;br /&gt;
&lt;br /&gt;
=== Mszh ===&lt;br /&gt;
&lt;br /&gt;
No compression: Just does what it says, image is not compressed at all.&lt;br /&gt;
&lt;br /&gt;
Mszh compression: Works by copying blocks from already decoded data.&lt;br /&gt;
'''(TODO: add mszh decompression algorithm)'''&lt;br /&gt;
&lt;br /&gt;
== Flags ==&lt;br /&gt;
&lt;br /&gt;
=== Multithreaded ===&lt;br /&gt;
&lt;br /&gt;
The encoded image is split in two independent blocks. The decoder must decode them separately and concatenate the resulting images. &lt;br /&gt;
'''(TODO: add length and offset fields)'''&lt;br /&gt;
&lt;br /&gt;
=== Nullframe ===&lt;br /&gt;
&lt;br /&gt;
If one frame is unchanged from the previous frame, the coder replaces the new frame with a null frame.&lt;br /&gt;
&lt;br /&gt;
=== PNG Filter (zlib only) ===&lt;br /&gt;
&lt;br /&gt;
It is unclear why this is called a PNG filter since it has nothing to do with filters used in pnglib. All filters share the same structure, but the implementation depends on the colorspace. PNG filters are line-based, first pixel is stored unchanged, then other values are stored as difference from the previous ones. The filter (if any) is applied between decompression and colorspace conversion.&lt;br /&gt;
&lt;br /&gt;
'''(TODO: add structure for each pngfilter)'''&lt;br /&gt;
&lt;br /&gt;
[[Category:Video Codecs]]&lt;br /&gt;
[[Category:Lossless Video Codecs]]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=HuffYUV&amp;diff=2107</id>
		<title>HuffYUV</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=HuffYUV&amp;diff=2107"/>
		<updated>2006-02-05T18:01:17Z</updated>

		<summary type="html">&lt;p&gt;Roberto: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This page is based on the document 'Description of the HuffYUV (HFYU) Codec' by Roberto Togni found at [http://multimedia.cx/huffyuv.txt http://multimedia.cx/huffyuv.txt].''&lt;br /&gt;
&lt;br /&gt;
* FOURCC: HFYU&lt;br /&gt;
* Website: [http://neuron2.net/www.math.berkeley.edu/benrg/huffyuv.html http://neuron2.net/www.math.berkeley.edu/benrg/huffyuv.html]&lt;br /&gt;
&lt;br /&gt;
HuffYUV is a lossless video compressor for [[Microsoft Audio/Video Interleaved|AVI]] files written by Ben Rudiak-Gould. Source code is available and distributed (mostly) under the GNU General Public License. This codec was created to temporarily store video data coming from a capture card for later editing, so its main features are:&lt;br /&gt;
* speed: uses simple predictors and original version is heavily optimized.&lt;br /&gt;
* quality: lossless, so image is not degraded if read/written many times.&lt;br /&gt;
* editable: every frame is intracoded (a.k.a., a keyframe) so there are no interframe dependencies and each frame can be seeked to independently and decoded on its own.&lt;br /&gt;
&lt;br /&gt;
== Tech Notes From Author's Page (referring to v 2.1.1) ==&lt;br /&gt;
&lt;br /&gt;
HuffYUV's algorithm is roughly the same as lossless JPEG: it predicts each sample and Huffman-encodes the error. The predictor functions are:&lt;br /&gt;
* &amp;quot;left&amp;quot; (predicts the previous sample from the same channel)&lt;br /&gt;
* &amp;quot;gradient&amp;quot; (predicts Left+Above-AboveLeft)&lt;br /&gt;
* &amp;quot;median&amp;quot; (predicts the median of Left, Above, and the gradient predictor). Channels are compressed separately, but in RGB mode the channels used are actually R-G, G, and B-G. This yields much better compression than R, G, B.&lt;br /&gt;
&lt;br /&gt;
The error signal in each channel is encoded with its own Huffman table. On compression HuffYUV picks appropriate tables from its built-in collection. These tables are then stored in the output file and used when decompressing. This way future versions of HuffYUV can decompress old files without my having to explicitly support old tables. A Huffyuv-savvy application can also specify the Huffman tables to be used for compression instead of accepting the defaults.&lt;br /&gt;
&lt;br /&gt;
== File Header ==&lt;br /&gt;
&lt;br /&gt;
All information about the image format and predictor are stored into the [[BITMAPINFOHEADER]] structure of the AVI file header.&lt;br /&gt;
&lt;br /&gt;
=== BITMAPINFOHEADER Layout ===&lt;br /&gt;
&lt;br /&gt;
Only the interesting fields are shown here:&lt;br /&gt;
&lt;br /&gt;
 HUFFYUV_BITMAPINFOHEADER {&lt;br /&gt;
  int biSize&lt;br /&gt;
  [...]&lt;br /&gt;
  short biBitCount&lt;br /&gt;
  int biCompression&lt;br /&gt;
  [...]&lt;br /&gt;
  Extradata {&lt;br /&gt;
   BYTE method&lt;br /&gt;
   BYTE bpp_override&lt;br /&gt;
   BYTE unused[2]  &lt;br /&gt;
  }&lt;br /&gt;
  BYTE Compressed_Huffmantables[]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Extradata and Compressed_Huffmantables fields are not always there.&lt;br /&gt;
&lt;br /&gt;
biCompression contains &amp;quot;HFYU&amp;quot; FOURCC.&lt;br /&gt;
&lt;br /&gt;
biSize is the size of the whole structure and it is used to find out if extra fields are there, since size of standard BITMAPINFOHEADER is known.&lt;br /&gt;
&lt;br /&gt;
To find out image format you need to get true bit count: it is stored in bpp_override if biSize &amp;gt; sizeof(BITMAPINFOHEADER), else (or if bpp_override is 0) it is stored in biBitCount. Then you can retrieve the image format with this table&lt;br /&gt;
&lt;br /&gt;
 +-----+-------+&lt;br /&gt;
 | bit | image |&lt;br /&gt;
 +-----+-------+&lt;br /&gt;
 | 16  | YUY2  |&lt;br /&gt;
 | 24  | RGB   |&lt;br /&gt;
 | 32  | RGBA  |&lt;br /&gt;
 +-----+-------+&lt;br /&gt;
&lt;br /&gt;
In the rest of this description YUV will indicate image of type [[YUY2]], and RGB will be used for both RGB and RGBA.&lt;br /&gt;
&lt;br /&gt;
To find out the prediction method you have to mask the 3 least significant bits of biBitCount (biBitCount &amp;amp; 0x07) and use them to index into this table:&lt;br /&gt;
&lt;br /&gt;
 +-----+-------------+&lt;br /&gt;
 | bit |   method    |&lt;br /&gt;
 +-----+-------------+&lt;br /&gt;
 | 000 | see below   |&lt;br /&gt;
 | 001 | left        |&lt;br /&gt;
 | 010 | left decorr |&lt;br /&gt;
 | 011 | gradient *  |&lt;br /&gt;
 | 100 | median      |&lt;br /&gt;
 +-----+-------------+&lt;br /&gt;
&lt;br /&gt;
If the gradient method is selected (011) and the colorspace is RGB, the method is actually gradient with decorrelation.&lt;br /&gt;
&lt;br /&gt;
If (biBitCount &amp;amp; 0x07) is 0, method is stored in extradata if biSize &amp;gt; sizeof(BITMAPINFOHEADER), else method is predict_old (the method used in version 1.x, it's the same as predict left). To find out method from extradata method byte use this table&lt;br /&gt;
&lt;br /&gt;
 +------+-----------------+&lt;br /&gt;
 | byte |   method        |&lt;br /&gt;
 +------+-----------------+&lt;br /&gt;
 |  -2  | old             |&lt;br /&gt;
 |   0  | left            |&lt;br /&gt;
 |   1  | gradient        |&lt;br /&gt;
 |   2  | median          |&lt;br /&gt;
 |  64  | left decorr     |&lt;br /&gt;
 |  65  | gradient decorr |&lt;br /&gt;
 +------+-----------------+&lt;br /&gt;
&lt;br /&gt;
Huffman tables may be stored in the file (v2.x) or not (v1.x). If biSize = sizeof(BITMAPINFOHEADER) tables are not stored into file, and to decode data the decoder must know classic tables, choosing &lt;br /&gt;
RGB or YUV as appropriate. Otherwise, tables are stored in file: if (biBitCount &amp;amp; 0x07) = 0 tables start at the end of BITMAPINFOHEADER, else they start after Extradata.&lt;br /&gt;
&lt;br /&gt;
== Huffman Tables ==&lt;br /&gt;
&lt;br /&gt;
Huffman tables are stored in file compressed with a run-length algorithm. This is what Ben Rudiak-Gould says about it in source code (tables.cpp)&lt;br /&gt;
&lt;br /&gt;
 // The Huffman tables are run-length encoded.  (I could have Huffman-&lt;br /&gt;
 // encoded them, but the madness has to end somewhere.)  The&lt;br /&gt;
 // decompression algorithm is as follows: Read a byte.  The lower five&lt;br /&gt;
 // bits are the value to repeat.  If the upper three bits are zero, the&lt;br /&gt;
 // repeat count is in the next byte; otherwise, the upper three bits are&lt;br /&gt;
 // the repeat count.  The tables are zero-terminated so that I can use&lt;br /&gt;
 // string functions on them (a zero byte can never appear in the RLE&lt;br /&gt;
 // data).&lt;br /&gt;
 &lt;br /&gt;
 // Each array actually contains three Huffman tables, one for each sample&lt;br /&gt;
 // type (e.g. Y,U,V, or R-G,G,B-G).  Each table expands to 256 bytes, and&lt;br /&gt;
 // each byte is a code length.  The codes themselves are determined at&lt;br /&gt;
 // run time and are not stored here--except for the &amp;quot;classic&amp;quot; tables,&lt;br /&gt;
 // which don't fit the code-choosing algorithm.&lt;br /&gt;
&lt;br /&gt;
When the 3 tables are available (either extracted and decompressed, or known because the file was compressed with v1.x of the codec) the decoder can extract data from the encoded byte stream.&lt;br /&gt;
&lt;br /&gt;
Tables are stored in file in this order:&lt;br /&gt;
* YUV: Y_table, U_table, V_table&lt;br /&gt;
* RGB: B_table, G_table, R_table&lt;br /&gt;
* RGB with decorrelation: B-G_table, G_table, R-G_table&lt;br /&gt;
&lt;br /&gt;
== Frame decompression ==&lt;br /&gt;
&lt;br /&gt;
=== General info ===&lt;br /&gt;
&lt;br /&gt;
One frame is stored per AVI chunk. All frames in file are marked as keyframes. You only need data from current chunk and file header to decompress a frame (no knowledge of previous frames or frame position in file is needed).&lt;br /&gt;
&lt;br /&gt;
=== Operating Algorithm ===&lt;br /&gt;
&lt;br /&gt;
The HuffYUV codec compresses an image by predicting the value of a pixel from its neighbors, and computes an error value (delta) by subtracting it from the effective pixel value. The result of this operation is then compressed with a Huffman algorithm, using a different table for each channel. To decompress a frame the decoder needs to reverse this process: extract the error value from the compressed Huffman stream, then reconstruct the pixel value by computing the predictor value and adding it to the error value. To make this process possible you need a start value (the first pixel in a frame) and a predictor that uses only values from past pixels (already decompressed). Obviously, all predictors used in HuffYUV satisfy this requirement.&lt;br /&gt;
&lt;br /&gt;
All pixel component values must be treated as unsigned bytes. In all computations overflow or underflow causes a wrap-around (i.e., no saturation).&lt;br /&gt;
&lt;br /&gt;
If decorrelation is used (RGB only), then instead of compressing R, G, B components the codec compresses R-G, G, B-G usually resulting in better compression. To reconstruct B and R values you have to add them the value of G taken from the same pixel.&lt;br /&gt;
&lt;br /&gt;
=== Bitstream ===&lt;br /&gt;
&lt;br /&gt;
The components of the image are compressed with different Huffman tables and then the bitstreams are interleaved.&lt;br /&gt;
&lt;br /&gt;
As an example suppose there are 3 components (the values represent the difference between the pixel value and the predictor output). The byte sequence [ABC][DEF][GHI][LMN] is compressed in this way:&lt;br /&gt;
* Compress each byte of the first triplet [ABC] using the Huffan table associated with its component. The decoder will output 3 variable length codes. Suppose you get aaaa by compression of A, bbbbbbb from B and ccc from C. The output bitstream will be aaaabbbbbbccc.&lt;br /&gt;
* Repeat the process for every triplet, adding the new bits at the end of the stream. If compression of [DEF] will give dddd eee fffff, the output stream after second pixel will be aaaabbbbbbcccddddeeefffff.&lt;br /&gt;
&lt;br /&gt;
To decompress this sequence, keep extracting bits from the stream until you get a valid code (the table contains all valid codes), and then you decode it using the table associated with that component. In the example above you will get the 4 bit aaaa and decode them to A. After decoding the current component you need to remove decoded bits from the stream (the bitstream now contains bbbbbbcccddddeeefffff), and start decoding the next component. When the first triplet [ABC] is decoded the stream will be ddddeeefffff, and the decoder is ready to start again with the first component of the next pixel.&lt;br /&gt;
&lt;br /&gt;
=== Data order ===&lt;br /&gt;
&lt;br /&gt;
This is how data is stored in then encoded stream. The meaning of the stream format line is: &lt;br /&gt;
* a capital letter is used to indicate an uncompressed value 1 byte long&lt;br /&gt;
* small letters represent Huffman-coded values &lt;br /&gt;
The length in bits of Huffman-coded values depend on the size of the code word (after decompression all delta values are 1byte long).&lt;br /&gt;
&lt;br /&gt;
==== YUV Data ====&lt;br /&gt;
Image data is encoded and decoded left to right, top to bottom. Each pixel pair is represented by 4 bytes using YUY2 format. Frame width is always even.&lt;br /&gt;
 Stream format: Y U Y V y u y v y u y v ....&lt;br /&gt;
where YUYV are the first two pixels, and y, u, v are the error values. y is decompressed with Y_table, u with U_table and v with V_table.&lt;br /&gt;
&lt;br /&gt;
==== RGB Data ====&lt;br /&gt;
Image is stored left to right, bottom to top. Each pixel is represented by 3 bytes, using BGR24 format. &lt;br /&gt;
 Stream format: X B G R b g r b g r ....&lt;br /&gt;
where X is unused, BGR is the first pixel, and b, g, r are the error values. b is decompressed with B_table, g with G_table and r with R_table.&lt;br /&gt;
&lt;br /&gt;
==== RGB Data With Decorrelation ====&lt;br /&gt;
Image is stored left to right, bottom to top. Each pixel is represented by 3 bytes, using BGR24 format.&lt;br /&gt;
 Stream format: X B G R g bg rg g bg rg ....&lt;br /&gt;
where X is unused, BGR is the first pixel, and g, bg, rg are the error values. g is decompressed with G_table, bg with B-G_table and rg with R-G_table.&lt;br /&gt;
&lt;br /&gt;
==== RGBA Data ====&lt;br /&gt;
Image is stored left to right, bottom to top. Each pixel is represented by 4 bytes, using BGR24 format plus alpha channel.&lt;br /&gt;
 Stream format: B G R A b g r a b g r a ....&lt;br /&gt;
where BGRA is the first pixel, and b, g, r, a are the error values. b is decompressed with B_table, g with G_table, r with R_table and a with R_table.&lt;br /&gt;
&lt;br /&gt;
==== RGBA Data With Decorrelation ====&lt;br /&gt;
Image is stored left to right, bottom to top. Each pixel is represented by 4 bytes, using BGR24 format plus alpha channel.&lt;br /&gt;
 Stream format: B G R A g bg rg a g bg rg a ....&lt;br /&gt;
where BGRA is the first pixel, and g, bg, rg, a are the error values. g is decompressed with G_table, bg with B-G_table, br with R-G_table and a with R-G_table.&lt;br /&gt;
&lt;br /&gt;
== Predictors ==&lt;br /&gt;
&lt;br /&gt;
Predictors are used to guess the value of the next pixel so that the codec needs to store only the error between the real pixel value and the prediction. If the prediction model is good the error will be small, and will compress better than full pixel values.&lt;br /&gt;
&lt;br /&gt;
Valid predictors are:&lt;br /&gt;
* YUV: old, left, gradient, median.&lt;br /&gt;
* RGB: old, left, left with decorrelation, gradient with decorrelation.&lt;br /&gt;
&lt;br /&gt;
Other combinations (e.g. RGB gradient without decorrelation), while technically feasible, are not used.&lt;br /&gt;
&lt;br /&gt;
While describing predictors, the following symbols are used:&lt;br /&gt;
* [A B C]: components of a pixel&lt;br /&gt;
* Ayz: component A of pixel at row y and column z&lt;br /&gt;
* a, b, c: indices used for columns&lt;br /&gt;
* n, m: indices used for rows&lt;br /&gt;
* x: index used to indicate the last column of a frame&lt;br /&gt;
&lt;br /&gt;
=== Predict Left, Predict Left With Decorrelation, And Predict Old ===&lt;br /&gt;
&lt;br /&gt;
Predict old is the same as predict left (without decorrelation for RGB case).&lt;br /&gt;
&lt;br /&gt;
The predictor for a pixel component is the same component from previous pixel (previous pair for U, V in YUV case).&lt;br /&gt;
&lt;br /&gt;
Some examples:&lt;br /&gt;
* random pixel inside a row, RGB&lt;br /&gt;
  ...... [Ban Gan Ran] [Bam Gam Ram] ......&lt;br /&gt;
The predictor for Gam is Gan&lt;br /&gt;
&lt;br /&gt;
* random pixel inside a row, YUV&lt;br /&gt;
  .......[Y1an Uan Y2an Van] [Y1am Uam Y2am Vam] .......&lt;br /&gt;
The predictor for Uam is Uan, for Y1am is Y2an, for Y2am is Y1am&lt;br /&gt;
&lt;br /&gt;
*first pixel in a row (not for first row), RGB&lt;br /&gt;
 [Ba1 Ga1 Ra1] ........ [Bax Gax Rax]&lt;br /&gt;
 [Bb1 Gb1 Rb1] ......&lt;br /&gt;
The predictor for Rb1 is Rax&lt;br /&gt;
&lt;br /&gt;
*first pixel in a row (not for first row), YUV&lt;br /&gt;
 [Y1a1 Ua1 Y2a1 Va1] ........ [Y1ax Uax Y2ax Vax]&lt;br /&gt;
 [Y1b1 Ub1 Y2b1 Vb1] ......&lt;br /&gt;
The predictor for Ub1 is Uax, for Y2b1 is Y1b1, for Y1b1 is Y2ax&lt;br /&gt;
&lt;br /&gt;
The first pixel of the picture is stored uncompressed, the rest of the frame is compressed with the predict left algorithm.&lt;br /&gt;
&lt;br /&gt;
=== Predict gradient and predict gradient with decorrelation ===&lt;br /&gt;
&lt;br /&gt;
The predictor for a pixel is given by the sum of the previous pixel (like predict left) and the above pixel (the pixel from the row above at the same column), minus the above left pixel (the pixel from the row above at the previous column).&lt;br /&gt;
&lt;br /&gt;
Some examples:&lt;br /&gt;
* random pixel inside a row, RGB&lt;br /&gt;
  ...... [Ban Gan Ran] [Bam Gam Ram] ......&lt;br /&gt;
  .......[Bbn Gbn Rbn] [Bbm Gbm Rbm]&lt;br /&gt;
The predictor for Gbm is (Gbn + Gam - Gan)&lt;br /&gt;
&lt;br /&gt;
* random pixel inside a row, YUV&lt;br /&gt;
  .......[Y1an Uan Y2an Van] [Y1am Uam Y2am Vam] .......&lt;br /&gt;
  .......[Y1bn Ubn Y2bn Vbn] [Y1bm Ubm Y2bm Vbm] .......&lt;br /&gt;
** The predictor for Ubm is (Ubn + Uam - Uan)&lt;br /&gt;
** The predictor for Y1bm is (Y2bn + Y1am - Y2an)&lt;br /&gt;
** The predictor for Y2bm is (Y1bm + Y2am - Y1am)&lt;br /&gt;
&lt;br /&gt;
* first pixel in a row (not for first row), RGB&lt;br /&gt;
 [Ba1 Ga1 R11] ........ [Bax Gax Rax]&lt;br /&gt;
 [Bb1 Gb1 Rb1] ........ [Bbx Gbx Rbx]&lt;br /&gt;
 [Bc1 Gc1 Rc1] ......&lt;br /&gt;
** The predictor for Rc1 is (Rbx + Rb1 - Rax)&lt;br /&gt;
&lt;br /&gt;
* first pixel in a row (not for first row), YUV&lt;br /&gt;
 [Y1a1 Ua1 Y2a1 Va1] ........ [Y1ax Uax Y2ax Vax]&lt;br /&gt;
 [Y1b1 Ub1 Y2b1 Vb1] ........ [Y1bx Ubx Y2bx Vbx]&lt;br /&gt;
 [Y1c1 Uc1 Y2c1 Vc1] ......&lt;br /&gt;
** The predictor for Uc1 is (Ubx + Ub1 - Uax)&lt;br /&gt;
** The predictor for Y2c1 is (Y1c1 + Y2b1 - Y1b1)&lt;br /&gt;
** The predictor for Y1c1 is (Y2bx + Y1b1 - Y2ax)&lt;br /&gt;
&lt;br /&gt;
The first pixel of the picture is stored uncompressed, and the remainder of the first row is compressed with the predict left algorithm. Other rows are compressed with predict gradient. The above left value for the first pixel of the second row is 0.&lt;br /&gt;
&lt;br /&gt;
Maybe other pixels of the second row should ignore above left values, but I'm not sure about it.&lt;br /&gt;
&lt;br /&gt;
=== Predict Median (YUV only) ===&lt;br /&gt;
&lt;br /&gt;
The predictor for a pixel is given by the median value among the left pixel, the pixel above and the gradient predictor (sum of the previous pixel and the above pixel, minus the above left pixel). The median is obtained by sorting the three values and taking the one in the middle, and have nothing to do &lt;br /&gt;
with the mean value of the three numbers. For example, if the left pixel is 0x12, the above pixel is 0x4e and the gradient predictor is 0xaf, the median is 0x4e.&lt;br /&gt;
&lt;br /&gt;
As Ben Rudiak-Gould says on his page, there is no technical reason for this method to be YUV only, he simply didn't implement it for RGB case.&lt;br /&gt;
&lt;br /&gt;
Some examples:&lt;br /&gt;
* random pixel inside a row, YUV&lt;br /&gt;
  .......[Y1an Uan Y2an Van] [Y1am Uam Y2am Vam] .......&lt;br /&gt;
  .......[Y1bn Ubn Y2bn Vbn] [Y1bm Ubm Y2bm Vbm] .......&lt;br /&gt;
** The predictor for Ubm is the median value of Ubn, Uam and (Ubn + Uam - Uan)&lt;br /&gt;
** The predictor for Y1bm is the median value of Y2bn, Y1am and (Y2bn + Y1am - Y2an)&lt;br /&gt;
** The predictor for Y2bm is the median value of Y1bm, Y2am and (Y1bm + Y2am - Y1am)&lt;br /&gt;
&lt;br /&gt;
* first pixel in a row (not for first row), YUV&lt;br /&gt;
 [Y1a1 Ua1 Y2a1 Va1] ........ [Y1ax Uax Y2ax Vax]&lt;br /&gt;
 [Y1b1 Ub1 Y2b1 Vb1] ........ [Y1bx Ubx Y2bx Vbx]&lt;br /&gt;
 [Y1c1 Uc1 Y2c1 Vc1] ......&lt;br /&gt;
** The predictor for Uc1 is the median value of Ubx, Ub1 and (Ubx + Ub1 - Uax)&lt;br /&gt;
** The predictor for Y2c1 is the median value of Y1c1, Y2b1 and (Y1c1 + Y2b1 - Y1b1)&lt;br /&gt;
** The predictor for Y1c1 is the median value of Y2bx, Y1b1 and (Y2bx + Y1b1 - Y2ax)&lt;br /&gt;
&lt;br /&gt;
The first pixel of the picture is stored uncompressed. The remaining of the first row, and the first 4 pixel (2 pairs, 8 bytes) of the second row are compressed with the predict left algorithm. The rest of the second row and other rows are compressed with predict median.&lt;br /&gt;
&lt;br /&gt;
Technically the second pixel of the second row could be compressed using median predictor; it's compressed with left predictor because original code uses MMX instructions and can handle 8 bytes a time.&lt;br /&gt;
&lt;br /&gt;
== Interlaced images ==&lt;br /&gt;
&lt;br /&gt;
If image height is greater than 288 pixel, the image is treated as interlaced. The decoder must build an image with double width and half height, obtained by placing the two fields side by side, with the odd field on the left. The frame size reported in the file header is unchanged, the only way to find out interlacing is by comparing the image height with 288.&lt;br /&gt;
&lt;br /&gt;
As an example, suppose your original frame is&lt;br /&gt;
&lt;br /&gt;
 1111111111111111&lt;br /&gt;
 2222222222222222&lt;br /&gt;
 3333333333333333&lt;br /&gt;
 4444444444444444&lt;br /&gt;
 5555555555555555&lt;br /&gt;
 6666666666666666&lt;br /&gt;
 7777777777777777&lt;br /&gt;
 8888888888888888&lt;br /&gt;
&lt;br /&gt;
then the frame to be compressed will be&lt;br /&gt;
&lt;br /&gt;
 11111111111111112222222222222222&lt;br /&gt;
 33333333333333334444444444444444&lt;br /&gt;
 55555555555555556666666666666666&lt;br /&gt;
 77777777777777778888888888888888&lt;br /&gt;
&lt;br /&gt;
In this way every line on a field gets the values for the predictors from the previous line of the same field, instead of using the previous line of the frame.&lt;br /&gt;
&lt;br /&gt;
Please note that it makes a difference only for prediction methods that use values from the previous line (median and gradient algorithms): if a method refers only to the value of the previous pixel (left algorithms) interlacing can be ignored.&lt;br /&gt;
&lt;br /&gt;
== Final notes ==&lt;br /&gt;
&lt;br /&gt;
The frame width must be divisible by 4 (at least for the original codec).&lt;br /&gt;
&lt;br /&gt;
It is likely that the header parsing logic can be simplified a lot since not every combination of options is valid. This is what I was able to create using dll v2.1.1 and 1.2.3/1.3.1 and VirtualDub under Windows:&lt;br /&gt;
* Old format (v1.x only) is only used with classical tables (not stored in file)&lt;br /&gt;
* Other methods (v2.1.1) always store tables in file, and uses extradata to store method.&lt;br /&gt;
&lt;br /&gt;
The first two(?) pixels (or 4 bytes) of the second row in predict gradient could be stored in a different way, using only left and above pixel as predictor. None of my samples require this.&lt;br /&gt;
&lt;br /&gt;
[[Category:Video Codecs]]&lt;br /&gt;
[[Category:Lossless Video Codecs]]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Helix&amp;diff=1751</id>
		<title>Helix</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Helix&amp;diff=1751"/>
		<updated>2006-01-19T22:12:23Z</updated>

		<summary type="html">&lt;p&gt;Roberto: created page with url&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Website: [http://player.helixcommunity.org/ http://player.helixcommunity.org/]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=GStreamer&amp;diff=1750</id>
		<title>GStreamer</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=GStreamer&amp;diff=1750"/>
		<updated>2006-01-19T22:09:25Z</updated>

		<summary type="html">&lt;p&gt;Roberto: created page with url&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Website: [http://www.gstreamer.net/ http://www.gstreamer.net/]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=FFplay&amp;diff=1749</id>
		<title>FFplay</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=FFplay&amp;diff=1749"/>
		<updated>2006-01-19T22:08:04Z</updated>

		<summary type="html">&lt;p&gt;Roberto: created page with url&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Website: [http://www.ffmpeg.org/ http://www.ffmpeg.org/]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=VLC_media_player&amp;diff=1748</id>
		<title>VLC media player</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=VLC_media_player&amp;diff=1748"/>
		<updated>2006-01-19T22:05:17Z</updated>

		<summary type="html">&lt;p&gt;Roberto: created page with url&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Website: [http://www.videolan.org/ http://www.videolan.org/]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Xine&amp;diff=1747</id>
		<title>Xine</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Xine&amp;diff=1747"/>
		<updated>2006-01-19T22:03:46Z</updated>

		<summary type="html">&lt;p&gt;Roberto: created page with url&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Website: [http://www.xinehq.de/ http://www.xinehq.de/]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=MPlayer&amp;diff=1746</id>
		<title>MPlayer</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=MPlayer&amp;diff=1746"/>
		<updated>2006-01-19T22:02:34Z</updated>

		<summary type="html">&lt;p&gt;Roberto: created page with url&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Website: [http://www.mplayerhq.hu/ http://www.mplayerhq.hu/]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Real_Lossless_Codec&amp;diff=1524</id>
		<title>Real Lossless Codec</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Real_Lossless_Codec&amp;diff=1524"/>
		<updated>2006-01-15T17:28:53Z</updated>

		<summary type="html">&lt;p&gt;Roberto: add category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* FOURCCs: ralf&lt;br /&gt;
* Company: [[Real|RealNetworks]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is RealNetworks lossless audio codec.&lt;br /&gt;
&lt;br /&gt;
Audio header in rm files is different from other Real audio codecs; the interface of the binary decoder is also different.&lt;br /&gt;
&lt;br /&gt;
[[Category:Undiscovered Audio Codecs]]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=RealAudio_sipr&amp;diff=1523</id>
		<title>RealAudio sipr</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=RealAudio_sipr&amp;diff=1523"/>
		<updated>2006-01-15T17:28:17Z</updated>

		<summary type="html">&lt;p&gt;Roberto: add G.729 reference, format list as other codecs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* FOURCC: sipr&lt;br /&gt;
* Company: [[Real|RealNetworks]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Audio codec found in [[RealMedia]] files, not as common as [[RealAudio_cook|cook]].&lt;br /&gt;
&lt;br /&gt;
Should be partly based on G.729 (at least the 6.5kb and 8.5kb variants)&lt;br /&gt;
&lt;br /&gt;
[[Category:Undiscovered Audio Codecs]]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Real_Lossless_Codec&amp;diff=1522</id>
		<title>Real Lossless Codec</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Real_Lossless_Codec&amp;diff=1522"/>
		<updated>2006-01-15T16:55:23Z</updated>

		<summary type="html">&lt;p&gt;Roberto: create page with short description&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* FOURCCs: ralf&lt;br /&gt;
* Company: [[Real|RealNetworks]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is RealNetworks lossless audio codec.&lt;br /&gt;
&lt;br /&gt;
Audio header in rm files is different from other Real audio codecs; the interface of the binary decoder is also different.&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Autodesk&amp;diff=1521</id>
		<title>Autodesk</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Autodesk&amp;diff=1521"/>
		<updated>2006-01-15T16:43:50Z</updated>

		<summary type="html">&lt;p&gt;Roberto: use same layout as other company links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Website: [http://www.autodesk.com http://www.autodesk.com]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Autodesk&amp;diff=1519</id>
		<title>Autodesk</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Autodesk&amp;diff=1519"/>
		<updated>2006-01-15T15:07:38Z</updated>

		<summary type="html">&lt;p&gt;Roberto: Added page with url to company site&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.autodesk.com http://www.autodesk.com]&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Flic_Video&amp;diff=1518</id>
		<title>Flic Video</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Flic_Video&amp;diff=1518"/>
		<updated>2006-01-15T15:04:43Z</updated>

		<summary type="html">&lt;p&gt;Roberto: create page with short description&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the original format used by [[Autodesk]] Animator.&lt;br /&gt;
&lt;br /&gt;
You can find a complete description of the fli/flc format (both container and video coder) here [http://www.compuphase.com/flic.htm http://www.compuphase.com/flic.htm].&lt;br /&gt;
&lt;br /&gt;
==Video Codec==&lt;br /&gt;
* FOURCC (unofficial): FLIC&lt;br /&gt;
* Frame type: IP (conditional replenishment)&lt;br /&gt;
* Company: [[Autodesk]]&lt;br /&gt;
&lt;br /&gt;
The codec uses RGB colorspace: paletted RGB8, RGB15, RGB16, RGB24.&amp;lt;br&amp;gt;RGB8 is tightly coupled with the VGA mode 0x13.&lt;br /&gt;
&lt;br /&gt;
Compression methods are RLE-based.&lt;br /&gt;
&lt;br /&gt;
==Container==&lt;br /&gt;
There are many variations of flic container, the most common are the original FLI from Autodesk Animator and the extended FLC from Autodesk Animator Pro.&lt;br /&gt;
&lt;br /&gt;
The file format is chunk-based.&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=CamStudio_Screen_Codec&amp;diff=1515</id>
		<title>CamStudio Screen Codec</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=CamStudio_Screen_Codec&amp;diff=1515"/>
		<updated>2006-01-15T14:22:26Z</updated>

		<summary type="html">&lt;p&gt;Roberto: Page created, with a short description&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* FOURCC: AASC&lt;br /&gt;
* Name: Autodesk Animator Studio Codec&lt;br /&gt;
* Company: [[Autodesk]]&lt;br /&gt;
* Frame type: IP (conditional replenishment)&lt;br /&gt;
&lt;br /&gt;
Simple compressor, basically an extension of [[Microsoft]] BMP RLE8 algorithm to RGB24 colorspace.&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Lossless_Codec_Libraries&amp;diff=1513</id>
		<title>Lossless Codec Libraries</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Lossless_Codec_Libraries&amp;diff=1513"/>
		<updated>2006-01-14T22:38:14Z</updated>

		<summary type="html">&lt;p&gt;Roberto: new page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* FOURCCs: MSZH and ZLIB&lt;br /&gt;
* Name: Lossless codec library (LCL)&lt;br /&gt;
* Frame type: intra only&lt;br /&gt;
* Technical Description: [http://multimedia.cx/lcl.txt http://multimedia.cx/lcl.txt]&lt;br /&gt;
&lt;br /&gt;
These are two codecs, used in .AVI files, and where created by Kenji Oshima to compress digital animation.&lt;br /&gt;
MSZH is based on a simple proprietary compressor, while ZLIB uses deflate method of zlib library to compress frames.&lt;/div&gt;</summary>
		<author><name>Roberto</name></author>
	</entry>
</feed>