IVR
Jump to navigation
Jump to search
- Company: Real
- Sample: http://samples.mplayerhq.hu/real/ivr/
IVR is a recorded media format created by Real Player 11.
The file can either be a single record (starting with .REC magic) or a collection of records (starting with .R1M magic).
Data is stored in big-endian format.
R1M header
4 bytes - .R1M 3 bytes - unknown, always 0, 1, 1 ? 4 bytes - file name length N bytes - file name 1 byte - always 0? 4 bytes - additional header length 8 bytes - entries offset
Entries start with a byte containing entry type and 4-byte payload size, the rest of data is interpreted depending on it:
- 1 - some metadata, probably for the following sub-recording
- 2 - sub-recording in
RECformat with some additional header - 82 (or
'R') - signals that this is really someRJMxmetadata chunks at the end of file
REC format
The format consists of header and entries with different payload like stream metadata or data packets, a lot like e.g. FLV.
Header:
4 bytes - .REC 1 byte - always zero? 4 bytes - number of entries
Each entry starts with a byte specifying its payload type:
- 1 - stream properties, payload starts with 32-bit number of properties, the properties are in the same format as
.RECentries themselves (types 3-5); - 2 - packet:
4 bytes - timestamp 2 bytes - stream ID 4 bytes - packet flags 4 bytes - packet payload length 4 bytes - header fields checksum? N bytes - RealMedia packet payload
- 3 - integer record:
4 bytes - key name length N bytes - key name 4 bytes - value length (should be 4) 4 bytes - integer value
- 4 - binary data:
4 bytes - key name length N bytes - key name 4 bytes - value length M bytes - binary data value
- 5 - string data
4 bytes - key name length N bytes - key name 4 bytes - value length M bytes - value string
- 6 - header end marker
- 7 - data end marker, has 8 zero bytes of payload
- 8 - data start marker, has 8 zero bytes of payload
Normally the structure for the recording is the following:
- several entries with types 3-5 for recording metadata
- one or more stream properties
- each has several sub-entries with types 3-5 for stream metadata
- header end marker
- three 4-byte offsets
- seek table (if signalled to be present in the metadata)
- data start marker
- one or more packets
- data end marker