• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2<html>
3    <head>
4        <link rel="stylesheet" type="text/css" href="opus_in_isobmff.css"/>
5        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6        <title>Encapsulation of Opus in ISO Base Media File Format</title>
7    </head>
8    <body bgcolor="0x333333" text="#60B0C0">
9        <b><u>Encapsulation of Opus in ISO Base Media File Format</u></b><br>
10        <font size="2">last updated: April 28, 2016</font><br>
11        <br>
12        <div class="normal_link pre frame_box">
13
14                                Encapsulation of Opus in ISO Base Media File Format
15                                        Version 0.6.8 (incomplete)
16
17
18Table of Contents
19<a href="#1">1</a> Scope
20<a href="#2">2</a> Normative References
21<a href="#3">3</a> Terms and Definitions
22<a href="#4">4</a> Design Rules of Encapsulation
23    <a href="#4.1">4.1</a> File Type Indentification
24    <a href="#4.2">4.2</a> Overview of Track Structure
25    <a href="#4.3">4.3</a> Definitions of Opus sample
26        <a href="#4.3.1">4.3.1</a> Sample entry format
27        <a href="#4.3.2">4.3.2</a> Opus Specific Box
28        <a href="#4.3.3">4.3.3</a> Sample format
29        <a href="#4.3.4">4.3.4</a> Duration of Opus sample
30        <a href="#4.3.5">4.3.5</a> Sub-sample
31        <a href="#4.3.6">4.3.6</a> Random Access
32            <a href="#4.3.6.1">4.3.6.1</a> Random Access Point
33            <a href="#4.3.6.2">4.3.6.2</a> Pre-roll
34    <a href="#4.4">4.4</a> Trimming of Actual Duration
35    <a href="#4.5">4.5</a> Channel Layout (informative)
36    <a href="#4.6">4.6</a> Basic Structure (informative)
37        <a href="#4.6.1">4.6.2</a> Initial Movie
38        <a href="#4.6.2">4.6.3</a> Movie Fragments
39    <a href="#4.7">4.7</a> Example of Encapsulation (informative)
40<a href="#5">5</a> Author's Address
41
42<a name="1"></a>
431 Scope
44    This specification specifies the fundamental way of the encapsulation of Opus coded bitstreams in ISO Base Media
45    file format and its derivatives. The encapsulation of Opus coded bitstreams in QuickTime file format is outside
46    the scope of this specification.
47
48<a name="2"></a>
492 Normative References
50    [1] ISO/IEC 14496-12:2015 Corrected version
51        Information technology — Coding of audio-visual objects — Part 12: ISO base media file format
52
53    [2] RFC 6716
54        Definition of the Opus Audio Codec
55
56    [3] draft-ietf-codec-oggopus-06
57        Ogg Encapsulation for the Opus Audio Codec
58
59<a name="3"></a>
603 Terms and Definitions
61    3.1 active track
62        enabled track from the non-alternate group or selected track from alternate group
63
64    3.2 actual duration
65        duration constructed from valid samples
66
67    3.3 edit
68        entry in the Edit List Box
69
70    3.4 padded samples
71        PCM samples after decoding Opus sample(s) which are not valid samples
72        An Opus bitstream always contains them partially at the beginning and may contain them in part at the end, as
73        long as not physically removed yet at the beginning and/or the end.
74
75    3.5 priming samples
76        padded samples at the beginning of the Opus bitstream
77
78    3.6 sample-accurate
79        for any PCM sample, a timestamp exactly matching its sampling timestamp is present in the media timeline.
80
81    3.7 valid samples
82        PCM samples after decoding Opus sample(s) corresponding to input PCM samples
83
84<a name="4"></a>
854 Design Rules of Encapsulation
86    4.1 File Type Indentification<a name="4.1"></a>
87        This specification does not define any brand to declare files are conformant to this specification. However,
88        files conformant to this specification shall contain at least one brand, which supports the requirements and the
89        requirements described in this clause without contradiction, in the compatible brands list of the File Type Box.
90        As an example, the minimal support of the encapsulation of Opus bitstreams in ISO Base Media file format requires
91        the 'iso2' brand in the compatible brands list since support of roll groups is required.
92<a name="4.2"></a>
93    4.2 Overview of Track Structure
94        This clause summarizes requirements of the encapsulation of Opus coded bitstream as media data in audio tracks
95        in file formats compliant with the ISO Base Media File Format. The details are described in clauses after this
96        clause.
97            + The handler_type field in the Handler Reference Box shall be set to 'soun'.
98            + The Media Information Box shall contain the Sound Media Header Box.
99            + The codingname of the sample entry is 'Opus'.
100                This specification does not define any encapsulation using MP4AudioSampleEntry with objectTypeIndication
101                specified by the MPEG-4 Registration Authority (http://www.mp4ra.org/).
102                See 4.3.1 Sample entry format to get the details about the sample entry.
103            + The 'dOps' box is added to the sample entry to convey initializing information for the decoder.
104                See 4.3.2 Opus Specific Box to get the details.
105            + An Opus sample is exactly one Opus packet for each of different Opus bitstreams.
106                See 4.3.3 Sample format to get the details.
107            + Every Opus sample is a sync sample but requires pre-roll for every random access to get correct output.
108                See 4.3.6 Random Access to get the details.
109<a name="4.3"></a>
110    4.3 Definitions of Opus sample
111        4.3.1 Sample entry format<a name="4.3.1"></a>
112            For any track containing Opus bitstreams, at least one sample entry describing corresponding Opus bitstream
113            shall be present inside the Sample Table Box. This version of the specification defines only one sample
114            entry format named OpusSampleEntry whose codingname is 'Opus'. This sample entry includes exactly one Opus
115            Specific Box defined in 4.3.2 as a mandatory box and indicates that Opus samples described by this sample
116            entry are stored by the sample format described in 4.3.3.
117
118            The syntax and semantics of the OpusSampleEntry is shown as follows.
119
120            class OpusSampleEntry() extends AudioSampleEntry ('Opus'){
121                OpusSpecificBox();
122            }
123
124            + channelcount:
125                The channelcount field shall be set to the sum of the total number of Opus bitstreams and the number
126                of Opus bitstreams producing two channels. This value is indentical with (M+N), where M is the value of
127                the *Coupled Stream Count* field and N is the value of the *Stream Count* field in the *Channel Mapping
128                Table* in the identification header defined in Ogg Opus [3].
129            + samplesize:
130                The samplesize field shall be set to 16.
131            + samplerate:
132                The samplerate field shall be set to 48000&lt&lt16.
133            + OpusSpecificBox
134                This box contains initializing information for the decoder as defined in 4.3.2.
135
136        4.3.2 Opus Specific Box<a name="4.3.2"></a>
137            Exactly one Opus Specific Box shall be present in each OpusSampleEntry.
138            The Opus Specific Box contains the Version field and this specification defines version 0 of this box.
139            If incompatible changes occured in the fields after the Version field within the OpusSpecificBox in the
140            future versions of this specification, another version will be defined.
141            This box refers to Ogg Opus [3] at many parts but all the data are stored as big-endian format.
142
143            The syntax and semantics of the Opus Specific Box is shown as follows.
144
145            class ChannelMappingTable (unsigned int(8) OutputChannelCount){
146                unsigned int(8) StreamCount;
147                unsigned int(8) CoupledCount;
148                unsigned int(8 * OutputChannelCount) ChannelMapping;
149            }
150
151            aligned(8) class OpusSpecificBox extends Box('dOps'){
152                unsigned int(8) Version;
153                unsigned int(8) OutputChannelCount;
154                unsigned int(16) PreSkip;
155                unsigned int(32) InputSampleRate;
156                signed int(16) OutputGain;
157                unsigned int(8) ChannelMappingFamily;
158                if (ChannelMappingFamily != 0) {
159                    ChannelMappingTable(OutputChannelCount);
160                }
161            }
162
163            + Version:
164                The Version field shall be set to 0.
165                In the future versions of this specification, this field may be set to other values. And without support
166                of those values, the reader shall not read the fields after this within the OpusSpecificBox.
167            + OutputChannelCount:
168                The OutputChannelCount field shall be set to the same value as the *Output Channel Count* field in the
169                identification header defined in Ogg Opus [3].
170            + PreSkip:
171                The PreSkip field indicates the number of the priming samples, that is, the number of samples at 48000 Hz
172                to discard from the decoder output when starting playback. The value of the PreSkip field shall be at least
173                80 milliseconds' worth of PCM samples even when removing any number of Opus samples which may or may not
174                contain the priming samples. The PreSkip field is not used for discarding the priming samples at the whole
175                playback at all since it is informative only, and that task falls on the Edit List Box.
176            + InputSampleRate:
177                The InputSampleRate field shall be set to the same value as the *Input Sample Rate* field in the
178                identification header defined in Ogg Opus [3].
179            + OutputGain:
180                The OutputGain field shall be set to the same value as the *Output Gain* field in the identification
181                header define in Ogg Opus [3]. Note that the value is stored as 8.8 fixed-point.
182            + ChannelMappingFamily:
183                The ChannelMappingFamily field shall be set to the same value as the *Channel Mapping Family* field in
184                the identification header defined in Ogg Opus [3].
185            + StreamCount:
186                The StreamCount field shall be set to the same value as the *Stream Count* field in the identification
187                header defined in Ogg Opus [3].
188            + CoupledCount:
189                The CoupledCount field shall be set to the same value as the *Coupled Count* field in the identification
190                header defined in Ogg Opus [3].
191            + ChannelMapping:
192                The ChannelMapping field shall be set to the same octet string as *Channel Mapping* field in the identi-
193                fication header defined in Ogg Opus [3].
194
195        4.3.3 Sample format<a name="4.3.3"></a>
196            An Opus sample is exactly one Opus packet for each of different Opus bitstreams. Due to support more than
197            two channels, an Opus sample can contain frames from multiple Opus bitstreams but all Opus packets shall
198            share with the total of frame sizes in a single Opus sample. The way of how to pack an Opus packet from
199            each of Opus bitstreams into a single Opus sample follows Appendix B. in RFC 6716 [2].
200            The endianness has nothing to do with any Opus sample since every Opus packet is processed byte-by-byte.
201            In this specification, 'sample' means 'Opus sample' except for 'padded samples', 'priming samples', 'valid
202            sample' and 'sample-accurate', i.e. 'sample' is 'sample' in the term defined in ISO/IEC 14496-12 [1].
203
204                +-----------------------------------------+-------------------------------------+
205                | Opus packet 0 (self-delimiting framing) | Opus packet 1 (undelimited framing) |
206                +-----------------------------------------+-------------------------------------+
207                |<---------------------------- the size of Opus sample ------------------------>|
208
209                    Figure 1 - Example structure of an Opus sample containing two Opus bitstreams
210
211        4.3.4 Duration of Opus sample<a name="4.3.4"></a>
212            The duration of Opus sample is given by multiplying the total of frame sizes for a single Opus bitstream
213            expressed in seconds by the value of the timescale field in the Media Header Box.
214            Let's say an Opus sample consists of two Opus bitstreams, where the frame size of one bitstream is 40 milli-
215            seconds and the frame size of another is 60 milliseconds, and the timescale field in the Media Header Box
216            is set to 48000, then the duration of that Opus sample shall be 120 milliseconds since three 40 millisecond
217            frame and two 60 millisecond frames shall be contained because of the maximum duration of Opus packet, 120
218            milliseconds, and 5760 in the timescale indicated in the Media Header Box.
219
220            To indicate the valid samples excluding the padded samples at the end of Opus bitstream, the duration of
221            the last Opus sample of an Opus bitstream is given by multiplying the number of the valid samples by the
222            value produced by dividing the value of the timescale field in the Media Header Box by 48000.
223
224        4.3.5 Sub-sample<a name="4.3.5"></a>
225            The structure of the last Opus packet in an Opus sample is different from the others in the same Opus sample,
226            and the others are invalid Opus packets as an Opus sample because of self-delimiting framing. To avoid
227            complexities, sub-sample is not defined for Opus sample in this specification.
228
229        4.3.6 Random Access<a name="4.3.6"></a>
230            This subclause describes the nature of the random access of Opus sample.
231
232            4.3.6.1 Random Access Point<a name="4.3.6.1"></a>
233                All Opus samples can be independently decoded i.e. every Opus sample is a sync sample. Therefore, the
234                Sync Sample Box shall not be present as long as there are no samples other than Opus samples in the same
235                track. And the sample_is_non_sync_sample field for Opus samples shall be set to 0.
236
237            4.3.6.2 Pre-roll<a name="4.3.6.2"></a>
238                Opus bitstream requires at least 80 millisecond pre-roll after each random access to get correct output.
239                Pre-roll is indicated by the roll_distance field in AudioRollRecoveryEntry. AudioPreRollEntry shall not
240                be used since every Opus sample is a sync sample in Opus bitstream. Note that roll_distance is expressed
241                in sample units in a term of ISO Base Media File Format, and always takes negative values.
242
243                For any track containing Opus bitstreams, at least one Sample Group Description Box and at least one
244                Sample to Group Box within the Sample Table Box shall be present and these have the grouping_type field
245                set to 'roll'. If any Opus sample is contained in a track fragment, the Sample to Group Box with the
246                grouping_type field set to 'roll' shall be present for that track fragment.
247
248                For the requirement of AudioRollRecoveryEntry, the compatible_brands field in the File Type Box shall
249                contain at least one brand which requires support for roll groups.
250<a name="4.4"></a>
251    4.4 Trimming of Actual Duration
252        Due to the priming samples (or the padding at the beginning) derived from the pre-roll for the startup and the
253        padded samples at the end, we need trim from media to get the actual duration. An edit in the Edit List Box can
254        achieve this demand, and the Edit Box and the Edit List Box shall be present.
255
256        For sample-accurate trimming, proper timescale should be set to the timescale field in the Movie Header Box
257        and the Media Header Box inside Track Box(es) for Opus bitstream. The timescale field in the Media Header Box is
258        typically set to 48000. It is recommended that the timescale field in the Movie Header Box be set to the same
259        value of the timescale field in the Media Header Box in order to avoid the rounding problem when specifying
260        duration of edit if the timescales in all of the Media Header Boxes are set to the same value.
261
262        For example, to indicate the actual duration of an Opus bitstream in a track with the timescale fields of both
263        the Movie Header Box and the Media Header Box set to 48000, we would use the following edit:
264            segment_duration = the number of the valid samples
265            media_time = the number of the priming samples
266            media_rate = 1 &lt&lt 16
267
268        The Edit List Box is applied to whole movie including all movie fragments. Therefore, it is impossible to tell
269        the actual duration in the case producing movie fragments on the fly such as live-streaming. In such cases,
270        the duration of the last Opus sample may be helpful by setting zero to the segment_duration field since the
271        value 0 represents implicit duration equal to the sum of the duration of all samples.
272<a name="4.5"></a>
273    4.5 Channel Layout (informative)
274        By the application of alternate_group in the Track Header Box, whole audio channels in all active tracks from
275        non-alternate group and/or different alternate group from each other are composited into the presentation. If
276        an Opus sample consists of multiple Opus bitstreams, it can be splitted into individual Opus bitstreams and
277        reconstructed into new Opus samples as long as every Opus bitstream has the same total duration in each Opus
278        sample. This nature can be utilized to encapsulate a single Opus bitstream in each track without breaking the
279        original channel layout.
280
281        As an example, let's say there is a following track:
282            OutputChannelCount = 6;
283            StreamCount        = 4;
284            CoupledCount       = 2;
285            ChannelMapping     = {0, 4, 1, 2, 3, 5}; // front left, front center, front right, rear left, rear right, LFE
286        Here, to couple front left to front right channels into the first stream, and couple rear left to rear right
287        channels into the second stream, reordering is needed since coupled streams must precede any non-coupled stream.
288        You extract the four Opus bitstreams from this track and you encapsulate two of the four into a track and the
289        others into another track. The former track is as follows.
290            OutputChannelCount = 6;
291            StreamCount        = 2;
292            CoupledCount       = 2;
293            ChannelMapping     = {0, 255, 1, 2, 3, 255}; // front left, front center, front right, rear left, rear right, LFE
294        And the latter track is as follows.
295            OutputChannelCount = 6;
296            StreamCount        = 2;
297            CoupledCount       = 0;
298            ChannelMapping     = {255, 0, 255, 255, 255, 1}; // front left, front center, front right, rear left, rear right, LFE
299        In addition, the value of the alternate_group field in the both tracks is set to 0. As the result, the player
300        may play as if channels with 255 are not present, and play the presentation constructed from the both tracks
301        in the same channel layout as the one of the original track. Keep in mind that the way of the composition, i.e.
302        the mixing for playback, is not defined here, and maybe different results could occur except for the channel
303        layout of the original, depending on an implementation or the definition of a derived file format.
304
305        Note that some derived file formats may specify the restriction to ignore alternate grouping. In the context of
306        such file formats, this application is not available. This unavailability does not mean incompatibilities among
307        file formats unless the restriction to the value of the alternate_group field is specified and brings about
308        any conflict among their definitions.
309<a name="4.6"></a>
310    4.6 Basic Structure (informative)
311        4.6.1 Initial Movie<a name="4.6.1"></a>
312            This subclause shows a basic structure of the Movie Box as follows:
313
314            +----+----+----+----+----+----+----+----+------------------------------+
315            |moov|    |    |    |    |    |    |    | Movie Box                    |
316            +----+----+----+----+----+----+----+----+------------------------------+
317            |    |mvhd|    |    |    |    |    |    | Movie Header Box             |
318            +----+----+----+----+----+----+----+----+------------------------------+
319            |    |trak|    |    |    |    |    |    | Track Box                    |
320            +----+----+----+----+----+----+----+----+------------------------------+
321            |    |    |tkhd|    |    |    |    |    | Track Header Box             |
322            +----+----+----+----+----+----+----+----+------------------------------+
323            |    |    |edts|    |    |    |    |    | Edit Box                     |
324            +----+----+----+----+----+----+----+----+------------------------------+
325            |    |    |    |elst|    |    |    |    | Edit List Box                |
326            +----+----+----+----+----+----+----+----+------------------------------+
327            |    |    |mdia|    |    |    |    |    | Media Box                    |
328            +----+----+----+----+----+----+----+----+------------------------------+
329            |    |    |    |mdhd|    |    |    |    | Media Header Box             |
330            +----+----+----+----+----+----+----+----+------------------------------+
331            |    |    |    |hdlr|    |    |    |    | Handler Reference Box        |
332            +----+----+----+----+----+----+----+----+------------------------------+
333            |    |    |    |minf|    |    |    |    | Media Information Box        |
334            +----+----+----+----+----+----+----+----+------------------------------+
335            |    |    |    |    |smhd|    |    |    | Sound Media Header Box       |
336            +----+----+----+----+----+----+----+----+------------------------------+
337            |    |    |    |    |dinf|    |    |    | Data Information Box         |
338            +----+----+----+----+----+----+----+----+------------------------------+
339            |    |    |    |    |    |dref|    |    | Data Reference Box           |
340            +----+----+----+----+----+----+----+----+------------------------------+
341            |    |    |    |    |    |    |url |    | DataEntryUrlBox              |
342            +----+----+----+----+----+----+ or +----+------------------------------+
343            |    |    |    |    |    |    |urn |    | DataEntryUrnBox              |
344            +----+----+----+----+----+----+----+----+------------------------------+
345            |    |    |    |    |stbl|    |    |    | Sample Table                 |
346            +----+----+----+----+----+----+----+----+------------------------------+
347            |    |    |    |    |    |stsd|    |    | Sample Description Box       |
348            +----+----+----+----+----+----+----+----+------------------------------+
349            |    |    |    |    |    |    |Opus|    | OpusSampleEntry              |
350            +----+----+----+----+----+----+----+----+------------------------------+
351            |    |    |    |    |    |    |    |dOps| Opus Specific Box            |
352            +----+----+----+----+----+----+----+----+------------------------------+
353            |    |    |    |    |    |stts|    |    | Decoding Time to Sample Box  |
354            +----+----+----+----+----+----+----+----+------------------------------+
355            |    |    |    |    |    |stsc|    |    | Sample To Chunk Box          |
356            +----+----+----+----+----+----+----+----+------------------------------+
357            |    |    |    |    |    |stsz|    |    | Sample Size Box              |
358            +----+----+----+----+----+ or +----+----+------------------------------+
359            |    |    |    |    |    |stz2|    |    | Compact Sample Size Box      |
360            +----+----+----+----+----+----+----+----+------------------------------+
361            |    |    |    |    |    |stco|    |    | Chunk Offset Box             |
362            +----+----+----+----+----+ or +----+----+------------------------------+
363            |    |    |    |    |    |co64|    |    | Chunk Large Offset Box       |
364            +----+----+----+----+----+----+----+----+------------------------------+
365            |    |    |    |    |    |sgpd|    |    | Sample Group Description Box |
366            +----+----+----+----+----+----+----+----+------------------------------+
367            |    |    |    |    |    |sbgp|    |    | Sample to Group Box          |
368            +----+----+----+----+----+----+----+----+------------------------------+
369            |    |mvex|*   |    |    |    |    |    | Movie Extends Box            |
370            +----+----+----+----+----+----+----+----+------------------------------+
371            |    |    |trex|*   |    |    |    |    | Track Extends Box            |
372            +----+----+----+----+----+----+----+----+------------------------------+
373
374                    Figure 2 - Basic structure of Movie Box
375
376            It is strongly recommended that the order of boxes should follow the above structure.
377            Boxes marked with an asterisk (*) may be present.
378            For most boxes listed above, the definition is as is defined in ISO/IEC 14496-12 [1]. The additional boxes
379            and the additional requirements, restrictions and recommendations to the other boxes are described in this
380            specification.
381
382        4.6.2 Movie Fragments<a name="4.6.2"></a>
383            This subclause shows a basic structure of the Movie Fragment Box as follows:
384
385            +----+----+----+----+----+----+----+----+------------------------------+
386            |moof|    |    |    |    |    |    |    | Movie Fragment Box           |
387            +----+----+----+----+----+----+----+----+------------------------------+
388            |    |mfhd|    |    |    |    |    |    | Movie Fragment Header Box    |
389            +----+----+----+----+----+----+----+----+------------------------------+
390            |    |traf|    |    |    |    |    |    | Track Fragment Box           |
391            +----+----+----+----+----+----+----+----+------------------------------+
392            |    |    |tfhd|    |    |    |    |    | Track Fragment Header Box    |
393            +----+----+----+----+----+----+----+----+------------------------------+
394            |    |    |trun|    |    |    |    |    | Track Fragment Run Box       |
395            +----+----+----+----+----+----+----+----+------------------------------+
396            |    |    |sgpd|*   |    |    |    |    | Sample Group Description Box |
397            +----+----+----+----+----+----+----+----+------------------------------+
398            |    |    |sbgp|*   |    |    |    |    | Sample to Group Box          |
399            +----+----+----+----+----+----+----+----+------------------------------+
400
401                    Figure 3 - Basic structure of Movie Fragment Box
402
403            It is strongly recommended that the Movie Fragment Header Box and the Track Fragment Header Box be
404            placed first in their container.
405            Boxes marked with an asterisk (*) may be present.
406            For the boxes listed above, the definition is as is defined in ISO/IEC 14496-12 [1].
407<a name="4.7"></a>
408    4.7 Example of Encapsulation (informative)
409        [File]
410            size = 17790
411            [ftyp: File Type Box]
412                position = 0
413                size = 24
414                major_brand = mp42 : MP4 version 2
415                minor_version = 0
416                compatible_brands
417                    brand[0] = mp42 : MP4 version 2
418                    brand[1] = iso2 : ISO Base Media file format version 2
419            [moov: Movie Box]
420                position = 24
421                size = 757
422                [mvhd: Movie Header Box]
423                    position = 32
424                    size = 108
425                    version = 0
426                    flags = 0x000000
427                    creation_time = UTC 2014/12/12, 18:41:19
428                    modification_time = UTC 2014/12/12, 18:41:19
429                    timescale = 48000
430                    duration = 33600 (00:00:00.700)
431                    rate = 1.000000
432                    volume = 1.000000
433                    reserved = 0x0000
434                    reserved = 0x00000000
435                    reserved = 0x00000000
436                    transformation matrix
437                        | a, b, u |   | 1.000000, 0.000000, 0.000000 |
438                        | c, d, v | = | 0.000000, 1.000000, 0.000000 |
439                        | x, y, w |   | 0.000000, 0.000000, 1.000000 |
440                    pre_defined = 0x00000000
441                    pre_defined = 0x00000000
442                    pre_defined = 0x00000000
443                    pre_defined = 0x00000000
444                    pre_defined = 0x00000000
445                    pre_defined = 0x00000000
446                    next_track_ID = 2
447                [iods: Object Descriptor Box]
448                    position = 140
449                    size = 33
450                    version = 0
451                    flags = 0x000000
452                    [tag = 0x10: MP4_IOD]
453                        expandableClassSize = 16
454                        ObjectDescriptorID = 1
455                        URL_Flag = 0
456                        includeInlineProfileLevelFlag = 0
457                        reserved = 0xf
458                        ODProfileLevelIndication = 0xff
459                        sceneProfileLevelIndication = 0xff
460                        audioProfileLevelIndication = 0xfe
461                        visualProfileLevelIndication = 0xff
462                        graphicsProfileLevelIndication = 0xff
463                        [tag = 0x0e: ES_ID_Inc]
464                            expandableClassSize = 4
465                            Track_ID = 1
466                [trak: Track Box]
467                    position = 173
468                    size = 608
469                    [tkhd: Track Header Box]
470                        position = 181
471                        size = 92
472                        version = 0
473                        flags = 0x000007
474                            Track enabled
475                            Track in movie
476                            Track in preview
477                        creation_time = UTC 2014/12/12, 18:41:19
478                        modification_time = UTC 2014/12/12, 18:41:19
479                        track_ID = 1
480                        reserved = 0x00000000
481                        duration = 33600 (00:00:00.700)
482                        reserved = 0x00000000
483                        reserved = 0x00000000
484                        layer = 0
485                        alternate_group = 0
486                        volume = 1.000000
487                        reserved = 0x0000
488                        transformation matrix
489                            | a, b, u |   | 1.000000, 0.000000, 0.000000 |
490                            | c, d, v | = | 0.000000, 1.000000, 0.000000 |
491                            | x, y, w |   | 0.000000, 0.000000, 1.000000 |
492                        width = 0.000000
493                        height = 0.000000
494                    [edts: Edit Box]
495                        position = 273
496                        size = 36
497                        [elst: Edit List Box]
498                            position = 281
499                            size = 28
500                            version = 0
501                            flags = 0x000000
502                            entry_count = 1
503                            entry[0]
504                                segment_duration = 33600
505                                media_time = 312
506                                media_rate = 1.000000
507                    [mdia: Media Box]
508                        position = 309
509                        size = 472
510                        [mdhd: Media Header Box]
511                            position = 317
512                            size = 32
513                            version = 0
514                            flags = 0x000000
515                            creation_time = UTC 2014/12/12, 18:41:19
516                            modification_time = UTC 2014/12/12, 18:41:19
517                            timescale = 48000
518                            duration = 34560 (00:00:00.720)
519                            language = und
520                            pre_defined = 0x0000
521                        [hdlr: Handler Reference Box]
522                            position = 349
523                            size = 51
524                            version = 0
525                            flags = 0x000000
526                            pre_defined = 0x00000000
527                            handler_type = soun
528                            reserved = 0x00000000
529                            reserved = 0x00000000
530                            reserved = 0x00000000
531                            name = Xiph Audio Handler
532                        [minf: Media Information Box]
533                            position = 400
534                            size = 381
535                            [smhd: Sound Media Header Box]
536                                position = 408
537                                size = 16
538                                version = 0
539                                flags = 0x000000
540                                balance = 0.000000
541                                reserved = 0x0000
542                            [dinf: Data Information Box]
543                                position = 424
544                                size = 36
545                                [dref: Data Reference Box]
546                                    position = 432
547                                    size = 28
548                                    version = 0
549                                    flags = 0x000000
550                                    entry_count = 1
551                                    [url : Data Entry Url Box]
552                                        position = 448
553                                        size = 12
554                                        version = 0
555                                        flags = 0x000001
556                                        location = in the same file
557                            [stbl: Sample Table Box]
558                                position = 460
559                                size = 321
560                                [stsd: Sample Description Box]
561                                    position = 468
562                                    size = 79
563                                    version = 0
564                                    flags = 0x000000
565                                    entry_count = 1
566                                    [Opus: Audio Description]
567                                        position = 484
568                                        size = 63
569                                        reserved = 0x000000000000
570                                        data_reference_index = 1
571                                        reserved = 0x0000
572                                        reserved = 0x0000
573                                        reserved = 0x00000000
574                                        channelcount = 6
575                                        samplesize = 16
576                                        pre_defined = 0
577                                        reserved = 0
578                                        samplerate = 48000.000000
579                                        [dOps: Opus Specific Box]
580                                            position = 520
581                                            size = 27
582                                            Version = 0
583                                            OutputChannelCount = 6
584                                            PreSkip = 312
585                                            InputSampleRate = 48000
586                                            OutputGain = 0
587                                            ChannelMappingFamily = 1
588                                            StreamCount = 4
589                                            CoupledCount = 2
590                                            ChannelMapping
591                                                0 -> 0: front left
592                                                1 -> 4: fron center
593                                                2 -> 1: front right
594                                                3 -> 2: side left
595                                                4 -> 3: side right
596                                                5 -> 5: rear center
597                                [stts: Decoding Time to Sample Box]
598                                    position = 547
599                                    size = 24
600                                    version = 0
601                                    flags = 0x000000
602                                    entry_count = 1
603                                    entry[0]
604                                        sample_count = 18
605                                        sample_delta = 1920
606                                [stsc: Sample To Chunk Box]
607                                    position = 571
608                                    size = 40
609                                    version = 0
610                                    flags = 0x000000
611                                    entry_count = 2
612                                    entry[0]
613                                        first_chunk = 1
614                                        samples_per_chunk = 13
615                                        sample_description_index = 1
616                                    entry[1]
617                                        first_chunk = 2
618                                        samples_per_chunk = 5
619                                        sample_description_index = 1
620                                [stsz: Sample Size Box]
621                                    position = 611
622                                    size = 92
623                                    version = 0
624                                    flags = 0x000000
625                                    sample_size = 0 (variable)
626                                    sample_count = 18
627                                    entry_size[0] = 977
628                                    entry_size[1] = 938
629                                    entry_size[2] = 939
630                                    entry_size[3] = 938
631                                    entry_size[4] = 934
632                                    entry_size[5] = 945
633                                    entry_size[6] = 948
634                                    entry_size[7] = 956
635                                    entry_size[8] = 955
636                                    entry_size[9] = 930
637                                    entry_size[10] = 933
638                                    entry_size[11] = 934
639                                    entry_size[12] = 972
640                                    entry_size[13] = 977
641                                    entry_size[14] = 958
642                                    entry_size[15] = 949
643                                    entry_size[16] = 962
644                                    entry_size[17] = 848
645                                [stco: Chunk Offset Box]
646                                    position = 703
647                                    size = 24
648                                    version = 0
649                                    flags = 0x000000
650                                    entry_count = 2
651                                    chunk_offset[0] = 797
652                                    chunk_offset[1] = 13096
653                                [sgpd: Sample Group Description Box]
654                                    position = 727
655                                    size = 26
656                                    version = 1
657                                    flags = 0x000000
658                                    grouping_type = roll
659                                    default_length = 2 (constant)
660                                    entry_count = 1
661                                    roll_distance[0] = -2
662                                [sbgp: Sample to Group Box]
663                                    position = 753
664                                    size = 28
665                                    version = 0
666                                    flags = 0x000000
667                                    grouping_type = roll
668                                    entry_count = 1
669                                    entry[0]
670                                        sample_count = 18
671                                        group_description_index = 1
672            [free: Free Space Box]
673                position = 781
674                size = 8
675            [mdat: Media Data Box]
676                position = 789
677                size = 17001
678<a name="5"></a>
6795 Authors' Address
680    Yusuke Nakamura
681        Email: muken.the.vfrmaniac |at| gmail.com
682        </div>
683    </body>
684</html>
685