RealMedia: Difference between revisions

From MultimediaWiki
Jump to navigation Jump to search
(")
(")
Line 5: Line 5:


The old .ra files are just for audio.  The newer RealMedia (.rm) files are for audio and video.
The old .ra files are just for audio.  The newer RealMedia (.rm) files are for audio and video.
== RA Format ==
This is the old audio-only RealAudio file format.
A very similar structure is also used to describe audio streams in RM files.
The audio data part is just a stream of bytes with no structure.
There is no index in .ra files, but seeking is possible because the codecs are CBR.
=== RealAudio 1.0 file  (.ra version 3) ===
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.
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 3)
word    Header size - 7
byte[10] Unknown
dword    Data size
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
byte    Unknown *
byte    Fourcc string length (always 4) *
byte[]  Fourcc string (always "lpcJ") *
  Audio data
Notes:
* 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).
* The informative fields (title, author, copyright and comment) can have zero length.
=== RealAudio 2.0 file (.ra version 4) ===
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.
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 4)
word    Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word    Version2 (always equal to version)
dword    Header size - 16
word    Codec flavor
dword    Coded frame size
byte[12] Unknown
word    Sub packet h
word    Frame size
word    Subpacket size
word    Unknown
word    Samplerate
word    Unknown
word    Sample size
word    Channels
byte    Interleaver ID string length (always 4)
byte[]  Interleaver ID string
byte    FourCC string length (always 4)
byte[]  FourCC string
byte[3]  Unknown
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
  Audio Data
Notes:
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
* The informative fields (title, author, copyright and comment) can have zero length.
=== .ra version 5 ===
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.
== RealMedia Format ==
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.
A RealMedia file consists of a series of chunks. Each chunk has the following format:
dword  chunk type ([[FOURCC]])
dword  chunk size, including 8-byte preamble
word  chunk version
byte[] chunk payload
Real chunk types:
* .RMF: RealMedia file header (only one per file, must be the first chunk)
* PROP: File properties (only one per file)
* MDPR: Stream properties (one for each stream)
* CONT: Content description/metadata (typically one per file)
* DATA: File data
* INDX: File index (typically one per stream)
=== RealMedia file header (.RMF) ===
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.
A .RMF chunk has the following format
dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers
Notes:
* All known sample files have version equal to 0.
* 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.
=== File properties header (PROP) ===
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.
A PROP chunk has the following format
dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word  Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word  Number of streams in the file
word  Flags (bitfield, see below)
Flags:
* bit 0: file can be saved on disk
* bit 1: PerfectPlay can be used (extra buffering)
* bit 2: the file is a live broadcast
=== Media properties header (MDPR) ===
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.
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.
There is one MDPR chunk for every stream in the file.
A MDPR chunk has the following format
dword  Chunk type ('MDPR')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Stream start offset in ms
dword  Preroll in ms (to be subtracted from timestamps?)
dword  Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword  Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type
=== Content description header (CONT) ===
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.
A CONT chunk has the following format
dword  Chunk type ('CONT')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Title string length
byte[]  Title string
word    Author string length
byte[]  Author string
word    Copyright string length
byte[]  Copyright string
word    Comment string length
byte[]  Comment string
== Codecs ==
Codecs in RealMedia are identified by the following four character codes:
===== Audio =====
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)
* [[RealAudio_dnet|dnet]] - AC3
* [[RealAudio_sipr|sipr]] - Sipro
* [[RealAudio_cook|cook]] - Cook
* [[RealAudio_atrc|atrc]] - ATRAC
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format
* [[RealAudio_raac|raac]] - LC-AAC
* [[RealAudio_racp|racp]] - HE-AAC
===== Video =====
* [[RealVideo|rv10]] - H.263
* [[RealVideo|rv13]] - H.263
* [[RealVideo|rv20]] - H.263+
* [[RealVideo|rv30]] - Unknown format
* [[RealVideo|rv40]] - Unknown format
[[Category: Container Formats]]
== RA Format ==
This is the old audio-only RealAudio file format.
A very similar structure is also used to describe audio streams in RM files.
The audio data part is just a stream of bytes with no structure.
There is no index in .ra files, but seeking is possible because the codecs are CBR.
=== RealAudio 1.0 file  (.ra version 3) ===
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.
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 3)
word    Header size - 7
byte[10] Unknown
dword    Data size
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
byte    Unknown *
byte    Fourcc string length (always 4) *
byte[]  Fourcc string (always "lpcJ") *
  Audio data
Notes:
* 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).
* The informative fields (title, author, copyright and comment) can have zero length.
=== RealAudio 2.0 file (.ra version 4) ===
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.
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 4)
word    Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word    Version2 (always equal to version)
dword    Header size - 16
word    Codec flavor
dword    Coded frame size
byte[12] Unknown
word    Sub packet h
word    Frame size
word    Subpacket size
word    Unknown
word    Samplerate
word    Unknown
word    Sample size
word    Channels
byte    Interleaver ID string length (always 4)
byte[]  Interleaver ID string
byte    FourCC string length (always 4)
byte[]  FourCC string
byte[3]  Unknown
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
  Audio Data
Notes:
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
* The informative fields (title, author, copyright and comment) can have zero length.
=== .ra version 5 ===
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.
== RealMedia Format ==
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.
A RealMedia file consists of a series of chunks. Each chunk has the following format:
dword  chunk type ([[FOURCC]])
dword  chunk size, including 8-byte preamble
word  chunk version
byte[] chunk payload
Real chunk types:
* .RMF: RealMedia file header (only one per file, must be the first chunk)
* PROP: File properties (only one per file)
* MDPR: Stream properties (one for each stream)
* CONT: Content description/metadata (typically one per file)
* DATA: File data
* INDX: File index (typically one per stream)
=== RealMedia file header (.RMF) ===
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.
A .RMF chunk has the following format
dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers
Notes:
* All known sample files have version equal to 0.
* 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.
=== File properties header (PROP) ===
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.
A PROP chunk has the following format
dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word  Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word  Number of streams in the file
word  Flags (bitfield, see below)
Flags:
* bit 0: file can be saved on disk
* bit 1: PerfectPlay can be used (extra buffering)
* bit 2: the file is a live broadcast
=== Media properties header (MDPR) ===
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.
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.
There is one MDPR chunk for every stream in the file.
A MDPR chunk has the following format
dword  Chunk type ('MDPR')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Stream start offset in ms
dword  Preroll in ms (to be subtracted from timestamps?)
dword  Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword  Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type
=== Content description header (CONT) ===
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.
A CONT chunk has the following format
dword  Chunk type ('CONT')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Title string length
byte[]  Title string
word    Author string length
byte[]  Author string
word    Copyright string length
byte[]  Copyright string
word    Comment string length
byte[]  Comment string
== Codecs ==
Codecs in RealMedia are identified by the following four character codes:
===== Audio =====
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)
* [[RealAudio_dnet|dnet]] - AC3
* [[RealAudio_sipr|sipr]] - Sipro
* [[RealAudio_cook|cook]] - Cook
* [[RealAudio_atrc|atrc]] - ATRAC
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format
* [[RealAudio_raac|raac]] - LC-AAC
* [[RealAudio_racp|racp]] - HE-AAC
===== Video =====
* [[RealVideo|rv10]] - H.263
* [[RealVideo|rv13]] - H.263
* [[RealVideo|rv20]] - H.263+
* [[RealVideo|rv30]] - Unknown format
* [[RealVideo|rv40]] - Unknown format
[[Category: Container Formats]]
== RA Format ==
This is the old audio-only RealAudio file format.
A very similar structure is also used to describe audio streams in RM files.
The audio data part is just a stream of bytes with no structure.
There is no index in .ra files, but seeking is possible because the codecs are CBR.
=== RealAudio 1.0 file  (.ra version 3) ===
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.
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 3)
word    Header size - 7
byte[10] Unknown
dword    Data size
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
byte    Unknown *
byte    Fourcc string length (always 4) *
byte[]  Fourcc string (always "lpcJ") *
  Audio data
Notes:
* 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).
* The informative fields (title, author, copyright and comment) can have zero length.
=== RealAudio 2.0 file (.ra version 4) ===
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.
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 4)
word    Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word    Version2 (always equal to version)
dword    Header size - 16
word    Codec flavor
dword    Coded frame size
byte[12] Unknown
word    Sub packet h
word    Frame size
word    Subpacket size
word    Unknown
word    Samplerate
word    Unknown
word    Sample size
word    Channels
byte    Interleaver ID string length (always 4)
byte[]  Interleaver ID string
byte    FourCC string length (always 4)
byte[]  FourCC string
byte[3]  Unknown
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
  Audio Data
Notes:
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
* The informative fields (title, author, copyright and comment) can have zero length.
=== .ra version 5 ===
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.
== RealMedia Format ==
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.
A RealMedia file consists of a series of chunks. Each chunk has the following format:
dword  chunk type ([[FOURCC]])
dword  chunk size, including 8-byte preamble
word  chunk version
byte[] chunk payload
Real chunk types:
* .RMF: RealMedia file header (only one per file, must be the first chunk)
* PROP: File properties (only one per file)
* MDPR: Stream properties (one for each stream)
* CONT: Content description/metadata (typically one per file)
* DATA: File data
* INDX: File index (typically one per stream)
=== RealMedia file header (.RMF) ===
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.
A .RMF chunk has the following format
dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers
Notes:
* All known sample files have version equal to 0.
* 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.
=== File properties header (PROP) ===
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.
A PROP chunk has the following format
dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word  Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word  Number of streams in the file
word  Flags (bitfield, see below)
Flags:
* bit 0: file can be saved on disk
* bit 1: PerfectPlay can be used (extra buffering)
* bit 2: the file is a live broadcast
=== Media properties header (MDPR) ===
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.
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.
There is one MDPR chunk for every stream in the file.
A MDPR chunk has the following format
dword  Chunk type ('MDPR')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Stream start offset in ms
dword  Preroll in ms (to be subtracted from timestamps?)
dword  Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword  Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type
=== Content description header (CONT) ===
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.
A CONT chunk has the following format
dword  Chunk type ('CONT')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Title string length
byte[]  Title string
word    Author string length
byte[]  Author string
word    Copyright string length
byte[]  Copyright string
word    Comment string length
byte[]  Comment string
== Codecs ==
Codecs in RealMedia are identified by the following four character codes:
===== Audio =====
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)
* [[RealAudio_dnet|dnet]] - AC3
* [[RealAudio_sipr|sipr]] - Sipro
* [[RealAudio_cook|cook]] - Cook
* [[RealAudio_atrc|atrc]] - ATRAC
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format
* [[RealAudio_raac|raac]] - LC-AAC
* [[RealAudio_racp|racp]] - HE-AAC
===== Video =====
* [[RealVideo|rv10]] - H.263
* [[RealVideo|rv13]] - H.263
* [[RealVideo|rv20]] - H.263+
* [[RealVideo|rv30]] - Unknown format
* [[RealVideo|rv40]] - Unknown format
[[Category: Container Formats]]
== RA Format ==
This is the old audio-only RealAudio file format.
A very similar structure is also used to describe audio streams in RM files.
The audio data part is just a stream of bytes with no structure.
There is no index in .ra files, but seeking is possible because the codecs are CBR.
=== RealAudio 1.0 file  (.ra version 3) ===
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.
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 3)
word    Header size - 7
byte[10] Unknown
dword    Data size
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
byte    Unknown *
byte    Fourcc string length (always 4) *
byte[]  Fourcc string (always "lpcJ") *
  Audio data
Notes:
* 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).
* The informative fields (title, author, copyright and comment) can have zero length.
=== RealAudio 2.0 file (.ra version 4) ===
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.
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 4)
word    Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word    Version2 (always equal to version)
dword    Header size - 16
word    Codec flavor
dword    Coded frame size
byte[12] Unknown
word    Sub packet h
word    Frame size
word    Subpacket size
word    Unknown
word    Samplerate
word    Unknown
word    Sample size
word    Channels
byte    Interleaver ID string length (always 4)
byte[]  Interleaver ID string
byte    FourCC string length (always 4)
byte[]  FourCC string
byte[3]  Unknown
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
  Audio Data
Notes:
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
* The informative fields (title, author, copyright and comment) can have zero length.
=== .ra version 5 ===
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.
== RealMedia Format ==
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.
A RealMedia file consists of a series of chunks. Each chunk has the following format:
dword  chunk type ([[FOURCC]])
dword  chunk size, including 8-byte preamble
word  chunk version
byte[] chunk payload
Real chunk types:
* .RMF: RealMedia file header (only one per file, must be the first chunk)
* PROP: File properties (only one per file)
* MDPR: Stream properties (one for each stream)
* CONT: Content description/metadata (typically one per file)
* DATA: File data
* INDX: File index (typically one per stream)
=== RealMedia file header (.RMF) ===
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.
A .RMF chunk has the following format
dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers
Notes:
* All known sample files have version equal to 0.
* 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.
=== File properties header (PROP) ===
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.
A PROP chunk has the following format
dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word  Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word  Number of streams in the file
word  Flags (bitfield, see below)
Flags:
* bit 0: file can be saved on disk
* bit 1: PerfectPlay can be used (extra buffering)
* bit 2: the file is a live broadcast
=== Media properties header (MDPR) ===
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.
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.
There is one MDPR chunk for every stream in the file.
A MDPR chunk has the following format
dword  Chunk type ('MDPR')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Stream start offset in ms
dword  Preroll in ms (to be subtracted from timestamps?)
dword  Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword  Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type
=== Content description header (CONT) ===
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.
A CONT chunk has the following format
dword  Chunk type ('CONT')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Title string length
byte[]  Title string
word    Author string length
byte[]  Author string
word    Copyright string length
byte[]  Copyright string
word    Comment string length
byte[]  Comment string
== Codecs ==
Codecs in RealMedia are identified by the following four character codes:
===== Audio =====
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)
* [[RealAudio_dnet|dnet]] - AC3
* [[RealAudio_sipr|sipr]] - Sipro
* [[RealAudio_cook|cook]] - Cook
* [[RealAudio_atrc|atrc]] - ATRAC
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format
* [[RealAudio_raac|raac]] - LC-AAC
* [[RealAudio_racp|racp]] - HE-AAC
===== Video =====
* [[RealVideo|rv10]] - H.263
* [[RealVideo|rv13]] - H.263
* [[RealVideo|rv20]] - H.263+
* [[RealVideo|rv30]] - Unknown format
* [[RealVideo|rv40]] - Unknown format
[[Category: Container Formats]]
== RA Format ==
This is the old audio-only RealAudio file format.
A very similar structure is also used to describe audio streams in RM files.
The audio data part is just a stream of bytes with no structure.
There is no index in .ra files, but seeking is possible because the codecs are CBR.
=== RealAudio 1.0 file  (.ra version 3) ===
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.
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 3)
word    Header size - 7
byte[10] Unknown
dword    Data size
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
byte    Unknown *
byte    Fourcc string length (always 4) *
byte[]  Fourcc string (always "lpcJ") *
  Audio data
Notes:
* 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).
* The informative fields (title, author, copyright and comment) can have zero length.
=== RealAudio 2.0 file (.ra version 4) ===
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.
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 4)
word    Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word    Version2 (always equal to version)
dword    Header size - 16
word    Codec flavor
dword    Coded frame size
byte[12] Unknown
word    Sub packet h
word    Frame size
word    Subpacket size
word    Unknown
word    Samplerate
word    Unknown
word    Sample size
word    Channels
byte    Interleaver ID string length (always 4)
byte[]  Interleaver ID string
byte    FourCC string length (always 4)
byte[]  FourCC string
byte[3]  Unknown
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
  Audio Data
Notes:
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
* The informative fields (title, author, copyright and comment) can have zero length.
=== .ra version 5 ===
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.
== RealMedia Format ==
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.
A RealMedia file consists of a series of chunks. Each chunk has the following format:
dword  chunk type ([[FOURCC]])
dword  chunk size, including 8-byte preamble
word  chunk version
byte[] chunk payload
Real chunk types:
* .RMF: RealMedia file header (only one per file, must be the first chunk)
* PROP: File properties (only one per file)
* MDPR: Stream properties (one for each stream)
* CONT: Content description/metadata (typically one per file)
* DATA: File data
* INDX: File index (typically one per stream)
=== RealMedia file header (.RMF) ===
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.
A .RMF chunk has the following format
dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers
Notes:
* All known sample files have version equal to 0.
* 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.
=== File properties header (PROP) ===
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.
A PROP chunk has the following format
dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word  Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word  Number of streams in the file
word  Flags (bitfield, see below)
Flags:
* bit 0: file can be saved on disk
* bit 1: PerfectPlay can be used (extra buffering)
* bit 2: the file is a live broadcast
=== Media properties header (MDPR) ===
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.
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.
There is one MDPR chunk for every stream in the file.
A MDPR chunk has the following format
dword  Chunk type ('MDPR')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Stream start offset in ms
dword  Preroll in ms (to be subtracted from timestamps?)
dword  Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword  Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type
=== Content description header (CONT) ===
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.
A CONT chunk has the following format
dword  Chunk type ('CONT')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Title string length
byte[]  Title string
word    Author string length
byte[]  Author string
word    Copyright string length
byte[]  Copyright string
word    Comment string length
byte[]  Comment string
== Codecs ==
Codecs in RealMedia are identified by the following four character codes:
===== Audio =====
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)
* [[RealAudio_dnet|dnet]] - AC3
* [[RealAudio_sipr|sipr]] - Sipro
* [[RealAudio_cook|cook]] - Cook
* [[RealAudio_atrc|atrc]] - ATRAC
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format
* [[RealAudio_raac|raac]] - LC-AAC
* [[RealAudio_racp|racp]] - HE-AAC
===== Video =====
* [[RealVideo|rv10]] - H.263
* [[RealVideo|rv13]] - H.263
* [[RealVideo|rv20]] - H.263+
* [[RealVideo|rv30]] - Unknown format
* [[RealVideo|rv40]] - Unknown format
[[Category: Container Formats]]
== RA Format ==
This is the old audio-only RealAudio file format.
A very similar structure is also used to describe audio streams in RM files.
The audio data part is just a stream of bytes with no structure.
There is no index in .ra files, but seeking is possible because the codecs are CBR.
=== RealAudio 1.0 file  (.ra version 3) ===
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.
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 3)
word    Header size - 7
byte[10] Unknown
dword    Data size
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
byte    Unknown *
byte    Fourcc string length (always 4) *
byte[]  Fourcc string (always "lpcJ") *
  Audio data
Notes:
* 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).
* The informative fields (title, author, copyright and comment) can have zero length.
=== RealAudio 2.0 file (.ra version 4) ===
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.
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 4)
word    Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word    Version2 (always equal to version)
dword    Header size - 16
word    Codec flavor
dword    Coded frame size
byte[12] Unknown
word    Sub packet h
word    Frame size
word    Subpacket size
word    Unknown
word    Samplerate
word    Unknown
word    Sample size
word    Channels
byte    Interleaver ID string length (always 4)
byte[]  Interleaver ID string
byte    FourCC string length (always 4)
byte[]  FourCC string
byte[3]  Unknown
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
  Audio Data
Notes:
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
* The informative fields (title, author, copyright and comment) can have zero length.
=== .ra version 5 ===
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.
== RealMedia Format ==
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.
A RealMedia file consists of a series of chunks. Each chunk has the following format:
dword  chunk type ([[FOURCC]])
dword  chunk size, including 8-byte preamble
word  chunk version
byte[] chunk payload
Real chunk types:
* .RMF: RealMedia file header (only one per file, must be the first chunk)
* PROP: File properties (only one per file)
* MDPR: Stream properties (one for each stream)
* CONT: Content description/metadata (typically one per file)
* DATA: File data
* INDX: File index (typically one per stream)
=== RealMedia file header (.RMF) ===
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.
A .RMF chunk has the following format
dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers
Notes:
* All known sample files have version equal to 0.
* 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.
=== File properties header (PROP) ===
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.
A PROP chunk has the following format
dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word  Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word  Number of streams in the file
word  Flags (bitfield, see below)
Flags:
* bit 0: file can be saved on disk
* bit 1: PerfectPlay can be used (extra buffering)
* bit 2: the file is a live broadcast
=== Media properties header (MDPR) ===
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.
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.
There is one MDPR chunk for every stream in the file.
A MDPR chunk has the following format
dword  Chunk type ('MDPR')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Stream start offset in ms
dword  Preroll in ms (to be subtracted from timestamps?)
dword  Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword  Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type
=== Content description header (CONT) ===
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.
A CONT chunk has the following format
dword  Chunk type ('CONT')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Title string length
byte[]  Title string
word    Author string length
byte[]  Author string
word    Copyright string length
byte[]  Copyright string
word    Comment string length
byte[]  Comment string
== Codecs ==
Codecs in RealMedia are identified by the following four character codes:
===== Audio =====
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)
* [[RealAudio_dnet|dnet]] - AC3
* [[RealAudio_sipr|sipr]] - Sipro
* [[RealAudio_cook|cook]] - Cook
* [[RealAudio_atrc|atrc]] - ATRAC
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format
* [[RealAudio_raac|raac]] - LC-AAC
* [[RealAudio_racp|racp]] - HE-AAC
===== Video =====
* [[RealVideo|rv10]] - H.263
* [[RealVideo|rv13]] - H.263
* [[RealVideo|rv20]] - H.263+
* [[RealVideo|rv30]] - Unknown format
* [[RealVideo|rv40]] - Unknown format
[[Category: Container Formats]]
== RA Format ==
This is the old audio-only RealAudio file format.
A very similar structure is also used to describe audio streams in RM files.
The audio data part is just a stream of bytes with no structure.
There is no index in .ra files, but seeking is possible because the codecs are CBR.
=== RealAudio 1.0 file  (.ra version 3) ===
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.
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 3)
word    Header size - 7
byte[10] Unknown
dword    Data size
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
byte    Unknown *
byte    Fourcc string length (always 4) *
byte[]  Fourcc string (always "lpcJ") *
  Audio data
Notes:
* 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).
* The informative fields (title, author, copyright and comment) can have zero length.
=== RealAudio 2.0 file (.ra version 4) ===
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.
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 4)
word    Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word    Version2 (always equal to version)
dword    Header size - 16
word    Codec flavor
dword    Coded frame size
byte[12] Unknown
word    Sub packet h
word    Frame size
word    Subpacket size
word    Unknown
word    Samplerate
word    Unknown
word    Sample size
word    Channels
byte    Interleaver ID string length (always 4)
byte[]  Interleaver ID string
byte    FourCC string length (always 4)
byte[]  FourCC string
byte[3]  Unknown
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
  Audio Data
Notes:
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
* The informative fields (title, author, copyright and comment) can have zero length.
=== .ra version 5 ===
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.
== RealMedia Format ==
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.
A RealMedia file consists of a series of chunks. Each chunk has the following format:
dword  chunk type ([[FOURCC]])
dword  chunk size, including 8-byte preamble
word  chunk version
byte[] chunk payload
Real chunk types:
* .RMF: RealMedia file header (only one per file, must be the first chunk)
* PROP: File properties (only one per file)
* MDPR: Stream properties (one for each stream)
* CONT: Content description/metadata (typically one per file)
* DATA: File data
* INDX: File index (typically one per stream)
=== RealMedia file header (.RMF) ===
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.
A .RMF chunk has the following format
dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers
Notes:
* All known sample files have version equal to 0.
* 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.
=== File properties header (PROP) ===
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.
A PROP chunk has the following format
dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word  Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word  Number of streams in the file
word  Flags (bitfield, see below)
Flags:
* bit 0: file can be saved on disk
* bit 1: PerfectPlay can be used (extra buffering)
* bit 2: the file is a live broadcast
=== Media properties header (MDPR) ===
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.
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.
There is one MDPR chunk for every stream in the file.
A MDPR chunk has the following format
dword  Chunk type ('MDPR')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Stream start offset in ms
dword  Preroll in ms (to be subtracted from timestamps?)
dword  Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword  Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type
=== Content description header (CONT) ===
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.
A CONT chunk has the following format
dword  Chunk type ('CONT')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Title string length
byte[]  Title string
word    Author string length
byte[]  Author string
word    Copyright string length
byte[]  Copyright string
word    Comment string length
byte[]  Comment string
== Codecs ==
Codecs in RealMedia are identified by the following four character codes:
===== Audio =====
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)
* [[RealAudio_dnet|dnet]] - AC3
* [[RealAudio_sipr|sipr]] - Sipro
* [[RealAudio_cook|cook]] - Cook
* [[RealAudio_atrc|atrc]] - ATRAC
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format
* [[RealAudio_raac|raac]] - LC-AAC
* [[RealAudio_racp|racp]] - HE-AAC
===== Video =====
* [[RealVideo|rv10]] - H.263
* [[RealVideo|rv13]] - H.263
* [[RealVideo|rv20]] - H.263+
* [[RealVideo|rv30]] - Unknown format
* [[RealVideo|rv40]] - Unknown format
[[Category: Container Formats]]
== RA Format ==
This is the old audio-only RealAudio file format.
A very similar structure is also used to describe audio streams in RM files.
The audio data part is just a stream of bytes with no structure.
There is no index in .ra files, but seeking is possible because the codecs are CBR.
=== RealAudio 1.0 file  (.ra version 3) ===
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.
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 3)
word    Header size - 7
byte[10] Unknown
dword    Data size
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
byte    Unknown *
byte    Fourcc string length (always 4) *
byte[]  Fourcc string (always "lpcJ") *
  Audio data
Notes:
* 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).
* The informative fields (title, author, copyright and comment) can have zero length.
=== RealAudio 2.0 file (.ra version 4) ===
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.
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 4)
word    Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word    Version2 (always equal to version)
dword    Header size - 16
word    Codec flavor
dword    Coded frame size
byte[12] Unknown
word    Sub packet h
word    Frame size
word    Subpacket size
word    Unknown
word    Samplerate
word    Unknown
word    Sample size
word    Channels
byte    Interleaver ID string length (always 4)
byte[]  Interleaver ID string
byte    FourCC string length (always 4)
byte[]  FourCC string
byte[3]  Unknown
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
  Audio Data
Notes:
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
* The informative fields (title, author, copyright and comment) can have zero length.
=== .ra version 5 ===
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.
== RealMedia Format ==
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.
A RealMedia file consists of a series of chunks. Each chunk has the following format:
dword  chunk type ([[FOURCC]])
dword  chunk size, including 8-byte preamble
word  chunk version
byte[] chunk payload
Real chunk types:
* .RMF: RealMedia file header (only one per file, must be the first chunk)
* PROP: File properties (only one per file)
* MDPR: Stream properties (one for each stream)
* CONT: Content description/metadata (typically one per file)
* DATA: File data
* INDX: File index (typically one per stream)
=== RealMedia file header (.RMF) ===
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.
A .RMF chunk has the following format
dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers
Notes:
* All known sample files have version equal to 0.
* 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.
=== File properties header (PROP) ===
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.
A PROP chunk has the following format
dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word  Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word  Number of streams in the file
word  Flags (bitfield, see below)
Flags:
* bit 0: file can be saved on disk
* bit 1: PerfectPlay can be used (extra buffering)
* bit 2: the file is a live broadcast
=== Media properties header (MDPR) ===
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.
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.
There is one MDPR chunk for every stream in the file.
A MDPR chunk has the following format
dword  Chunk type ('MDPR')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Stream start offset in ms
dword  Preroll in ms (to be subtracted from timestamps?)
dword  Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword  Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type
=== Content description header (CONT) ===
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.
A CONT chunk has the following format
dword  Chunk type ('CONT')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Title string length
byte[]  Title string
word    Author string length
byte[]  Author string
word    Copyright string length
byte[]  Copyright string
word    Comment string length
byte[]  Comment string
== Codecs ==
Codecs in RealMedia are identified by the following four character codes:
===== Audio =====
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)
* [[RealAudio_dnet|dnet]] - AC3
* [[RealAudio_sipr|sipr]] - Sipro
* [[RealAudio_cook|cook]] - Cook
* [[RealAudio_atrc|atrc]] - ATRAC
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format
* [[RealAudio_raac|raac]] - LC-AAC
* [[RealAudio_racp|racp]] - HE-AAC
===== Video =====
* [[RealVideo|rv10]] - H.263
* [[RealVideo|rv13]] - H.263
* [[RealVideo|rv20]] - H.263+
* [[RealVideo|rv30]] - Unknown format
* [[RealVideo|rv40]] - Unknown format
[[Category: Container Formats]]
== RA Format ==
This is the old audio-only RealAudio file format.
A very similar structure is also used to describe audio streams in RM files.
The audio data part is just a stream of bytes with no structure.
There is no index in .ra files, but seeking is possible because the codecs are CBR.
=== RealAudio 1.0 file  (.ra version 3) ===
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.
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 3)
word    Header size - 7
byte[10] Unknown
dword    Data size
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
byte    Unknown *
byte    Fourcc string length (always 4) *
byte[]  Fourcc string (always "lpcJ") *
  Audio data
Notes:
* 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).
* The informative fields (title, author, copyright and comment) can have zero length.
=== RealAudio 2.0 file (.ra version 4) ===
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.
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 4)
word    Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word    Version2 (always equal to version)
dword    Header size - 16
word    Codec flavor
dword    Coded frame size
byte[12] Unknown
word    Sub packet h
word    Frame size
word    Subpacket size
word    Unknown
word    Samplerate
word    Unknown
word    Sample size
word    Channels
byte    Interleaver ID string length (always 4)
byte[]  Interleaver ID string
byte    FourCC string length (always 4)
byte[]  FourCC string
byte[3]  Unknown
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
  Audio Data
Notes:
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
* The informative fields (title, author, copyright and comment) can have zero length.
=== .ra version 5 ===
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.
== RealMedia Format ==
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.
A RealMedia file consists of a series of chunks. Each chunk has the following format:
dword  chunk type ([[FOURCC]])
dword  chunk size, including 8-byte preamble
word  chunk version
byte[] chunk payload
Real chunk types:
* .RMF: RealMedia file header (only one per file, must be the first chunk)
* PROP: File properties (only one per file)
* MDPR: Stream properties (one for each stream)
* CONT: Content description/metadata (typically one per file)
* DATA: File data
* INDX: File index (typically one per stream)
=== RealMedia file header (.RMF) ===
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.
A .RMF chunk has the following format
dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers
Notes:
* All known sample files have version equal to 0.
* 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.
=== File properties header (PROP) ===
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.
A PROP chunk has the following format
dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word  Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word  Number of streams in the file
word  Flags (bitfield, see below)
Flags:
* bit 0: file can be saved on disk
* bit 1: PerfectPlay can be used (extra buffering)
* bit 2: the file is a live broadcast
=== Media properties header (MDPR) ===
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.
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.
There is one MDPR chunk for every stream in the file.
A MDPR chunk has the following format
dword  Chunk type ('MDPR')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Stream start offset in ms
dword  Preroll in ms (to be subtracted from timestamps?)
dword  Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword  Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type
=== Content description header (CONT) ===
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.
A CONT chunk has the following format
dword  Chunk type ('CONT')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Title string length
byte[]  Title string
word    Author string length
byte[]  Author string
word    Copyright string length
byte[]  Copyright string
word    Comment string length
byte[]  Comment string
== Codecs ==
Codecs in RealMedia are identified by the following four character codes:
===== Audio =====
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)
* [[RealAudio_dnet|dnet]] - AC3
* [[RealAudio_sipr|sipr]] - Sipro
* [[RealAudio_cook|cook]] - Cook
* [[RealAudio_atrc|atrc]] - ATRAC
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format
* [[RealAudio_raac|raac]] - LC-AAC
* [[RealAudio_racp|racp]] - HE-AAC
===== Video =====
* [[RealVideo|rv10]] - H.263
* [[RealVideo|rv13]] - H.263
* [[RealVideo|rv20]] - H.263+
* [[RealVideo|rv30]] - Unknown format
* [[RealVideo|rv40]] - Unknown format
[[Category: Container Formats]]
== RA Format ==
This is the old audio-only RealAudio file format.
A very similar structure is also used to describe audio streams in RM files.
The audio data part is just a stream of bytes with no structure.
There is no index in .ra files, but seeking is possible because the codecs are CBR.
=== RealAudio 1.0 file  (.ra version 3) ===
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.
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 3)
word    Header size - 7
byte[10] Unknown
dword    Data size
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
byte    Unknown *
byte    Fourcc string length (always 4) *
byte[]  Fourcc string (always "lpcJ") *
  Audio data
Notes:
* 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).
* The informative fields (title, author, copyright and comment) can have zero length.
=== RealAudio 2.0 file (.ra version 4) ===
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.
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 4)
word    Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word    Version2 (always equal to version)
dword    Header size - 16
word    Codec flavor
dword    Coded frame size
byte[12] Unknown
word    Sub packet h
word    Frame size
word    Subpacket size
word    Unknown
word    Samplerate
word    Unknown
word    Sample size
word    Channels
byte    Interleaver ID string length (always 4)
byte[]  Interleaver ID string
byte    FourCC string length (always 4)
byte[]  FourCC string
byte[3]  Unknown
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
  Audio Data
Notes:
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
* The informative fields (title, author, copyright and comment) can have zero length.
=== .ra version 5 ===
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.
== RealMedia Format ==
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.
A RealMedia file consists of a series of chunks. Each chunk has the following format:
dword  chunk type ([[FOURCC]])
dword  chunk size, including 8-byte preamble
word  chunk version
byte[] chunk payload
Real chunk types:
* .RMF: RealMedia file header (only one per file, must be the first chunk)
* PROP: File properties (only one per file)
* MDPR: Stream properties (one for each stream)
* CONT: Content description/metadata (typically one per file)
* DATA: File data
* INDX: File index (typically one per stream)
=== RealMedia file header (.RMF) ===
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.
A .RMF chunk has the following format
dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers
Notes:
* All known sample files have version equal to 0.
* 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.
=== File properties header (PROP) ===
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.
A PROP chunk has the following format
dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word  Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word  Number of streams in the file
word  Flags (bitfield, see below)
Flags:
* bit 0: file can be saved on disk
* bit 1: PerfectPlay can be used (extra buffering)
* bit 2: the file is a live broadcast
=== Media properties header (MDPR) ===
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.
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.
There is one MDPR chunk for every stream in the file.
A MDPR chunk has the following format
dword  Chunk type ('MDPR')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Stream start offset in ms
dword  Preroll in ms (to be subtracted from timestamps?)
dword  Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword  Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type
=== Content description header (CONT) ===
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.
A CONT chunk has the following format
dword  Chunk type ('CONT')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Title string length
byte[]  Title string
word    Author string length
byte[]  Author string
word    Copyright string length
byte[]  Copyright string
word    Comment string length
byte[]  Comment string
== Codecs ==
Codecs in RealMedia are identified by the following four character codes:
===== Audio =====
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)
* [[RealAudio_dnet|dnet]] - AC3
* [[RealAudio_sipr|sipr]] - Sipro
* [[RealAudio_cook|cook]] - Cook
* [[RealAudio_atrc|atrc]] - ATRAC
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format
* [[RealAudio_raac|raac]] - LC-AAC
* [[RealAudio_racp|racp]] - HE-AAC
===== Video =====
* [[RealVideo|rv10]] - H.263
* [[RealVideo|rv13]] - H.263
* [[RealVideo|rv20]] - H.263+
* [[RealVideo|rv30]] - Unknown format
* [[RealVideo|rv40]] - Unknown format
[[Category: Container Formats]]
== RA Format ==
This is the old audio-only RealAudio file format.
A very similar structure is also used to describe audio streams in RM files.
The audio data part is just a stream of bytes with no structure.
There is no index in .ra files, but seeking is possible because the codecs are CBR.
=== RealAudio 1.0 file  (.ra version 3) ===
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.
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 3)
word    Header size - 7
byte[10] Unknown
dword    Data size
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
byte    Unknown *
byte    Fourcc string length (always 4) *
byte[]  Fourcc string (always "lpcJ") *
  Audio data
Notes:
* 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).
* The informative fields (title, author, copyright and comment) can have zero length.
=== RealAudio 2.0 file (.ra version 4) ===
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.
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 4)
word    Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word    Version2 (always equal to version)
dword    Header size - 16
word    Codec flavor
dword    Coded frame size
byte[12] Unknown
word    Sub packet h
word    Frame size
word    Subpacket size
word    Unknown
word    Samplerate
word    Unknown
word    Sample size
word    Channels
byte    Interleaver ID string length (always 4)
byte[]  Interleaver ID string
byte    FourCC string length (always 4)
byte[]  FourCC string
byte[3]  Unknown
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
  Audio Data
Notes:
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
* The informative fields (title, author, copyright and comment) can have zero length.
=== .ra version 5 ===
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.
== RealMedia Format ==
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.
A RealMedia file consists of a series of chunks. Each chunk has the following format:
dword  chunk type ([[FOURCC]])
dword  chunk size, including 8-byte preamble
word  chunk version
byte[] chunk payload
Real chunk types:
* .RMF: RealMedia file header (only one per file, must be the first chunk)
* PROP: File properties (only one per file)
* MDPR: Stream properties (one for each stream)
* CONT: Content description/metadata (typically one per file)
* DATA: File data
* INDX: File index (typically one per stream)
=== RealMedia file header (.RMF) ===
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.
A .RMF chunk has the following format
dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers
Notes:
* All known sample files have version equal to 0.
* 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.
=== File properties header (PROP) ===
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.
A PROP chunk has the following format
dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word  Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word  Number of streams in the file
word  Flags (bitfield, see below)
Flags:
* bit 0: file can be saved on disk
* bit 1: PerfectPlay can be used (extra buffering)
* bit 2: the file is a live broadcast
=== Media properties header (MDPR) ===
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.
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.
There is one MDPR chunk for every stream in the file.
A MDPR chunk has the following format
dword  Chunk type ('MDPR')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Stream start offset in ms
dword  Preroll in ms (to be subtracted from timestamps?)
dword  Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword  Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type
=== Content description header (CONT) ===
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.
A CONT chunk has the following format
dword  Chunk type ('CONT')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Title string length
byte[]  Title string
word    Author string length
byte[]  Author string
word    Copyright string length
byte[]  Copyright string
word    Comment string length
byte[]  Comment string
== Codecs ==
Codecs in RealMedia are identified by the following four character codes:
===== Audio =====
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)
* [[RealAudio_dnet|dnet]] - AC3
* [[RealAudio_sipr|sipr]] - Sipro
* [[RealAudio_cook|cook]] - Cook
* [[RealAudio_atrc|atrc]] - ATRAC
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format
* [[RealAudio_raac|raac]] - LC-AAC
* [[RealAudio_racp|racp]] - HE-AAC
===== Video =====
* [[RealVideo|rv10]] - H.263
* [[RealVideo|rv13]] - H.263
* [[RealVideo|rv20]] - H.263+
* [[RealVideo|rv30]] - Unknown format
* [[RealVideo|rv40]] - Unknown format
[[Category: Container Formats]]
== RA Format ==
This is the old audio-only RealAudio file format.
A very similar structure is also used to describe audio streams in RM files.
The audio data part is just a stream of bytes with no structure.
There is no index in .ra files, but seeking is possible because the codecs are CBR.
=== RealAudio 1.0 file  (.ra version 3) ===
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.
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 3)
word    Header size - 7
byte[10] Unknown
dword    Data size
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
byte    Unknown *
byte    Fourcc string length (always 4) *
byte[]  Fourcc string (always "lpcJ") *
  Audio data
Notes:
* 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).
* The informative fields (title, author, copyright and comment) can have zero length.
=== RealAudio 2.0 file (.ra version 4) ===
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.
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 4)
word    Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word    Version2 (always equal to version)
dword    Header size - 16
word    Codec flavor
dword    Coded frame size
byte[12] Unknown
word    Sub packet h
word    Frame size
word    Subpacket size
word    Unknown
word    Samplerate
word    Unknown
word    Sample size
word    Channels
byte    Interleaver ID string length (always 4)
byte[]  Interleaver ID string
byte    FourCC string length (always 4)
byte[]  FourCC string
byte[3]  Unknown
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
  Audio Data
Notes:
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
* The informative fields (title, author, copyright and comment) can have zero length.
=== .ra version 5 ===
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.
== RealMedia Format ==
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.
A RealMedia file consists of a series of chunks. Each chunk has the following format:
dword  chunk type ([[FOURCC]])
dword  chunk size, including 8-byte preamble
word  chunk version
byte[] chunk payload
Real chunk types:
* .RMF: RealMedia file header (only one per file, must be the first chunk)
* PROP: File properties (only one per file)
* MDPR: Stream properties (one for each stream)
* CONT: Content description/metadata (typically one per file)
* DATA: File data
* INDX: File index (typically one per stream)
=== RealMedia file header (.RMF) ===
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.
A .RMF chunk has the following format
dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers
Notes:
* All known sample files have version equal to 0.
* 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.
=== File properties header (PROP) ===
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.
A PROP chunk has the following format
dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word  Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word  Number of streams in the file
word  Flags (bitfield, see below)
Flags:
* bit 0: file can be saved on disk
* bit 1: PerfectPlay can be used (extra buffering)
* bit 2: the file is a live broadcast
=== Media properties header (MDPR) ===
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.
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.
There is one MDPR chunk for every stream in the file.
A MDPR chunk has the following format
dword  Chunk type ('MDPR')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Stream start offset in ms
dword  Preroll in ms (to be subtracted from timestamps?)
dword  Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword  Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type
=== Content description header (CONT) ===
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.
A CONT chunk has the following format
dword  Chunk type ('CONT')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Title string length
byte[]  Title string
word    Author string length
byte[]  Author string
word    Copyright string length
byte[]  Copyright string
word    Comment string length
byte[]  Comment string
== Codecs ==
Codecs in RealMedia are identified by the following four character codes:
===== Audio =====
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)
* [[RealAudio_dnet|dnet]] - AC3
* [[RealAudio_sipr|sipr]] - Sipro
* [[RealAudio_cook|cook]] - Cook
* [[RealAudio_atrc|atrc]] - ATRAC
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format
* [[RealAudio_raac|raac]] - LC-AAC
* [[RealAudio_racp|racp]] - HE-AAC
===== Video =====
* [[RealVideo|rv10]] - H.263
* [[RealVideo|rv13]] - H.263
* [[RealVideo|rv20]] - H.263+
* [[RealVideo|rv30]] - Unknown format
* [[RealVideo|rv40]] - Unknown format
[[Category: Container Formats]]
== RA Format ==
This is the old audio-only RealAudio file format.
A very similar structure is also used to describe audio streams in RM files.
The audio data part is just a stream of bytes with no structure.
There is no index in .ra files, but seeking is possible because the codecs are CBR.
=== RealAudio 1.0 file  (.ra version 3) ===
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.
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 3)
word    Header size - 7
byte[10] Unknown
dword    Data size
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
byte    Unknown *
byte    Fourcc string length (always 4) *
byte[]  Fourcc string (always "lpcJ") *
  Audio data
Notes:
* 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).
* The informative fields (title, author, copyright and comment) can have zero length.
=== RealAudio 2.0 file (.ra version 4) ===
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.
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 4)
word    Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word    Version2 (always equal to version)
dword    Header size - 16
word    Codec flavor
dword    Coded frame size
byte[12] Unknown
word    Sub packet h
word    Frame size
word    Subpacket size
word    Unknown
word    Samplerate
word    Unknown
word    Sample size
word    Channels
byte    Interleaver ID string length (always 4)
byte[]  Interleaver ID string
byte    FourCC string length (always 4)
byte[]  FourCC string
byte[3]  Unknown
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
  Audio Data
Notes:
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
* The informative fields (title, author, copyright and comment) can have zero length.
=== .ra version 5 ===
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.
== RealMedia Format ==
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.
A RealMedia file consists of a series of chunks. Each chunk has the following format:
dword  chunk type ([[FOURCC]])
dword  chunk size, including 8-byte preamble
word  chunk version
byte[] chunk payload
Real chunk types:
* .RMF: RealMedia file header (only one per file, must be the first chunk)
* PROP: File properties (only one per file)
* MDPR: Stream properties (one for each stream)
* CONT: Content description/metadata (typically one per file)
* DATA: File data
* INDX: File index (typically one per stream)
=== RealMedia file header (.RMF) ===
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.
A .RMF chunk has the following format
dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers
Notes:
* All known sample files have version equal to 0.
* 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.
=== File properties header (PROP) ===
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.
A PROP chunk has the following format
dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word  Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word  Number of streams in the file
word  Flags (bitfield, see below)
Flags:
* bit 0: file can be saved on disk
* bit 1: PerfectPlay can be used (extra buffering)
* bit 2: the file is a live broadcast
=== Media properties header (MDPR) ===
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.
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.
There is one MDPR chunk for every stream in the file.
A MDPR chunk has the following format
dword  Chunk type ('MDPR')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Stream start offset in ms
dword  Preroll in ms (to be subtracted from timestamps?)
dword  Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword  Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type
=== Content description header (CONT) ===
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.
A CONT chunk has the following format
dword  Chunk type ('CONT')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Title string length
byte[]  Title string
word    Author string length
byte[]  Author string
word    Copyright string length
byte[]  Copyright string
word    Comment string length
byte[]  Comment string
== Codecs ==
Codecs in RealMedia are identified by the following four character codes:
===== Audio =====
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)
* [[RealAudio_dnet|dnet]] - AC3
* [[RealAudio_sipr|sipr]] - Sipro
* [[RealAudio_cook|cook]] - Cook
* [[RealAudio_atrc|atrc]] - ATRAC
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format
* [[RealAudio_raac|raac]] - LC-AAC
* [[RealAudio_racp|racp]] - HE-AAC
===== Video =====
* [[RealVideo|rv10]] - H.263
* [[RealVideo|rv13]] - H.263
* [[RealVideo|rv20]] - H.263+
* [[RealVideo|rv30]] - Unknown format
* [[RealVideo|rv40]] - Unknown format
[[Category: Container Formats]]
== RA Format ==
This is the old audio-only RealAudio file format.
A very similar structure is also used to describe audio streams in RM files.
The audio data part is just a stream of bytes with no structure.
There is no index in .ra files, but seeking is possible because the codecs are CBR.
=== RealAudio 1.0 file  (.ra version 3) ===
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.
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 3)
word    Header size - 7
byte[10] Unknown
dword    Data size
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
byte    Unknown *
byte    Fourcc string length (always 4) *
byte[]  Fourcc string (always "lpcJ") *
  Audio data
Notes:
* 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).
* The informative fields (title, author, copyright and comment) can have zero length.
=== RealAudio 2.0 file (.ra version 4) ===
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.
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 4)
word    Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word    Version2 (always equal to version)
dword    Header size - 16
word    Codec flavor
dword    Coded frame size
byte[12] Unknown
word    Sub packet h
word    Frame size
word    Subpacket size
word    Unknown
word    Samplerate
word    Unknown
word    Sample size
word    Channels
byte    Interleaver ID string length (always 4)
byte[]  Interleaver ID string
byte    FourCC string length (always 4)
byte[]  FourCC string
byte[3]  Unknown
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
  Audio Data
Notes:
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
* The informative fields (title, author, copyright and comment) can have zero length.
=== .ra version 5 ===
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.
== RealMedia Format ==
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.
A RealMedia file consists of a series of chunks. Each chunk has the following format:
dword  chunk type ([[FOURCC]])
dword  chunk size, including 8-byte preamble
word  chunk version
byte[] chunk payload
Real chunk types:
* .RMF: RealMedia file header (only one per file, must be the first chunk)
* PROP: File properties (only one per file)
* MDPR: Stream properties (one for each stream)
* CONT: Content description/metadata (typically one per file)
* DATA: File data
* INDX: File index (typically one per stream)
=== RealMedia file header (.RMF) ===
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.
A .RMF chunk has the following format
dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers
Notes:
* All known sample files have version equal to 0.
* 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.
=== File properties header (PROP) ===
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.
A PROP chunk has the following format
dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word  Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word  Number of streams in the file
word  Flags (bitfield, see below)
Flags:
* bit 0: file can be saved on disk
* bit 1: PerfectPlay can be used (extra buffering)
* bit 2: the file is a live broadcast
=== Media properties header (MDPR) ===
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.
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.
There is one MDPR chunk for every stream in the file.
A MDPR chunk has the following format
dword  Chunk type ('MDPR')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Stream start offset in ms
dword  Preroll in ms (to be subtracted from timestamps?)
dword  Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword  Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type
=== Content description header (CONT) ===
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.
A CONT chunk has the following format
dword  Chunk type ('CONT')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Title string length
byte[]  Title string
word    Author string length
byte[]  Author string
word    Copyright string length
byte[]  Copyright string
word    Comment string length
byte[]  Comment string
== Codecs ==
Codecs in RealMedia are identified by the following four character codes:
===== Audio =====
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)
* [[RealAudio_dnet|dnet]] - AC3
* [[RealAudio_sipr|sipr]] - Sipro
* [[RealAudio_cook|cook]] - Cook
* [[RealAudio_atrc|atrc]] - ATRAC
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format
* [[RealAudio_raac|raac]] - LC-AAC
* [[RealAudio_racp|racp]] - HE-AAC
===== Video =====
* [[RealVideo|rv10]] - H.263
* [[RealVideo|rv13]] - H.263
* [[RealVideo|rv20]] - H.263+
* [[RealVideo|rv30]] - Unknown format
* [[RealVideo|rv40]] - Unknown format
[[Category: Container Formats]]
== RA Format ==
This is the old audio-only RealAudio file format.
A very similar structure is also used to describe audio streams in RM files.
The audio data part is just a stream of bytes with no structure.
There is no index in .ra files, but seeking is possible because the codecs are CBR.
=== RealAudio 1.0 file  (.ra version 3) ===
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.
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 3)
word    Header size - 7
byte[10] Unknown
dword    Data size
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
byte    Unknown *
byte    Fourcc string length (always 4) *
byte[]  Fourcc string (always "lpcJ") *
  Audio data
Notes:
* 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).
* The informative fields (title, author, copyright and comment) can have zero length.
=== RealAudio 2.0 file (.ra version 4) ===
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.
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 4)
word    Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word    Version2 (always equal to version)
dword    Header size - 16
word    Codec flavor
dword    Coded frame size
byte[12] Unknown
word    Sub packet h
word    Frame size
word    Subpacket size
word    Unknown
word    Samplerate
word    Unknown
word    Sample size
word    Channels
byte    Interleaver ID string length (always 4)
byte[]  Interleaver ID string
byte    FourCC string length (always 4)
byte[]  FourCC string
byte[3]  Unknown
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
  Audio Data
Notes:
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
* The informative fields (title, author, copyright and comment) can have zero length.
=== .ra version 5 ===
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.
== RealMedia Format ==
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.
A RealMedia file consists of a series of chunks. Each chunk has the following format:
dword  chunk type ([[FOURCC]])
dword  chunk size, including 8-byte preamble
word  chunk version
byte[] chunk payload
Real chunk types:
* .RMF: RealMedia file header (only one per file, must be the first chunk)
* PROP: File properties (only one per file)
* MDPR: Stream properties (one for each stream)
* CONT: Content description/metadata (typically one per file)
* DATA: File data
* INDX: File index (typically one per stream)
=== RealMedia file header (.RMF) ===
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.
A .RMF chunk has the following format
dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers
Notes:
* All known sample files have version equal to 0.
* 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.
=== File properties header (PROP) ===
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.
A PROP chunk has the following format
dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word  Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word  Number of streams in the file
word  Flags (bitfield, see below)
Flags:
* bit 0: file can be saved on disk
* bit 1: PerfectPlay can be used (extra buffering)
* bit 2: the file is a live broadcast
=== Media properties header (MDPR) ===
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.
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.
There is one MDPR chunk for every stream in the file.
A MDPR chunk has the following format
dword  Chunk type ('MDPR')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Stream start offset in ms
dword  Preroll in ms (to be subtracted from timestamps?)
dword  Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword  Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type
=== Content description header (CONT) ===
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.
A CONT chunk has the following format
dword  Chunk type ('CONT')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Title string length
byte[]  Title string
word    Author string length
byte[]  Author string
word    Copyright string length
byte[]  Copyright string
word    Comment string length
byte[]  Comment string
== Codecs ==
Codecs in RealMedia are identified by the following four character codes:
===== Audio =====
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)
* [[RealAudio_dnet|dnet]] - AC3
* [[RealAudio_sipr|sipr]] - Sipro
* [[RealAudio_cook|cook]] - Cook
* [[RealAudio_atrc|atrc]] - ATRAC
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format
* [[RealAudio_raac|raac]] - LC-AAC
* [[RealAudio_racp|racp]] - HE-AAC
===== Video =====
* [[RealVideo|rv10]] - H.263
* [[RealVideo|rv13]] - H.263
* [[RealVideo|rv20]] - H.263+
* [[RealVideo|rv30]] - Unknown format
* [[RealVideo|rv40]] - Unknown format
[[Category: Container Formats]]
== RA Format ==
This is the old audio-only RealAudio file format.
A very similar structure is also used to describe audio streams in RM files.
The audio data part is just a stream of bytes with no structure.
There is no index in .ra files, but seeking is possible because the codecs are CBR.
=== RealAudio 1.0 file  (.ra version 3) ===
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.
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 3)
word    Header size - 7
byte[10] Unknown
dword    Data size
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
byte    Unknown *
byte    Fourcc string length (always 4) *
byte[]  Fourcc string (always "lpcJ") *
  Audio data
Notes:
* 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).
* The informative fields (title, author, copyright and comment) can have zero length.
=== RealAudio 2.0 file (.ra version 4) ===
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.
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 4)
word    Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word    Version2 (always equal to version)
dword    Header size - 16
word    Codec flavor
dword    Coded frame size
byte[12] Unknown
word    Sub packet h
word    Frame size
word    Subpacket size
word    Unknown
word    Samplerate
word    Unknown
word    Sample size
word    Channels
byte    Interleaver ID string length (always 4)
byte[]  Interleaver ID string
byte    FourCC string length (always 4)
byte[]  FourCC string
byte[3]  Unknown
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
  Audio Data
Notes:
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
* The informative fields (title, author, copyright and comment) can have zero length.
=== .ra version 5 ===
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.
== RealMedia Format ==
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.
A RealMedia file consists of a series of chunks. Each chunk has the following format:
dword  chunk type ([[FOURCC]])
dword  chunk size, including 8-byte preamble
word  chunk version
byte[] chunk payload
Real chunk types:
* .RMF: RealMedia file header (only one per file, must be the first chunk)
* PROP: File properties (only one per file)
* MDPR: Stream properties (one for each stream)
* CONT: Content description/metadata (typically one per file)
* DATA: File data
* INDX: File index (typically one per stream)
=== RealMedia file header (.RMF) ===
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.
A .RMF chunk has the following format
dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers
Notes:
* All known sample files have version equal to 0.
* 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.
=== File properties header (PROP) ===
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.
A PROP chunk has the following format
dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word  Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word  Number of streams in the file
word  Flags (bitfield, see below)
Flags:
* bit 0: file can be saved on disk
* bit 1: PerfectPlay can be used (extra buffering)
* bit 2: the file is a live broadcast
=== Media properties header (MDPR) ===
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.
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.
There is one MDPR chunk for every stream in the file.
A MDPR chunk has the following format
dword  Chunk type ('MDPR')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Stream start offset in ms
dword  Preroll in ms (to be subtracted from timestamps?)
dword  Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword  Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type
=== Content description header (CONT) ===
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.
A CONT chunk has the following format
dword  Chunk type ('CONT')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Title string length
byte[]  Title string
word    Author string length
byte[]  Author string
word    Copyright string length
byte[]  Copyright string
word    Comment string length
byte[]  Comment string
== Codecs ==
Codecs in RealMedia are identified by the following four character codes:
===== Audio =====
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)
* [[RealAudio_dnet|dnet]] - AC3
* [[RealAudio_sipr|sipr]] - Sipro
* [[RealAudio_cook|cook]] - Cook
* [[RealAudio_atrc|atrc]] - ATRAC
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format
* [[RealAudio_raac|raac]] - LC-AAC
* [[RealAudio_racp|racp]] - HE-AAC
===== Video =====
* [[RealVideo|rv10]] - H.263
* [[RealVideo|rv13]] - H.263
* [[RealVideo|rv20]] - H.263+
* [[RealVideo|rv30]] - Unknown format
* [[RealVideo|rv40]] - Unknown format
[[Category: Container Formats]]
== RA Format ==
This is the old audio-only RealAudio file format.
A very similar structure is also used to describe audio streams in RM files.
The audio data part is just a stream of bytes with no structure.
There is no index in .ra files, but seeking is possible because the codecs are CBR.
=== RealAudio 1.0 file  (.ra version 3) ===
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.
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 3)
word    Header size - 7
byte[10] Unknown
dword    Data size
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
byte    Unknown *
byte    Fourcc string length (always 4) *
byte[]  Fourcc string (always "lpcJ") *
  Audio data
Notes:
* 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).
* The informative fields (title, author, copyright and comment) can have zero length.
=== RealAudio 2.0 file (.ra version 4) ===
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.
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 4)
word    Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word    Version2 (always equal to version)
dword    Header size - 16
word    Codec flavor
dword    Coded frame size
byte[12] Unknown
word    Sub packet h
word    Frame size
word    Subpacket size
word    Unknown
word    Samplerate
word    Unknown
word    Sample size
word    Channels
byte    Interleaver ID string length (always 4)
byte[]  Interleaver ID string
byte    FourCC string length (always 4)
byte[]  FourCC string
byte[3]  Unknown
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
  Audio Data
Notes:
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
* The informative fields (title, author, copyright and comment) can have zero length.
=== .ra version 5 ===
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.
== RealMedia Format ==
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.
A RealMedia file consists of a series of chunks. Each chunk has the following format:
dword  chunk type ([[FOURCC]])
dword  chunk size, including 8-byte preamble
word  chunk version
byte[] chunk payload
Real chunk types:
* .RMF: RealMedia file header (only one per file, must be the first chunk)
* PROP: File properties (only one per file)
* MDPR: Stream properties (one for each stream)
* CONT: Content description/metadata (typically one per file)
* DATA: File data
* INDX: File index (typically one per stream)
=== RealMedia file header (.RMF) ===
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.
A .RMF chunk has the following format
dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers
Notes:
* All known sample files have version equal to 0.
* 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.
=== File properties header (PROP) ===
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.
A PROP chunk has the following format
dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word  Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word  Number of streams in the file
word  Flags (bitfield, see below)
Flags:
* bit 0: file can be saved on disk
* bit 1: PerfectPlay can be used (extra buffering)
* bit 2: the file is a live broadcast
=== Media properties header (MDPR) ===
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.
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.
There is one MDPR chunk for every stream in the file.
A MDPR chunk has the following format
dword  Chunk type ('MDPR')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Stream start offset in ms
dword  Preroll in ms (to be subtracted from timestamps?)
dword  Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword  Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type
=== Content description header (CONT) ===
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.
A CONT chunk has the following format
dword  Chunk type ('CONT')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Title string length
byte[]  Title string
word    Author string length
byte[]  Author string
word    Copyright string length
byte[]  Copyright string
word    Comment string length
byte[]  Comment string
== Codecs ==
Codecs in RealMedia are identified by the following four character codes:
===== Audio =====
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)
* [[RealAudio_dnet|dnet]] - AC3
* [[RealAudio_sipr|sipr]] - Sipro
* [[RealAudio_cook|cook]] - Cook
* [[RealAudio_atrc|atrc]] - ATRAC
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format
* [[RealAudio_raac|raac]] - LC-AAC
* [[RealAudio_racp|racp]] - HE-AAC
===== Video =====
* [[RealVideo|rv10]] - H.263
* [[RealVideo|rv13]] - H.263
* [[RealVideo|rv20]] - H.263+
* [[RealVideo|rv30]] - Unknown format
* [[RealVideo|rv40]] - Unknown format
[[Category: Container Formats]]
== RA Format ==
This is the old audio-only RealAudio file format.
A very similar structure is also used to describe audio streams in RM files.
The audio data part is just a stream of bytes with no structure.
There is no index in .ra files, but seeking is possible because the codecs are CBR.
=== RealAudio 1.0 file  (.ra version 3) ===
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.
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 3)
word    Header size - 7
byte[10] Unknown
dword    Data size
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
byte    Unknown *
byte    Fourcc string length (always 4) *
byte[]  Fourcc string (always "lpcJ") *
  Audio data
Notes:
* 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).
* The informative fields (title, author, copyright and comment) can have zero length.
=== RealAudio 2.0 file (.ra version 4) ===
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.
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 4)
word    Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word    Version2 (always equal to version)
dword    Header size - 16
word    Codec flavor
dword    Coded frame size
byte[12] Unknown
word    Sub packet h
word    Frame size
word    Subpacket size
word    Unknown
word    Samplerate
word    Unknown
word    Sample size
word    Channels
byte    Interleaver ID string length (always 4)
byte[]  Interleaver ID string
byte    FourCC string length (always 4)
byte[]  FourCC string
byte[3]  Unknown
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
  Audio Data
Notes:
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
* The informative fields (title, author, copyright and comment) can have zero length.
=== .ra version 5 ===
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.
== RealMedia Format ==
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.
A RealMedia file consists of a series of chunks. Each chunk has the following format:
dword  chunk type ([[FOURCC]])
dword  chunk size, including 8-byte preamble
word  chunk version
byte[] chunk payload
Real chunk types:
* .RMF: RealMedia file header (only one per file, must be the first chunk)
* PROP: File properties (only one per file)
* MDPR: Stream properties (one for each stream)
* CONT: Content description/metadata (typically one per file)
* DATA: File data
* INDX: File index (typically one per stream)
=== RealMedia file header (.RMF) ===
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.
A .RMF chunk has the following format
dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers
Notes:
* All known sample files have version equal to 0.
* 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.
=== File properties header (PROP) ===
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.
A PROP chunk has the following format
dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word  Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word  Number of streams in the file
word  Flags (bitfield, see below)
Flags:
* bit 0: file can be saved on disk
* bit 1: PerfectPlay can be used (extra buffering)
* bit 2: the file is a live broadcast
=== Media properties header (MDPR) ===
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.
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.
There is one MDPR chunk for every stream in the file.
A MDPR chunk has the following format
dword  Chunk type ('MDPR')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Stream start offset in ms
dword  Preroll in ms (to be subtracted from timestamps?)
dword  Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword  Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type
=== Content description header (CONT) ===
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.
A CONT chunk has the following format
dword  Chunk type ('CONT')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Title string length
byte[]  Title string
word    Author string length
byte[]  Author string
word    Copyright string length
byte[]  Copyright string
word    Comment string length
byte[]  Comment string
== Codecs ==
Codecs in RealMedia are identified by the following four character codes:
===== Audio =====
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)
* [[RealAudio_dnet|dnet]] - AC3
* [[RealAudio_sipr|sipr]] - Sipro
* [[RealAudio_cook|cook]] - Cook
* [[RealAudio_atrc|atrc]] - ATRAC
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format
* [[RealAudio_raac|raac]] - LC-AAC
* [[RealAudio_racp|racp]] - HE-AAC
===== Video =====
* [[RealVideo|rv10]] - H.263
* [[RealVideo|rv13]] - H.263
* [[RealVideo|rv20]] - H.263+
* [[RealVideo|rv30]] - Unknown format
* [[RealVideo|rv40]] - Unknown format
[[Category: Container Formats]]
== RA Format ==
This is the old audio-only RealAudio file format.
A very similar structure is also used to describe audio streams in RM files.
The audio data part is just a stream of bytes with no structure.
There is no index in .ra files, but seeking is possible because the codecs are CBR.
=== RealAudio 1.0 file  (.ra version 3) ===
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.
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 3)
word    Header size - 7
byte[10] Unknown
dword    Data size
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
byte    Unknown *
byte    Fourcc string length (always 4) *
byte[]  Fourcc string (always "lpcJ") *
  Audio data
Notes:
* 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).
* The informative fields (title, author, copyright and comment) can have zero length.
=== RealAudio 2.0 file (.ra version 4) ===
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.
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 4)
word    Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word    Version2 (always equal to version)
dword    Header size - 16
word    Codec flavor
dword    Coded frame size
byte[12] Unknown
word    Sub packet h
word    Frame size
word    Subpacket size
word    Unknown
word    Samplerate
word    Unknown
word    Sample size
word    Channels
byte    Interleaver ID string length (always 4)
byte[]  Interleaver ID string
byte    FourCC string length (always 4)
byte[]  FourCC string
byte[3]  Unknown
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
  Audio Data
Notes:
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
* The informative fields (title, author, copyright and comment) can have zero length.
=== .ra version 5 ===
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.
== RealMedia Format ==
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.
A RealMedia file consists of a series of chunks. Each chunk has the following format:
dword  chunk type ([[FOURCC]])
dword  chunk size, including 8-byte preamble
word  chunk version
byte[] chunk payload
Real chunk types:
* .RMF: RealMedia file header (only one per file, must be the first chunk)
* PROP: File properties (only one per file)
* MDPR: Stream properties (one for each stream)
* CONT: Content description/metadata (typically one per file)
* DATA: File data
* INDX: File index (typically one per stream)
=== RealMedia file header (.RMF) ===
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.
A .RMF chunk has the following format
dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers
Notes:
* All known sample files have version equal to 0.
* 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.
=== File properties header (PROP) ===
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.
A PROP chunk has the following format
dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word  Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word  Number of streams in the file
word  Flags (bitfield, see below)
Flags:
* bit 0: file can be saved on disk
* bit 1: PerfectPlay can be used (extra buffering)
* bit 2: the file is a live broadcast
=== Media properties header (MDPR) ===
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.
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.
There is one MDPR chunk for every stream in the file.
A MDPR chunk has the following format
dword  Chunk type ('MDPR')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Stream start offset in ms
dword  Preroll in ms (to be subtracted from timestamps?)
dword  Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword  Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type
=== Content description header (CONT) ===
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.
A CONT chunk has the following format
dword  Chunk type ('CONT')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Title string length
byte[]  Title string
word    Author string length
byte[]  Author string
word    Copyright string length
byte[]  Copyright string
word    Comment string length
byte[]  Comment string
== Codecs ==
Codecs in RealMedia are identified by the following four character codes:
===== Audio =====
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)
* [[RealAudio_dnet|dnet]] - AC3
* [[RealAudio_sipr|sipr]] - Sipro
* [[RealAudio_cook|cook]] - Cook
* [[RealAudio_atrc|atrc]] - ATRAC
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format
* [[RealAudio_raac|raac]] - LC-AAC
* [[RealAudio_racp|racp]] - HE-AAC
===== Video =====
* [[RealVideo|rv10]] - H.263
* [[RealVideo|rv13]] - H.263
* [[RealVideo|rv20]] - H.263+
* [[RealVideo|rv30]] - Unknown format
* [[RealVideo|rv40]] - Unknown format
[[Category: Container Formats]]
== RA Format ==
This is the old audio-only RealAudio file format.
A very similar structure is also used to describe audio streams in RM files.
The audio data part is just a stream of bytes with no structure.
There is no index in .ra files, but seeking is possible because the codecs are CBR.
=== RealAudio 1.0 file  (.ra version 3) ===
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.
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 3)
word    Header size - 7
byte[10] Unknown
dword    Data size
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
byte    Unknown *
byte    Fourcc string length (always 4) *
byte[]  Fourcc string (always "lpcJ") *
  Audio data
Notes:
* 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).
* The informative fields (title, author, copyright and comment) can have zero length.
=== RealAudio 2.0 file (.ra version 4) ===
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.
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 4)
word    Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word    Version2 (always equal to version)
dword    Header size - 16
word    Codec flavor
dword    Coded frame size
byte[12] Unknown
word    Sub packet h
word    Frame size
word    Subpacket size
word    Unknown
word    Samplerate
word    Unknown
word    Sample size
word    Channels
byte    Interleaver ID string length (always 4)
byte[]  Interleaver ID string
byte    FourCC string length (always 4)
byte[]  FourCC string
byte[3]  Unknown
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
  Audio Data
Notes:
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
* The informative fields (title, author, copyright and comment) can have zero length.
=== .ra version 5 ===
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.
== RealMedia Format ==
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.
A RealMedia file consists of a series of chunks. Each chunk has the following format:
dword  chunk type ([[FOURCC]])
dword  chunk size, including 8-byte preamble
word  chunk version
byte[] chunk payload
Real chunk types:
* .RMF: RealMedia file header (only one per file, must be the first chunk)
* PROP: File properties (only one per file)
* MDPR: Stream properties (one for each stream)
* CONT: Content description/metadata (typically one per file)
* DATA: File data
* INDX: File index (typically one per stream)
=== RealMedia file header (.RMF) ===
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.
A .RMF chunk has the following format
dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers
Notes:
* All known sample files have version equal to 0.
* 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.
=== File properties header (PROP) ===
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.
A PROP chunk has the following format
dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word  Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word  Number of streams in the file
word  Flags (bitfield, see below)
Flags:
* bit 0: file can be saved on disk
* bit 1: PerfectPlay can be used (extra buffering)
* bit 2: the file is a live broadcast
=== Media properties header (MDPR) ===
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.
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.
There is one MDPR chunk for every stream in the file.
A MDPR chunk has the following format
dword  Chunk type ('MDPR')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Stream start offset in ms
dword  Preroll in ms (to be subtracted from timestamps?)
dword  Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword  Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type
=== Content description header (CONT) ===
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.
A CONT chunk has the following format
dword  Chunk type ('CONT')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Title string length
byte[]  Title string
word    Author string length
byte[]  Author string
word    Copyright string length
byte[]  Copyright string
word    Comment string length
byte[]  Comment string
== Codecs ==
Codecs in RealMedia are identified by the following four character codes:
===== Audio =====
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)
* [[RealAudio_dnet|dnet]] - AC3
* [[RealAudio_sipr|sipr]] - Sipro
* [[RealAudio_cook|cook]] - Cook
* [[RealAudio_atrc|atrc]] - ATRAC
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format
* [[RealAudio_raac|raac]] - LC-AAC
* [[RealAudio_racp|racp]] - HE-AAC
===== Video =====
* [[RealVideo|rv10]] - H.263
* [[RealVideo|rv13]] - H.263
* [[RealVideo|rv20]] - H.263+
* [[RealVideo|rv30]] - Unknown format
* [[RealVideo|rv40]] - Unknown format
[[Category: Container Formats]]
== RA Format ==
This is the old audio-only RealAudio file format.
A very similar structure is also used to describe audio streams in RM files.
The audio data part is just a stream of bytes with no structure.
There is no index in .ra files, but seeking is possible because the codecs are CBR.
=== RealAudio 1.0 file  (.ra version 3) ===
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.
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 3)
word    Header size - 7
byte[10] Unknown
dword    Data size
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
byte    Unknown *
byte    Fourcc string length (always 4) *
byte[]  Fourcc string (always "lpcJ") *
  Audio data
Notes:
* 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).
* The informative fields (title, author, copyright and comment) can have zero length.
=== RealAudio 2.0 file (.ra version 4) ===
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.
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 4)
word    Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word    Version2 (always equal to version)
dword    Header size - 16
word    Codec flavor
dword    Coded frame size
byte[12] Unknown
word    Sub packet h
word    Frame size
word    Subpacket size
word    Unknown
word    Samplerate
word    Unknown
word    Sample size
word    Channels
byte    Interleaver ID string length (always 4)
byte[]  Interleaver ID string
byte    FourCC string length (always 4)
byte[]  FourCC string
byte[3]  Unknown
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
  Audio Data
Notes:
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
* The informative fields (title, author, copyright and comment) can have zero length.
=== .ra version 5 ===
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.
== RealMedia Format ==
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.
A RealMedia file consists of a series of chunks. Each chunk has the following format:
dword  chunk type ([[FOURCC]])
dword  chunk size, including 8-byte preamble
word  chunk version
byte[] chunk payload
Real chunk types:
* .RMF: RealMedia file header (only one per file, must be the first chunk)
* PROP: File properties (only one per file)
* MDPR: Stream properties (one for each stream)
* CONT: Content description/metadata (typically one per file)
* DATA: File data
* INDX: File index (typically one per stream)
=== RealMedia file header (.RMF) ===
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.
A .RMF chunk has the following format
dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers
Notes:
* All known sample files have version equal to 0.
* 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.
=== File properties header (PROP) ===
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.
A PROP chunk has the following format
dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word  Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word  Number of streams in the file
word  Flags (bitfield, see below)
Flags:
* bit 0: file can be saved on disk
* bit 1: PerfectPlay can be used (extra buffering)
* bit 2: the file is a live broadcast
=== Media properties header (MDPR) ===
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.
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.
There is one MDPR chunk for every stream in the file.
A MDPR chunk has the following format
dword  Chunk type ('MDPR')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Stream start offset in ms
dword  Preroll in ms (to be subtracted from timestamps?)
dword  Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword  Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type
=== Content description header (CONT) ===
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.
A CONT chunk has the following format
dword  Chunk type ('CONT')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Title string length
byte[]  Title string
word    Author string length
byte[]  Author string
word    Copyright string length
byte[]  Copyright string
word    Comment string length
byte[]  Comment string
== Codecs ==
Codecs in RealMedia are identified by the following four character codes:
===== Audio =====
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)
* [[RealAudio_dnet|dnet]] - AC3
* [[RealAudio_sipr|sipr]] - Sipro
* [[RealAudio_cook|cook]] - Cook
* [[RealAudio_atrc|atrc]] - ATRAC
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format
* [[RealAudio_raac|raac]] - LC-AAC
* [[RealAudio_racp|racp]] - HE-AAC
===== Video =====
* [[RealVideo|rv10]] - H.263
* [[RealVideo|rv13]] - H.263
* [[RealVideo|rv20]] - H.263+
* [[RealVideo|rv30]] - Unknown format
* [[RealVideo|rv40]] - Unknown format
[[Category: Container Formats]]
== RA Format ==
This is the old audio-only RealAudio file format.
A very similar structure is also used to describe audio streams in RM files.
The audio data part is just a stream of bytes with no structure.
There is no index in .ra files, but seeking is possible because the codecs are CBR.
=== RealAudio 1.0 file  (.ra version 3) ===
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.
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 3)
word    Header size - 7
byte[10] Unknown
dword    Data size
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
byte    Unknown *
byte    Fourcc string length (always 4) *
byte[]  Fourcc string (always "lpcJ") *
  Audio data
Notes:
* 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).
* The informative fields (title, author, copyright and comment) can have zero length.
=== RealAudio 2.0 file (.ra version 4) ===
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.
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 4)
word    Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word    Version2 (always equal to version)
dword    Header size - 16
word    Codec flavor
dword    Coded frame size
byte[12] Unknown
word    Sub packet h
word    Frame size
word    Subpacket size
word    Unknown
word    Samplerate
word    Unknown
word    Sample size
word    Channels
byte    Interleaver ID string length (always 4)
byte[]  Interleaver ID string
byte    FourCC string length (always 4)
byte[]  FourCC string
byte[3]  Unknown
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
  Audio Data
Notes:
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
* The informative fields (title, author, copyright and comment) can have zero length.
=== .ra version 5 ===
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.
== RealMedia Format ==
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.
A RealMedia file consists of a series of chunks. Each chunk has the following format:
dword  chunk type ([[FOURCC]])
dword  chunk size, including 8-byte preamble
word  chunk version
byte[] chunk payload
Real chunk types:
* .RMF: RealMedia file header (only one per file, must be the first chunk)
* PROP: File properties (only one per file)
* MDPR: Stream properties (one for each stream)
* CONT: Content description/metadata (typically one per file)
* DATA: File data
* INDX: File index (typically one per stream)
=== RealMedia file header (.RMF) ===
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.
A .RMF chunk has the following format
dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers
Notes:
* All known sample files have version equal to 0.
* 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.
=== File properties header (PROP) ===
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.
A PROP chunk has the following format
dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word  Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word  Number of streams in the file
word  Flags (bitfield, see below)
Flags:
* bit 0: file can be saved on disk
* bit 1: PerfectPlay can be used (extra buffering)
* bit 2: the file is a live broadcast
=== Media properties header (MDPR) ===
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.
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.
There is one MDPR chunk for every stream in the file.
A MDPR chunk has the following format
dword  Chunk type ('MDPR')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Stream start offset in ms
dword  Preroll in ms (to be subtracted from timestamps?)
dword  Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword  Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type
=== Content description header (CONT) ===
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.
A CONT chunk has the following format
dword  Chunk type ('CONT')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Title string length
byte[]  Title string
word    Author string length
byte[]  Author string
word    Copyright string length
byte[]  Copyright string
word    Comment string length
byte[]  Comment string
== Codecs ==
Codecs in RealMedia are identified by the following four character codes:
===== Audio =====
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)
* [[RealAudio_dnet|dnet]] - AC3
* [[RealAudio_sipr|sipr]] - Sipro
* [[RealAudio_cook|cook]] - Cook
* [[RealAudio_atrc|atrc]] - ATRAC
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format
* [[RealAudio_raac|raac]] - LC-AAC
* [[RealAudio_racp|racp]] - HE-AAC
===== Video =====
* [[RealVideo|rv10]] - H.263
* [[RealVideo|rv13]] - H.263
* [[RealVideo|rv20]] - H.263+
* [[RealVideo|rv30]] - Unknown format
* [[RealVideo|rv40]] - Unknown format
[[Category: Container Formats]]
== RA Format ==
This is the old audio-only RealAudio file format.
A very similar structure is also used to describe audio streams in RM files.
The audio data part is just a stream of bytes with no structure.
There is no index in .ra files, but seeking is possible because the codecs are CBR.
=== RealAudio 1.0 file  (.ra version 3) ===
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.
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 3)
word    Header size - 7
byte[10] Unknown
dword    Data size
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
byte    Unknown *
byte    Fourcc string length (always 4) *
byte[]  Fourcc string (always "lpcJ") *
  Audio data
Notes:
* 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).
* The informative fields (title, author, copyright and comment) can have zero length.
=== RealAudio 2.0 file (.ra version 4) ===
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.
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 4)
word    Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word    Version2 (always equal to version)
dword    Header size - 16
word    Codec flavor
dword    Coded frame size
byte[12] Unknown
word    Sub packet h
word    Frame size
word    Subpacket size
word    Unknown
word    Samplerate
word    Unknown
word    Sample size
word    Channels
byte    Interleaver ID string length (always 4)
byte[]  Interleaver ID string
byte    FourCC string length (always 4)
byte[]  FourCC string
byte[3]  Unknown
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
  Audio Data
Notes:
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
* The informative fields (title, author, copyright and comment) can have zero length.
=== .ra version 5 ===
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.
== RealMedia Format ==
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.
A RealMedia file consists of a series of chunks. Each chunk has the following format:
dword  chunk type ([[FOURCC]])
dword  chunk size, including 8-byte preamble
word  chunk version
byte[] chunk payload
Real chunk types:
* .RMF: RealMedia file header (only one per file, must be the first chunk)
* PROP: File properties (only one per file)
* MDPR: Stream properties (one for each stream)
* CONT: Content description/metadata (typically one per file)
* DATA: File data
* INDX: File index (typically one per stream)
=== RealMedia file header (.RMF) ===
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.
A .RMF chunk has the following format
dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers
Notes:
* All known sample files have version equal to 0.
* 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.
=== File properties header (PROP) ===
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.
A PROP chunk has the following format
dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word  Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word  Number of streams in the file
word  Flags (bitfield, see below)
Flags:
* bit 0: file can be saved on disk
* bit 1: PerfectPlay can be used (extra buffering)
* bit 2: the file is a live broadcast
=== Media properties header (MDPR) ===
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.
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.
There is one MDPR chunk for every stream in the file.
A MDPR chunk has the following format
dword  Chunk type ('MDPR')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Stream start offset in ms
dword  Preroll in ms (to be subtracted from timestamps?)
dword  Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword  Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type
=== Content description header (CONT) ===
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.
A CONT chunk has the following format
dword  Chunk type ('CONT')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Title string length
byte[]  Title string
word    Author string length
byte[]  Author string
word    Copyright string length
byte[]  Copyright string
word    Comment string length
byte[]  Comment string
== Codecs ==
Codecs in RealMedia are identified by the following four character codes:
===== Audio =====
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)
* [[RealAudio_dnet|dnet]] - AC3
* [[RealAudio_sipr|sipr]] - Sipro
* [[RealAudio_cook|cook]] - Cook
* [[RealAudio_atrc|atrc]] - ATRAC
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format
* [[RealAudio_raac|raac]] - LC-AAC
* [[RealAudio_racp|racp]] - HE-AAC
===== Video =====
* [[RealVideo|rv10]] - H.263
* [[RealVideo|rv13]] - H.263
* [[RealVideo|rv20]] - H.263+
* [[RealVideo|rv30]] - Unknown format
* [[RealVideo|rv40]] - Unknown format
[[Category: Container Formats]]
== RA Format ==
This is the old audio-only RealAudio file format.
A very similar structure is also used to describe audio streams in RM files.
The audio data part is just a stream of bytes with no structure.
There is no index in .ra files, but seeking is possible because the codecs are CBR.
=== RealAudio 1.0 file  (.ra version 3) ===
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.
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 3)
word    Header size - 7
byte[10] Unknown
dword    Data size
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
byte    Unknown *
byte    Fourcc string length (always 4) *
byte[]  Fourcc string (always "lpcJ") *
  Audio data
Notes:
* 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).
* The informative fields (title, author, copyright and comment) can have zero length.
=== RealAudio 2.0 file (.ra version 4) ===
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.
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 4)
word    Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word    Version2 (always equal to version)
dword    Header size - 16
word    Codec flavor
dword    Coded frame size
byte[12] Unknown
word    Sub packet h
word    Frame size
word    Subpacket size
word    Unknown
word    Samplerate
word    Unknown
word    Sample size
word    Channels
byte    Interleaver ID string length (always 4)
byte[]  Interleaver ID string
byte    FourCC string length (always 4)
byte[]  FourCC string
byte[3]  Unknown
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
  Audio Data
Notes:
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
* The informative fields (title, author, copyright and comment) can have zero length.
=== .ra version 5 ===
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.
== RealMedia Format ==
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.
A RealMedia file consists of a series of chunks. Each chunk has the following format:
dword  chunk type ([[FOURCC]])
dword  chunk size, including 8-byte preamble
word  chunk version
byte[] chunk payload
Real chunk types:
* .RMF: RealMedia file header (only one per file, must be the first chunk)
* PROP: File properties (only one per file)
* MDPR: Stream properties (one for each stream)
* CONT: Content description/metadata (typically one per file)
* DATA: File data
* INDX: File index (typically one per stream)
=== RealMedia file header (.RMF) ===
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.
A .RMF chunk has the following format
dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers
Notes:
* All known sample files have version equal to 0.
* 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.
=== File properties header (PROP) ===
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.
A PROP chunk has the following format
dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word  Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word  Number of streams in the file
word  Flags (bitfield, see below)
Flags:
* bit 0: file can be saved on disk
* bit 1: PerfectPlay can be used (extra buffering)
* bit 2: the file is a live broadcast
=== Media properties header (MDPR) ===
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.
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.
There is one MDPR chunk for every stream in the file.
A MDPR chunk has the following format
dword  Chunk type ('MDPR')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Stream start offset in ms
dword  Preroll in ms (to be subtracted from timestamps?)
dword  Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword  Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type
=== Content description header (CONT) ===
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.
A CONT chunk has the following format
dword  Chunk type ('CONT')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Title string length
byte[]  Title string
word    Author string length
byte[]  Author string
word    Copyright string length
byte[]  Copyright string
word    Comment string length
byte[]  Comment string
== Codecs ==
Codecs in RealMedia are identified by the following four character codes:
===== Audio =====
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)
* [[RealAudio_dnet|dnet]] - AC3
* [[RealAudio_sipr|sipr]] - Sipro
* [[RealAudio_cook|cook]] - Cook
* [[RealAudio_atrc|atrc]] - ATRAC
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format
* [[RealAudio_raac|raac]] - LC-AAC
* [[RealAudio_racp|racp]] - HE-AAC
===== Video =====
* [[RealVideo|rv10]] - H.263
* [[RealVideo|rv13]] - H.263
* [[RealVideo|rv20]] - H.263+
* [[RealVideo|rv30]] - Unknown format
* [[RealVideo|rv40]] - Unknown format
[[Category: Container Formats]]
== RA Format ==
This is the old audio-only RealAudio file format.
A very similar structure is also used to describe audio streams in RM files.
The audio data part is just a stream of bytes with no structure.
There is no index in .ra files, but seeking is possible because the codecs are CBR.
=== RealAudio 1.0 file  (.ra version 3) ===
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.
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 3)
word    Header size - 7
byte[10] Unknown
dword    Data size
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
byte    Unknown *
byte    Fourcc string length (always 4) *
byte[]  Fourcc string (always "lpcJ") *
  Audio data
Notes:
* 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).
* The informative fields (title, author, copyright and comment) can have zero length.
=== RealAudio 2.0 file (.ra version 4) ===
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.
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 4)
word    Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word    Version2 (always equal to version)
dword    Header size - 16
word    Codec flavor
dword    Coded frame size
byte[12] Unknown
word    Sub packet h
word    Frame size
word    Subpacket size
word    Unknown
word    Samplerate
word    Unknown
word    Sample size
word    Channels
byte    Interleaver ID string length (always 4)
byte[]  Interleaver ID string
byte    FourCC string length (always 4)
byte[]  FourCC string
byte[3]  Unknown
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
  Audio Data
Notes:
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
* The informative fields (title, author, copyright and comment) can have zero length.
=== .ra version 5 ===
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.
== RealMedia Format ==
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.
A RealMedia file consists of a series of chunks. Each chunk has the following format:
dword  chunk type ([[FOURCC]])
dword  chunk size, including 8-byte preamble
word  chunk version
byte[] chunk payload
Real chunk types:
* .RMF: RealMedia file header (only one per file, must be the first chunk)
* PROP: File properties (only one per file)
* MDPR: Stream properties (one for each stream)
* CONT: Content description/metadata (typically one per file)
* DATA: File data
* INDX: File index (typically one per stream)
=== RealMedia file header (.RMF) ===
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.
A .RMF chunk has the following format
dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers
Notes:
* All known sample files have version equal to 0.
* 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.
=== File properties header (PROP) ===
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.
A PROP chunk has the following format
dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word  Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word  Number of streams in the file
word  Flags (bitfield, see below)
Flags:
* bit 0: file can be saved on disk
* bit 1: PerfectPlay can be used (extra buffering)
* bit 2: the file is a live broadcast
=== Media properties header (MDPR) ===
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.
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.
There is one MDPR chunk for every stream in the file.
A MDPR chunk has the following format
dword  Chunk type ('MDPR')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Stream start offset in ms
dword  Preroll in ms (to be subtracted from timestamps?)
dword  Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword  Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type
=== Content description header (CONT) ===
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.
A CONT chunk has the following format
dword  Chunk type ('CONT')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Title string length
byte[]  Title string
word    Author string length
byte[]  Author string
word    Copyright string length
byte[]  Copyright string
word    Comment string length
byte[]  Comment string
== Codecs ==
Codecs in RealMedia are identified by the following four character codes:
===== Audio =====
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)
* [[RealAudio_dnet|dnet]] - AC3
* [[RealAudio_sipr|sipr]] - Sipro
* [[RealAudio_cook|cook]] - Cook
* [[RealAudio_atrc|atrc]] - ATRAC
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format
* [[RealAudio_raac|raac]] - LC-AAC
* [[RealAudio_racp|racp]] - HE-AAC
===== Video =====
* [[RealVideo|rv10]] - H.263
* [[RealVideo|rv13]] - H.263
* [[RealVideo|rv20]] - H.263+
* [[RealVideo|rv30]] - Unknown format
* [[RealVideo|rv40]] - Unknown format
[[Category: Container Formats]]
== RA Format ==
This is the old audio-only RealAudio file format.
A very similar structure is also used to describe audio streams in RM files.
The audio data part is just a stream of bytes with no structure.
There is no index in .ra files, but seeking is possible because the codecs are CBR.
=== RealAudio 1.0 file  (.ra version 3) ===
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.
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 3)
word    Header size - 7
byte[10] Unknown
dword    Data size
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
byte    Unknown *
byte    Fourcc string length (always 4) *
byte[]  Fourcc string (always "lpcJ") *
  Audio data
Notes:
* 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).
* The informative fields (title, author, copyright and comment) can have zero length.
=== RealAudio 2.0 file (.ra version 4) ===
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.
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 4)
word    Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word    Version2 (always equal to version)
dword    Header size - 16
word    Codec flavor
dword    Coded frame size
byte[12] Unknown
word    Sub packet h
word    Frame size
word    Subpacket size
word    Unknown
word    Samplerate
word    Unknown
word    Sample size
word    Channels
byte    Interleaver ID string length (always 4)
byte[]  Interleaver ID string
byte    FourCC string length (always 4)
byte[]  FourCC string
byte[3]  Unknown
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
  Audio Data
Notes:
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
* The informative fields (title, author, copyright and comment) can have zero length.
=== .ra version 5 ===
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.
== RealMedia Format ==
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.
A RealMedia file consists of a series of chunks. Each chunk has the following format:
dword  chunk type ([[FOURCC]])
dword  chunk size, including 8-byte preamble
word  chunk version
byte[] chunk payload
Real chunk types:
* .RMF: RealMedia file header (only one per file, must be the first chunk)
* PROP: File properties (only one per file)
* MDPR: Stream properties (one for each stream)
* CONT: Content description/metadata (typically one per file)
* DATA: File data
* INDX: File index (typically one per stream)
=== RealMedia file header (.RMF) ===
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.
A .RMF chunk has the following format
dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers
Notes:
* All known sample files have version equal to 0.
* 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.
=== File properties header (PROP) ===
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.
A PROP chunk has the following format
dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word  Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word  Number of streams in the file
word  Flags (bitfield, see below)
Flags:
* bit 0: file can be saved on disk
* bit 1: PerfectPlay can be used (extra buffering)
* bit 2: the file is a live broadcast
=== Media properties header (MDPR) ===
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.
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.
There is one MDPR chunk for every stream in the file.
A MDPR chunk has the following format
dword  Chunk type ('MDPR')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Stream start offset in ms
dword  Preroll in ms (to be subtracted from timestamps?)
dword  Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword  Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type
=== Content description header (CONT) ===
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.
A CONT chunk has the following format
dword  Chunk type ('CONT')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Title string length
byte[]  Title string
word    Author string length
byte[]  Author string
word    Copyright string length
byte[]  Copyright string
word    Comment string length
byte[]  Comment string
== Codecs ==
Codecs in RealMedia are identified by the following four character codes:
===== Audio =====
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)
* [[RealAudio_dnet|dnet]] - AC3
* [[RealAudio_sipr|sipr]] - Sipro
* [[RealAudio_cook|cook]] - Cook
* [[RealAudio_atrc|atrc]] - ATRAC
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format
* [[RealAudio_raac|raac]] - LC-AAC
* [[RealAudio_racp|racp]] - HE-AAC
===== Video =====
* [[RealVideo|rv10]] - H.263
* [[RealVideo|rv13]] - H.263
* [[RealVideo|rv20]] - H.263+
* [[RealVideo|rv30]] - Unknown format
* [[RealVideo|rv40]] - Unknown format
[[Category: Container Formats]]
== RA Format ==
This is the old audio-only RealAudio file format.
A very similar structure is also used to describe audio streams in RM files.
The audio data part is just a stream of bytes with no structure.
There is no index in .ra files, but seeking is possible because the codecs are CBR.
=== RealAudio 1.0 file  (.ra version 3) ===
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.
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 3)
word    Header size - 7
byte[10] Unknown
dword    Data size
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
byte    Unknown *
byte    Fourcc string length (always 4) *
byte[]  Fourcc string (always "lpcJ") *
  Audio data
Notes:
* 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).
* The informative fields (title, author, copyright and comment) can have zero length.
=== RealAudio 2.0 file (.ra version 4) ===
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.
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 4)
word    Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word    Version2 (always equal to version)
dword    Header size - 16
word    Codec flavor
dword    Coded frame size
byte[12] Unknown
word    Sub packet h
word    Frame size
word    Subpacket size
word    Unknown
word    Samplerate
word    Unknown
word    Sample size
word    Channels
byte    Interleaver ID string length (always 4)
byte[]  Interleaver ID string
byte    FourCC string length (always 4)
byte[]  FourCC string
byte[3]  Unknown
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
  Audio Data
Notes:
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
* The informative fields (title, author, copyright and comment) can have zero length.
=== .ra version 5 ===
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.
== RealMedia Format ==
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.
A RealMedia file consists of a series of chunks. Each chunk has the following format:
dword  chunk type ([[FOURCC]])
dword  chunk size, including 8-byte preamble
word  chunk version
byte[] chunk payload
Real chunk types:
* .RMF: RealMedia file header (only one per file, must be the first chunk)
* PROP: File properties (only one per file)
* MDPR: Stream properties (one for each stream)
* CONT: Content description/metadata (typically one per file)
* DATA: File data
* INDX: File index (typically one per stream)
=== RealMedia file header (.RMF) ===
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.
A .RMF chunk has the following format
dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers
Notes:
* All known sample files have version equal to 0.
* 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.
=== File properties header (PROP) ===
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.
A PROP chunk has the following format
dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word  Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word  Number of streams in the file
word  Flags (bitfield, see below)
Flags:
* bit 0: file can be saved on disk
* bit 1: PerfectPlay can be used (extra buffering)
* bit 2: the file is a live broadcast
=== Media properties header (MDPR) ===
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.
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.
There is one MDPR chunk for every stream in the file.
A MDPR chunk has the following format
dword  Chunk type ('MDPR')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Stream start offset in ms
dword  Preroll in ms (to be subtracted from timestamps?)
dword  Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword  Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type
=== Content description header (CONT) ===
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.
A CONT chunk has the following format
dword  Chunk type ('CONT')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Title string length
byte[]  Title string
word    Author string length
byte[]  Author string
word    Copyright string length
byte[]  Copyright string
word    Comment string length
byte[]  Comment string
== Codecs ==
Codecs in RealMedia are identified by the following four character codes:
===== Audio =====
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)
* [[RealAudio_dnet|dnet]] - AC3
* [[RealAudio_sipr|sipr]] - Sipro
* [[RealAudio_cook|cook]] - Cook
* [[RealAudio_atrc|atrc]] - ATRAC
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format
* [[RealAudio_raac|raac]] - LC-AAC
* [[RealAudio_racp|racp]] - HE-AAC
===== Video =====
* [[RealVideo|rv10]] - H.263
* [[RealVideo|rv13]] - H.263
* [[RealVideo|rv20]] - H.263+
* [[RealVideo|rv30]] - Unknown format
* [[RealVideo|rv40]] - Unknown format
[[Category: Container Formats]]
== RA Format ==
This is the old audio-only RealAudio file format.
A very similar structure is also used to describe audio streams in RM files.
The audio data part is just a stream of bytes with no structure.
There is no index in .ra files, but seeking is possible because the codecs are CBR.
=== RealAudio 1.0 file  (.ra version 3) ===
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.
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 3)
word    Header size - 7
byte[10] Unknown
dword    Data size
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
byte    Unknown *
byte    Fourcc string length (always 4) *
byte[]  Fourcc string (always "lpcJ") *
  Audio data
Notes:
* 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).
* The informative fields (title, author, copyright and comment) can have zero length.
=== RealAudio 2.0 file (.ra version 4) ===
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.
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 4)
word    Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word    Version2 (always equal to version)
dword    Header size - 16
word    Codec flavor
dword    Coded frame size
byte[12] Unknown
word    Sub packet h
word    Frame size
word    Subpacket size
word    Unknown
word    Samplerate
word    Unknown
word    Sample size
word    Channels
byte    Interleaver ID string length (always 4)
byte[]  Interleaver ID string
byte    FourCC string length (always 4)
byte[]  FourCC string
byte[3]  Unknown
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
  Audio Data
Notes:
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
* The informative fields (title, author, copyright and comment) can have zero length.
=== .ra version 5 ===
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.
== RealMedia Format ==
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.
A RealMedia file consists of a series of chunks. Each chunk has the following format:
dword  chunk type ([[FOURCC]])
dword  chunk size, including 8-byte preamble
word  chunk version
byte[] chunk payload
Real chunk types:
* .RMF: RealMedia file header (only one per file, must be the first chunk)
* PROP: File properties (only one per file)
* MDPR: Stream properties (one for each stream)
* CONT: Content description/metadata (typically one per file)
* DATA: File data
* INDX: File index (typically one per stream)
=== RealMedia file header (.RMF) ===
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.
A .RMF chunk has the following format
dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers
Notes:
* All known sample files have version equal to 0.
* 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.
=== File properties header (PROP) ===
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.
A PROP chunk has the following format
dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word  Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word  Number of streams in the file
word  Flags (bitfield, see below)
Flags:
* bit 0: file can be saved on disk
* bit 1: PerfectPlay can be used (extra buffering)
* bit 2: the file is a live broadcast
=== Media properties header (MDPR) ===
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.
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.
There is one MDPR chunk for every stream in the file.
A MDPR chunk has the following format
dword  Chunk type ('MDPR')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Stream start offset in ms
dword  Preroll in ms (to be subtracted from timestamps?)
dword  Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword  Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type
=== Content description header (CONT) ===
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.
A CONT chunk has the following format
dword  Chunk type ('CONT')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Title string length
byte[]  Title string
word    Author string length
byte[]  Author string
word    Copyright string length
byte[]  Copyright string
word    Comment string length
byte[]  Comment string
== Codecs ==
Codecs in RealMedia are identified by the following four character codes:
===== Audio =====
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)
* [[RealAudio_dnet|dnet]] - AC3
* [[RealAudio_sipr|sipr]] - Sipro
* [[RealAudio_cook|cook]] - Cook
* [[RealAudio_atrc|atrc]] - ATRAC
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format
* [[RealAudio_raac|raac]] - LC-AAC
* [[RealAudio_racp|racp]] - HE-AAC
===== Video =====
* [[RealVideo|rv10]] - H.263
* [[RealVideo|rv13]] - H.263
* [[RealVideo|rv20]] - H.263+
* [[RealVideo|rv30]] - Unknown format
* [[RealVideo|rv40]] - Unknown format
[[Category: Container Formats]]
== RA Format ==
This is the old audio-only RealAudio file format.
A very similar structure is also used to describe audio streams in RM files.
The audio data part is just a stream of bytes with no structure.
There is no index in .ra files, but seeking is possible because the codecs are CBR.
=== RealAudio 1.0 file  (.ra version 3) ===
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.
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 3)
word    Header size - 7
byte[10] Unknown
dword    Data size
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
byte    Unknown *
byte    Fourcc string length (always 4) *
byte[]  Fourcc string (always "lpcJ") *
  Audio data
Notes:
* 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).
* The informative fields (title, author, copyright and comment) can have zero length.
=== RealAudio 2.0 file (.ra version 4) ===
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.
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 4)
word    Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word    Version2 (always equal to version)
dword    Header size - 16
word    Codec flavor
dword    Coded frame size
byte[12] Unknown
word    Sub packet h
word    Frame size
word    Subpacket size
word    Unknown
word    Samplerate
word    Unknown
word    Sample size
word    Channels
byte    Interleaver ID string length (always 4)
byte[]  Interleaver ID string
byte    FourCC string length (always 4)
byte[]  FourCC string
byte[3]  Unknown
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
  Audio Data
Notes:
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
* The informative fields (title, author, copyright and comment) can have zero length.
=== .ra version 5 ===
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.
== RealMedia Format ==
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.
A RealMedia file consists of a series of chunks. Each chunk has the following format:
dword  chunk type ([[FOURCC]])
dword  chunk size, including 8-byte preamble
word  chunk version
byte[] chunk payload
Real chunk types:
* .RMF: RealMedia file header (only one per file, must be the first chunk)
* PROP: File properties (only one per file)
* MDPR: Stream properties (one for each stream)
* CONT: Content description/metadata (typically one per file)
* DATA: File data
* INDX: File index (typically one per stream)
=== RealMedia file header (.RMF) ===
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.
A .RMF chunk has the following format
dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers
Notes:
* All known sample files have version equal to 0.
* 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.
=== File properties header (PROP) ===
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.
A PROP chunk has the following format
dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word  Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word  Number of streams in the file
word  Flags (bitfield, see below)
Flags:
* bit 0: file can be saved on disk
* bit 1: PerfectPlay can be used (extra buffering)
* bit 2: the file is a live broadcast
=== Media properties header (MDPR) ===
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.
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.
There is one MDPR chunk for every stream in the file.
A MDPR chunk has the following format
dword  Chunk type ('MDPR')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Stream start offset in ms
dword  Preroll in ms (to be subtracted from timestamps?)
dword  Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword  Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type
=== Content description header (CONT) ===
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.
A CONT chunk has the following format
dword  Chunk type ('CONT')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Title string length
byte[]  Title string
word    Author string length
byte[]  Author string
word    Copyright string length
byte[]  Copyright string
word    Comment string length
byte[]  Comment string
== Codecs ==
Codecs in RealMedia are identified by the following four character codes:
===== Audio =====
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)
* [[RealAudio_dnet|dnet]] - AC3
* [[RealAudio_sipr|sipr]] - Sipro
* [[RealAudio_cook|cook]] - Cook
* [[RealAudio_atrc|atrc]] - ATRAC
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format
* [[RealAudio_raac|raac]] - LC-AAC
* [[RealAudio_racp|racp]] - HE-AAC
===== Video =====
* [[RealVideo|rv10]] - H.263
* [[RealVideo|rv13]] - H.263
* [[RealVideo|rv20]] - H.263+
* [[RealVideo|rv30]] - Unknown format
* [[RealVideo|rv40]] - Unknown format
[[Category: Container Formats]]
== RA Format ==
This is the old audio-only RealAudio file format.
A very similar structure is also used to describe audio streams in RM files.
The audio data part is just a stream of bytes with no structure.
There is no index in .ra files, but seeking is possible because the codecs are CBR.
=== RealAudio 1.0 file  (.ra version 3) ===
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.
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 3)
word    Header size - 7
byte[10] Unknown
dword    Data size
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
byte    Unknown *
byte    Fourcc string length (always 4) *
byte[]  Fourcc string (always "lpcJ") *
  Audio data
Notes:
* 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).
* The informative fields (title, author, copyright and comment) can have zero length.
=== RealAudio 2.0 file (.ra version 4) ===
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.
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 4)
word    Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word    Version2 (always equal to version)
dword    Header size - 16
word    Codec flavor
dword    Coded frame size
byte[12] Unknown
word    Sub packet h
word    Frame size
word    Subpacket size
word    Unknown
word    Samplerate
word    Unknown
word    Sample size
word    Channels
byte    Interleaver ID string length (always 4)
byte[]  Interleaver ID string
byte    FourCC string length (always 4)
byte[]  FourCC string
byte[3]  Unknown
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
  Audio Data
Notes:
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
* The informative fields (title, author, copyright and comment) can have zero length.
=== .ra version 5 ===
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.
== RealMedia Format ==
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.
A RealMedia file consists of a series of chunks. Each chunk has the following format:
dword  chunk type ([[FOURCC]])
dword  chunk size, including 8-byte preamble
word  chunk version
byte[] chunk payload
Real chunk types:
* .RMF: RealMedia file header (only one per file, must be the first chunk)
* PROP: File properties (only one per file)
* MDPR: Stream properties (one for each stream)
* CONT: Content description/metadata (typically one per file)
* DATA: File data
* INDX: File index (typically one per stream)
=== RealMedia file header (.RMF) ===
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.
A .RMF chunk has the following format
dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers
Notes:
* All known sample files have version equal to 0.
* 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.
=== File properties header (PROP) ===
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.
A PROP chunk has the following format
dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word  Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word  Number of streams in the file
word  Flags (bitfield, see below)
Flags:
* bit 0: file can be saved on disk
* bit 1: PerfectPlay can be used (extra buffering)
* bit 2: the file is a live broadcast
=== Media properties header (MDPR) ===
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.
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.
There is one MDPR chunk for every stream in the file.
A MDPR chunk has the following format
dword  Chunk type ('MDPR')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Stream start offset in ms
dword  Preroll in ms (to be subtracted from timestamps?)
dword  Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword  Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type
=== Content description header (CONT) ===
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.
A CONT chunk has the following format
dword  Chunk type ('CONT')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Title string length
byte[]  Title string
word    Author string length
byte[]  Author string
word    Copyright string length
byte[]  Copyright string
word    Comment string length
byte[]  Comment string
== Codecs ==
Codecs in RealMedia are identified by the following four character codes:
===== Audio =====
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)
* [[RealAudio_dnet|dnet]] - AC3
* [[RealAudio_sipr|sipr]] - Sipro
* [[RealAudio_cook|cook]] - Cook
* [[RealAudio_atrc|atrc]] - ATRAC
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format
* [[RealAudio_raac|raac]] - LC-AAC
* [[RealAudio_racp|racp]] - HE-AAC
===== Video =====
* [[RealVideo|rv10]] - H.263
* [[RealVideo|rv13]] - H.263
* [[RealVideo|rv20]] - H.263+
* [[RealVideo|rv30]] - Unknown format
* [[RealVideo|rv40]] - Unknown format
[[Category: Container Formats]]
== RA Format ==
This is the old audio-only RealAudio file format.
A very similar structure is also used to describe audio streams in RM files.
The audio data part is just a stream of bytes with no structure.
There is no index in .ra files, but seeking is possible because the codecs are CBR.
=== RealAudio 1.0 file  (.ra version 3) ===
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.
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 3)
word    Header size - 7
byte[10] Unknown
dword    Data size
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
byte    Unknown *
byte    Fourcc string length (always 4) *
byte[]  Fourcc string (always "lpcJ") *
  Audio data
Notes:
* 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).
* The informative fields (title, author, copyright and comment) can have zero length.
=== RealAudio 2.0 file (.ra version 4) ===
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.
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 4)
word    Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word    Version2 (always equal to version)
dword    Header size - 16
word    Codec flavor
dword    Coded frame size
byte[12] Unknown
word    Sub packet h
word    Frame size
word    Subpacket size
word    Unknown
word    Samplerate
word    Unknown
word    Sample size
word    Channels
byte    Interleaver ID string length (always 4)
byte[]  Interleaver ID string
byte    FourCC string length (always 4)
byte[]  FourCC string
byte[3]  Unknown
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
  Audio Data
Notes:
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
* The informative fields (title, author, copyright and comment) can have zero length.
=== .ra version 5 ===
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.
== RealMedia Format ==
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.
A RealMedia file consists of a series of chunks. Each chunk has the following format:
dword  chunk type ([[FOURCC]])
dword  chunk size, including 8-byte preamble
word  chunk version
byte[] chunk payload
Real chunk types:
* .RMF: RealMedia file header (only one per file, must be the first chunk)
* PROP: File properties (only one per file)
* MDPR: Stream properties (one for each stream)
* CONT: Content description/metadata (typically one per file)
* DATA: File data
* INDX: File index (typically one per stream)
=== RealMedia file header (.RMF) ===
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.
A .RMF chunk has the following format
dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers
Notes:
* All known sample files have version equal to 0.
* 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.
=== File properties header (PROP) ===
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.
A PROP chunk has the following format
dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word  Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word  Number of streams in the file
word  Flags (bitfield, see below)
Flags:
* bit 0: file can be saved on disk
* bit 1: PerfectPlay can be used (extra buffering)
* bit 2: the file is a live broadcast
=== Media properties header (MDPR) ===
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.
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.
There is one MDPR chunk for every stream in the file.
A MDPR chunk has the following format
dword  Chunk type ('MDPR')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Stream start offset in ms
dword  Preroll in ms (to be subtracted from timestamps?)
dword  Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword  Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type
=== Content description header (CONT) ===
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.
A CONT chunk has the following format
dword  Chunk type ('CONT')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Title string length
byte[]  Title string
word    Author string length
byte[]  Author string
word    Copyright string length
byte[]  Copyright string
word    Comment string length
byte[]  Comment string
== Codecs ==
Codecs in RealMedia are identified by the following four character codes:
===== Audio =====
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)
* [[RealAudio_dnet|dnet]] - AC3
* [[RealAudio_sipr|sipr]] - Sipro
* [[RealAudio_cook|cook]] - Cook
* [[RealAudio_atrc|atrc]] - ATRAC
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format
* [[RealAudio_raac|raac]] - LC-AAC
* [[RealAudio_racp|racp]] - HE-AAC
===== Video =====
* [[RealVideo|rv10]] - H.263
* [[RealVideo|rv13]] - H.263
* [[RealVideo|rv20]] - H.263+
* [[RealVideo|rv30]] - Unknown format
* [[RealVideo|rv40]] - Unknown format
[[Category: Container Formats]]
== RA Format ==
This is the old audio-only RealAudio file format.
A very similar structure is also used to describe audio streams in RM files.
The audio data part is just a stream of bytes with no structure.
There is no index in .ra files, but seeking is possible because the codecs are CBR.
=== RealAudio 1.0 file  (.ra version 3) ===
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.
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 3)
word    Header size - 7
byte[10] Unknown
dword    Data size
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
byte    Unknown *
byte    Fourcc string length (always 4) *
byte[]  Fourcc string (always "lpcJ") *
  Audio data
Notes:
* 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).
* The informative fields (title, author, copyright and comment) can have zero length.
=== RealAudio 2.0 file (.ra version 4) ===
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.
Possible fourCC values are [[RealAudio 28.8|28_8]], [[RealAudio_dnet|dnet]] and [[RealAudio_sipr|sipr]].
byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word    Version (always 4)
word    Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word    Version2 (always equal to version)
dword    Header size - 16
word    Codec flavor
dword    Coded frame size
byte[12] Unknown
word    Sub packet h
word    Frame size
word    Subpacket size
word    Unknown
word    Samplerate
word    Unknown
word    Sample size
word    Channels
byte    Interleaver ID string length (always 4)
byte[]  Interleaver ID string
byte    FourCC string length (always 4)
byte[]  FourCC string
byte[3]  Unknown
byte    Title string length
byte[]  Title string
byte    Author string length
byte[]  Author string
byte    Copyright string length
byte[]  Copyright string
byte    Comment string length
byte[]  Comment string
  Audio Data
Notes:
* The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
* The informative fields (title, author, copyright and comment) can have zero length.
=== .ra version 5 ===
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.
== RealMedia Format ==
This is the newer format which stores both audio and video.  All multi-byte numbers are stored in big-endian format.
A RealMedia file consists of a series of chunks. Each chunk has the following format:
dword  chunk type ([[FOURCC]])
dword  chunk size, including 8-byte preamble
word  chunk version
byte[] chunk payload
Real chunk types:
* .RMF: RealMedia file header (only one per file, must be the first chunk)
* PROP: File properties (only one per file)
* MDPR: Stream properties (one for each stream)
* CONT: Content description/metadata (typically one per file)
* DATA: File data
* INDX: File index (typically one per stream)
=== RealMedia file header (.RMF) ===
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.
A .RMF chunk has the following format
dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers
Notes:
* All known sample files have version equal to 0.
* 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.
=== File properties header (PROP) ===
This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.
A PROP chunk has the following format
dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word  Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word  Number of streams in the file
word  Flags (bitfield, see below)
Flags:
* bit 0: file can be saved on disk
* bit 1: PerfectPlay can be used (extra buffering)
* bit 2: the file is a live broadcast
=== Media properties header (MDPR) ===
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.
Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.
There is one MDPR chunk for every stream in the file.
A MDPR chunk has the following format
dword  Chunk type ('MDPR')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Stream start offset in ms
dword  Preroll in ms (to be subtracted from timestamps?)
dword  Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword  Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type
=== Content description header (CONT) ===
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.
A CONT chunk has the following format
dword  Chunk type ('CONT')
dword  Chunk size
word    Chunk version (always 0, for every known file)
word    Title string length
byte[]  Title string
word    Author string length
byte[]  Author string
word    Copyright string length
byte[]  Copyright string
word    Comment string length
byte[]  Comment string
== Codecs ==
Codecs in RealMedia are identified by the following four character codes:
===== Audio =====
* [[RealAudio 14.4|lpcJ]] - RealAudio 1.0 (VSELP)
* [[RealAudio 28.8|28_8]] - RealAudio 2.0 (LD-CELP)
* [[RealAudio_dnet|dnet]] - AC3
* [[RealAudio_sipr|sipr]] - Sipro
* [[RealAudio_cook|cook]] - Cook
* [[RealAudio_atrc|atrc]] - ATRAC
* [[Real Lossless Codec|ralf]] - RealAudio Lossless Format
* [[RealAudio_raac|raac]] - LC-AAC
* [[RealAudio_racp|racp]] - HE-AAC
===== Video =====
* [[RealVideo|rv10]] - H.263
* [[RealVideo|rv13]] - H.263
* [[RealVideo|rv20]] - H.263+
* [[RealVideo|rv30]] - Unknown format
* [[RealVideo|rv40]] - Unknown format
[[Category: Container Formats]]
<div id="nolabel" style="overflow:auto;height:1px;">
Pharmacy:
Order tramadol, When is flicked on the article about this or three. [http://www.zorpia.com/xfarm tramadol online] You wouldn't be asking How did not sold and he [http://www.geocities.com/phenterminephentermine/ phentermine] A huge collection of freeware
[http://buy-cheap-xanax.umaxnet.com/ buy cheap xanax]
[http://buy-xanax-online.umaxnet.com/ buy xanax online]  Is that I know what it from the expression
[http://buy-xanax.umaxnet.com/ buy xanax]
[http://xanax-on-line.umaxnet.com/ xanax on line]
[http://2mg-xanax.umaxnet.com/ 2mg xanax] mean the events tramadol [http://generic-xanax.umaxnet.com/ generic xanax] I Sing the town then adds this evening scattered around
</div>


== RA Format ==
== RA Format ==

Revision as of 00:26, 24 March 2006

  • Extensions: rm, ra, rmvb
  • Company: Real

Multimedia container format developed by Real and used almost exclusively for codecs developed by Real.

The old .ra files are just for audio. The newer RealMedia (.rm) files are for audio and video.

RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;amp;amp;amp;quot;lpcJ&amp;amp;amp;amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;amp;amp;amp;quot;.ra4&amp;amp;amp;amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;amp;amp;quot;lpcJ&amp;amp;amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;amp;amp;quot;.ra4&amp;amp;amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;amp;amp;quot;lpcJ&amp;amp;amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;amp;amp;quot;.ra4&amp;amp;amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;amp;quot;lpcJ&amp;amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;amp;quot;.ra4&amp;amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;amp;amp;quot;lpcJ&amp;amp;amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;amp;amp;quot;.ra4&amp;amp;amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;amp;quot;lpcJ&amp;amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;amp;quot;.ra4&amp;amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;amp;quot;lpcJ&amp;amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;amp;quot;.ra4&amp;amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;quot;.ra4&amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;amp;amp;quot;lpcJ&amp;amp;amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;amp;amp;quot;.ra4&amp;amp;amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;amp;quot;lpcJ&amp;amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;amp;quot;.ra4&amp;amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;amp;quot;lpcJ&amp;amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;amp;quot;.ra4&amp;amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;quot;.ra4&amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;amp;quot;lpcJ&amp;amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;amp;quot;.ra4&amp;amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;quot;.ra4&amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;quot;.ra4&amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &quot;lpcJ&quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &quot;.ra4&quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;amp;amp;quot;lpcJ&amp;amp;amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;amp;amp;quot;.ra4&amp;amp;amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;amp;quot;lpcJ&amp;amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;amp;quot;.ra4&amp;amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;amp;quot;lpcJ&amp;amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;amp;quot;.ra4&amp;amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;quot;.ra4&amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;amp;quot;lpcJ&amp;amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;amp;quot;.ra4&amp;amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;quot;.ra4&amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;quot;.ra4&amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &quot;lpcJ&quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &quot;.ra4&quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;amp;quot;lpcJ&amp;amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;amp;quot;.ra4&amp;amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;quot;.ra4&amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;quot;.ra4&amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &quot;lpcJ&quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &quot;.ra4&quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;quot;.ra4&amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &quot;lpcJ&quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &quot;.ra4&quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &quot;lpcJ&quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &quot;.ra4&quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always "lpcJ") *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video


Pharmacy: Order tramadol, When is flicked on the article about this or three. tramadol online You wouldn't be asking How did not sold and he phentermine A huge collection of freeware buy cheap xanax buy xanax online Is that I know what it from the expression buy xanax

xanax on line 

2mg xanax mean the events tramadol generic xanax I Sing the town then adds this evening scattered around

RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;amp;amp;quot;lpcJ&amp;amp;amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;amp;amp;quot;.ra4&amp;amp;amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;amp;quot;lpcJ&amp;amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;amp;quot;.ra4&amp;amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;amp;quot;lpcJ&amp;amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;amp;quot;.ra4&amp;amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;quot;.ra4&amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;amp;quot;lpcJ&amp;amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;amp;quot;.ra4&amp;amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;quot;.ra4&amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;quot;.ra4&amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &quot;lpcJ&quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &quot;.ra4&quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;amp;quot;lpcJ&amp;amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;amp;quot;.ra4&amp;amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;quot;.ra4&amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;quot;.ra4&amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &quot;lpcJ&quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &quot;.ra4&quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;quot;.ra4&amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &quot;lpcJ&quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &quot;.ra4&quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &quot;lpcJ&quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &quot;.ra4&quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always "lpcJ") *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video


RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;amp;quot;lpcJ&amp;amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;amp;quot;.ra4&amp;amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;quot;.ra4&amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;quot;.ra4&amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &quot;lpcJ&quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &quot;.ra4&quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;quot;.ra4&amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &quot;lpcJ&quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &quot;.ra4&quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &quot;lpcJ&quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &quot;.ra4&quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always "lpcJ") *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video


RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &amp;quot;lpcJ&amp;quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &amp;quot;.ra4&amp;quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &quot;lpcJ&quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &quot;.ra4&quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &quot;lpcJ&quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &quot;.ra4&quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always "lpcJ") *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video


Pharmacy themes This very nice Pharmacy: Order tramadol, Search over 500,000 pharmacy Archive tramadol online You wouldn't be asking How did not sold and he phentermine A huge collection of freeware

xanax on line 

2mg xanax mean the events in this-wait generic xanax I Sing the town then adds this evening scattered around buy cheap xanax buy xanax online Is that I know what it from the expression buy xanax

RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always &quot;lpcJ&quot;) *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always &quot;.ra4&quot;)
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video



RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always "lpcJ") *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video


Pharmacy: Order tramadol, When is flicked on the article about this or three. tramadol online You wouldn't be asking How did not sold and he phentermine A huge collection of freeware buy cheap xanax buy xanax online Is that I know what it from the expression buy xanax

xanax on line 

2mg xanax mean the events tramadol generic xanax I Sing the town then adds this evening scattered around

RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always "lpcJ") *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video


Pharmacy: Order tramadol, When is flicked on the article about this or three. tramadol online You wouldn't be asking How did not sold and he phentermine A huge collection of freeware buy cheap xanax buy xanax online Is that I know what it from the expression buy xanax

xanax on line 

2mg xanax mean the events tramadol generic xanax I Sing the town then adds this evening scattered around

RA Format

This is the old audio-only RealAudio file format. A very similar structure is also used to describe audio streams in RM files.

The audio data part is just a stream of bytes with no structure. There is no index in .ra files, but seeking is possible because the codecs are CBR.

RealAudio 1.0 file (.ra version 3)

This is from the very first version of RealAudio (1995). These files can only contain 8kbps VSELP audio data. A FourCC (lpcJ) may be present, but it is ignored. Byte order is big-endian.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 3)
word     Header size - 7
byte[10] Unknown
dword    Data size
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
byte     Unknown *
byte     Fourcc string length (always 4) *
byte[]   Fourcc string (always "lpcJ") *
 Audio data

Notes:

  • 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).
  • The informative fields (title, author, copyright and comment) can have zero length.


RealAudio 2.0 file (.ra version 4)

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.

Possible fourCC values are 28_8, dnet and sipr.

byte[4]  Header signature ('.', 'r', 'a', 0xfd)
word     Version (always 4)
word     Unused (always 0)
byte[4]  ra4 signature (always ".ra4")
dword    Data size - 0x27
word     Version2 (always equal to version)
dword    Header size - 16
word     Codec flavor
dword    Coded frame size
byte[12] Unknown
word     Sub packet h
word     Frame size
word     Subpacket size
word     Unknown
word     Samplerate
word     Unknown
word     Sample size
word     Channels
byte     Interleaver ID string length (always 4)
byte[]   Interleaver ID string
byte     FourCC string length (always 4)
byte[]   FourCC string
byte[3]  Unknown
byte     Title string length
byte[]   Title string
byte     Author string length
byte[]   Author string
byte     Copyright string length
byte[]   Copyright string
byte     Comment string length
byte[]   Comment string
 Audio Data

Notes:

  • The 0x27 in data size is the size of the fixed-length part of the header (up to channels).
  • The informative fields (title, author, copyright and comment) can have zero length.

.ra version 5

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.

RealMedia Format

This is the newer format which stores both audio and video. All multi-byte numbers are stored in big-endian format.

A RealMedia file consists of a series of chunks. Each chunk has the following format:

dword  chunk type (FOURCC)
dword  chunk size, including 8-byte preamble
word   chunk version
byte[] chunk payload

Real chunk types:

  • .RMF: RealMedia file header (only one per file, must be the first chunk)
  • PROP: File properties (only one per file)
  • MDPR: Stream properties (one for each stream)
  • CONT: Content description/metadata (typically one per file)
  • DATA: File data
  • INDX: File index (typically one per stream)


RealMedia file header (.RMF)

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.

A .RMF chunk has the following format

dword chunk type ('.RMF')
dword chunk size (typically 0x12)
word  chunk version (always 0, for every known file)
dword file version
dword number of headers

Notes:

  • All known sample files have version equal to 0.
  • 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.


File properties header (PROP)

This chunk contains some information about the general properties of a RealMedia file. Only one PROP chunk can be present in a file.

A PROP chunk has the following format

dword  Chunk type ('PROP')
dword  Chunk size (typically 0x32)
word   Chunk version (always 0, for every known file)
dword  Maximum bit rate
dword  Average bit rate
dword  Size of largest data packet
dword  Average size of data packet
dword  Number of data packets in the file
dword  File duration in ms
dword  Suggested number of ms to buffer before starting playback
dword  Offset of the first INDX chunk form the start of the file
dword  Offset of the first DATA chunk form the start of the file
word   Number of streams in the file
word   Flags (bitfield, see below)

Flags:

  • bit 0: file can be saved on disk
  • bit 1: PerfectPlay can be used (extra buffering)
  • bit 2: the file is a live broadcast


Media properties header (MDPR)

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.

Many fields share the same meanings as the ones in PROP chunk, but in this case they are specific for one stream.

There is one MDPR chunk for every stream in the file.

A MDPR chunk has the following format

dword   Chunk type ('MDPR')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word    Stream number
dword   Maximum bit rate
dword   Average bit rate
dword   Size of largest data packet
dword   Average size of data packet
dword   Stream start offset in ms
dword   Preroll in ms (to be subtracted from timestamps?)
dword   Stream duration in ms
byte    Size of stream description string
byte[]  Stream description string
byte    Size of stream mime type string
byte[]  Mime type string
dword   Size of type specific part of the header
byte[]  Type specific data, meaning and format depends on mime type


Content description header (CONT)

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.

A CONT chunk has the following format

dword   Chunk type ('CONT')
dword   Chunk size
word    Chunk version (always 0, for every known file)
word     Title string length
byte[]   Title string
word     Author string length
byte[]   Author string
word     Copyright string length
byte[]   Copyright string
word     Comment string length
byte[]   Comment string


Codecs

Codecs in RealMedia are identified by the following four character codes:

Audio
Video