Commit | Line | Data |
---|---|---|
2ba45a60 DM |
1 | \input texinfo @c -*- texinfo -*- |
2 | ||
3 | @settitle NUT | |
4 | ||
5 | @titlepage | |
6 | @center @titlefont{NUT} | |
7 | @end titlepage | |
8 | ||
9 | @top | |
10 | ||
11 | @contents | |
12 | ||
13 | @chapter Description | |
14 | NUT is a low overhead generic container format. It stores audio, video, | |
15 | subtitle and user-defined streams in a simple, yet efficient, way. | |
16 | ||
17 | It was created by a group of FFmpeg and MPlayer developers in 2003 | |
18 | and was finalized in 2008. | |
19 | ||
20 | The official nut specification is at svn://svn.mplayerhq.hu/nut | |
21 | In case of any differences between this text and the official specification, | |
22 | the official specification shall prevail. | |
23 | ||
24 | @chapter Modes | |
25 | NUT has some variants signaled by using the flags field in its main header. | |
26 | ||
27 | @multitable @columnfractions .4 .4 | |
28 | @item BROADCAST @tab Extend the syncpoint to report the sender wallclock | |
29 | @item PIPE @tab Omit completely the syncpoint | |
30 | @end multitable | |
31 | ||
32 | @section BROADCAST | |
33 | ||
34 | The BROADCAST variant provides a secondary time reference to facilitate | |
35 | detecting endpoint latency and network delays. | |
36 | It assumes all the endpoint clocks are syncronized. | |
37 | To be used in real-time scenarios. | |
38 | ||
39 | @section PIPE | |
40 | ||
41 | The PIPE variant assumes NUT is used as non-seekable intermediate container, | |
42 | by not using syncpoint removes unneeded overhead and reduces the overall | |
43 | memory usage. | |
44 | ||
45 | @chapter Container-specific codec tags | |
46 | ||
47 | @section Generic raw YUVA formats | |
48 | ||
49 | Since many exotic planar YUVA pixel formats are not considered by | |
50 | the AVI/QuickTime FourCC lists, the following scheme is adopted for | |
51 | representing them. | |
52 | ||
53 | The first two bytes can contain the values: | |
54 | Y1 = only Y | |
55 | Y2 = Y+A | |
56 | Y3 = YUV | |
57 | Y4 = YUVA | |
58 | ||
59 | The third byte represents the width and height chroma subsampling | |
60 | values for the UV planes, that is the amount to shift the luma | |
61 | width/height right to find the chroma width/height. | |
62 | ||
63 | The fourth byte is the number of bits used (8, 16, ...). | |
64 | ||
65 | If the order of bytes is inverted, that means that each component has | |
66 | to be read big-endian. | |
67 | ||
68 | @section Raw Audio | |
69 | ||
70 | @multitable @columnfractions .4 .4 | |
71 | @item ALAW @tab A-LAW | |
72 | @item ULAW @tab MU-LAW | |
73 | @item P<type><interleaving><bits> @tab little-endian PCM | |
74 | @item <bits><interleaving><type>P @tab big-endian PCM | |
75 | @end multitable | |
76 | ||
77 | <type> is S for signed integer, U for unsigned integer, F for IEEE float | |
78 | <interleaving> is D for default, P is for planar. | |
79 | <bits> is 8/16/24/32 | |
80 | ||
81 | @example | |
82 | PFD[32] would for example be signed 32 bit little-endian IEEE float | |
83 | @end example | |
84 | ||
85 | @section Subtitles | |
86 | ||
87 | @multitable @columnfractions .4 .4 | |
88 | @item UTF8 @tab Raw UTF-8 | |
89 | @item SSA[0] @tab SubStation Alpha | |
90 | @item DVDS @tab DVD subtitles | |
91 | @item DVBS @tab DVB subtitles | |
92 | @end multitable | |
93 | ||
94 | @section Raw Data | |
95 | ||
96 | @multitable @columnfractions .4 .4 | |
97 | @item UTF8 @tab Raw UTF-8 | |
98 | @end multitable | |
99 | ||
100 | @section Codecs | |
101 | ||
102 | @multitable @columnfractions .4 .4 | |
103 | @item 3IV1 @tab non-compliant MPEG-4 generated by old 3ivx | |
104 | @item ASV1 @tab Asus Video | |
105 | @item ASV2 @tab Asus Video 2 | |
106 | @item CVID @tab Cinepak | |
107 | @item CYUV @tab Creative YUV | |
108 | @item DIVX @tab non-compliant MPEG-4 generated by old DivX | |
109 | @item DUCK @tab Truemotion 1 | |
110 | @item FFV1 @tab FFmpeg video 1 | |
111 | @item FFVH @tab FFmpeg Huffyuv | |
112 | @item H261 @tab ITU H.261 | |
113 | @item H262 @tab ITU H.262 | |
114 | @item H263 @tab ITU H.263 | |
115 | @item H264 @tab ITU H.264 | |
116 | @item HFYU @tab Huffyuv | |
117 | @item I263 @tab Intel H.263 | |
118 | @item IV31 @tab Indeo 3.1 | |
119 | @item IV32 @tab Indeo 3.2 | |
120 | @item IV50 @tab Indeo 5.0 | |
121 | @item LJPG @tab ITU JPEG (lossless) | |
122 | @item MJLS @tab ITU JPEG-LS | |
123 | @item MJPG @tab ITU JPEG | |
124 | @item MPG4 @tab MS MPEG-4v1 (not ISO MPEG-4) | |
125 | @item MP42 @tab MS MPEG-4v2 | |
126 | @item MP43 @tab MS MPEG-4v3 | |
127 | @item MP4V @tab ISO MPEG-4 Part 2 Video (from old encoders) | |
128 | @item mpg1 @tab ISO MPEG-1 Video | |
129 | @item mpg2 @tab ISO MPEG-2 Video | |
130 | @item MRLE @tab MS RLE | |
131 | @item MSVC @tab MS Video 1 | |
132 | @item RT21 @tab Indeo 2.1 | |
133 | @item RV10 @tab RealVideo 1.0 | |
134 | @item RV20 @tab RealVideo 2.0 | |
135 | @item RV30 @tab RealVideo 3.0 | |
136 | @item RV40 @tab RealVideo 4.0 | |
137 | @item SNOW @tab FFmpeg Snow | |
138 | @item SVQ1 @tab Sorenson Video 1 | |
139 | @item SVQ3 @tab Sorenson Video 3 | |
140 | @item theo @tab Xiph Theora | |
141 | @item TM20 @tab Truemotion 2.0 | |
142 | @item UMP4 @tab non-compliant MPEG-4 generated by UB Video MPEG-4 | |
143 | @item VCR1 @tab ATI VCR1 | |
144 | @item VP30 @tab VP 3.0 | |
145 | @item VP31 @tab VP 3.1 | |
146 | @item VP50 @tab VP 5.0 | |
147 | @item VP60 @tab VP 6.0 | |
148 | @item VP61 @tab VP 6.1 | |
149 | @item VP62 @tab VP 6.2 | |
150 | @item VP70 @tab VP 7.0 | |
151 | @item WMV1 @tab MS WMV7 | |
152 | @item WMV2 @tab MS WMV8 | |
153 | @item WMV3 @tab MS WMV9 | |
154 | @item WV1F @tab non-compliant MPEG-4 generated by ? | |
155 | @item WVC1 @tab VC-1 | |
156 | @item XVID @tab non-compliant MPEG-4 generated by old Xvid | |
157 | @item XVIX @tab non-compliant MPEG-4 generated by old Xvid with interlacing bug | |
158 | @end multitable | |
159 |