\input texinfo @c -*- texinfo -*- @documentencoding UTF-8 @settitle NUT @titlepage @center @titlefont{NUT} @end titlepage @top @contents @chapter Description NUT is a low overhead generic container format. It stores audio, video, subtitle and user-defined streams in a simple, yet efficient, way. It was created by a group of FFmpeg and MPlayer developers in 2003 and was finalized in 2008. The official nut specification is at svn://svn.mplayerhq.hu/nut In case of any differences between this text and the official specification, the official specification shall prevail. @chapter Modes NUT has some variants signaled by using the flags field in its main header. @multitable @columnfractions .4 .4 @item BROADCAST @tab Extend the syncpoint to report the sender wallclock @item PIPE @tab Omit completely the syncpoint @end multitable @section BROADCAST The BROADCAST variant provides a secondary time reference to facilitate detecting endpoint latency and network delays. It assumes all the endpoint clocks are synchronized. To be used in real-time scenarios. @section PIPE The PIPE variant assumes NUT is used as non-seekable intermediate container, by not using syncpoint removes unneeded overhead and reduces the overall memory usage. @chapter Container-specific codec tags @section Generic raw YUVA formats Since many exotic planar YUVA pixel formats are not considered by the AVI/QuickTime FourCC lists, the following scheme is adopted for representing them. The first two bytes can contain the values: Y1 = only Y Y2 = Y+A Y3 = YUV Y4 = YUVA The third byte represents the width and height chroma subsampling values for the UV planes, that is the amount to shift the luma width/height right to find the chroma width/height. The fourth byte is the number of bits used (8, 16, ...). If the order of bytes is inverted, that means that each component has to be read big-endian. @section Raw Audio @multitable @columnfractions .4 .4 @item ALAW @tab A-LAW @item ULAW @tab MU-LAW @item P @tab little-endian PCM @item P @tab big-endian PCM @end multitable is S for signed integer, U for unsigned integer, F for IEEE float is D for default, P is for planar. is 8/16/24/32 @example PFD[32] would for example be signed 32 bit little-endian IEEE float @end example @section Subtitles @multitable @columnfractions .4 .4 @item UTF8 @tab Raw UTF-8 @item SSA[0] @tab SubStation Alpha @item DVDS @tab DVD subtitles @item DVBS @tab DVB subtitles @end multitable @section Raw Data @multitable @columnfractions .4 .4 @item UTF8 @tab Raw UTF-8 @end multitable @section Codecs @multitable @columnfractions .4 .4 @item 3IV1 @tab non-compliant MPEG-4 generated by old 3ivx @item ASV1 @tab Asus Video @item ASV2 @tab Asus Video 2 @item CVID @tab Cinepak @item CYUV @tab Creative YUV @item DIVX @tab non-compliant MPEG-4 generated by old DivX @item DUCK @tab Truemotion 1 @item FFV1 @tab FFmpeg video 1 @item FFVH @tab FFmpeg Huffyuv @item H261 @tab ITU H.261 @item H262 @tab ITU H.262 @item H263 @tab ITU H.263 @item H264 @tab ITU H.264 @item HFYU @tab Huffyuv @item I263 @tab Intel H.263 @item IV31 @tab Indeo 3.1 @item IV32 @tab Indeo 3.2 @item IV50 @tab Indeo 5.0 @item LJPG @tab ITU JPEG (lossless) @item MJLS @tab ITU JPEG-LS @item MJPG @tab ITU JPEG @item MPG4 @tab MS MPEG-4v1 (not ISO MPEG-4) @item MP42 @tab MS MPEG-4v2 @item MP43 @tab MS MPEG-4v3 @item MP4V @tab ISO MPEG-4 Part 2 Video (from old encoders) @item mpg1 @tab ISO MPEG-1 Video @item mpg2 @tab ISO MPEG-2 Video @item MRLE @tab MS RLE @item MSVC @tab MS Video 1 @item RT21 @tab Indeo 2.1 @item RV10 @tab RealVideo 1.0 @item RV20 @tab RealVideo 2.0 @item RV30 @tab RealVideo 3.0 @item RV40 @tab RealVideo 4.0 @item SNOW @tab FFmpeg Snow @item SVQ1 @tab Sorenson Video 1 @item SVQ3 @tab Sorenson Video 3 @item theo @tab Xiph Theora @item TM20 @tab Truemotion 2.0 @item UMP4 @tab non-compliant MPEG-4 generated by UB Video MPEG-4 @item VCR1 @tab ATI VCR1 @item VP30 @tab VP 3.0 @item VP31 @tab VP 3.1 @item VP50 @tab VP 5.0 @item VP60 @tab VP 6.0 @item VP61 @tab VP 6.1 @item VP62 @tab VP 6.2 @item VP70 @tab VP 7.0 @item WMV1 @tab MS WMV7 @item WMV2 @tab MS WMV8 @item WMV3 @tab MS WMV9 @item WV1F @tab non-compliant MPEG-4 generated by ? @item WVC1 @tab VC-1 @item XVID @tab non-compliant MPEG-4 generated by old Xvid @item XVIX @tab non-compliant MPEG-4 generated by old Xvid with interlacing bug @end multitable