Page 1 of 1

Support for ".2vuy" uncompressed YUV files from Avid Liquid

Posted: 17 Oct 2011 20:50
by mark_k
Hi,

The Liquid video editing program from Avid can capture uncompressed video to ".2vuy" files. The video data is uncompressed 8-bit YUV. It also creates an associated .wav file for the captured audio.

When Liquid is installed, it installs a codec so that QuickTime Player is able to play .2vuy files. But it would be nice if VLC could play that type of file too. If anyone is interested in adding support I could send them some sample files. The file format is pretty basic; it seems to consist of a 512-byte header then the frame data. In the .2vuy files I created, less than 0xC0 bytes of the header are used, the rest all zero.

Here's an example of the header at the start of one file:
A0000000 D0020000 00020000 01001800 40595556 00400B00 00000000 00000000
00000000 00000000 90000000 424C5545 00000000 00000000 01000000 00000000
00000000 00000000 00000000 00008C0A 00000000 00000000 00000000 00000000
00000000 8EE30000 00000100 00000000 00000000 00000000 00000000 00000000
00000000 30750000 E9030000 00000000 00000000 08000000 00020000 00000000
FECAFECA 01000000 30750000 E9030000 00000000 00000000 00000000 00000000

Notice the frame rate is given as 0x7530 / 0x3E9, i.e. 30000/1001. (This sequence was NTSC.)
Frame width is given in bytes 4-7 (0x2D0 = 720 pixels)
Frame height is given in bytes 8-11 (0x200 = 512 -- apparently the Avid program uses the extra lines above 480 or 486 for something???)
Bytes per frame seems to be stored in bytes 20-23 (0x000B4000 = 737280 = 720x512x2)

Edit: It seems the "extra" 16 scanlines (512-486) are at the beginning of each frame data. In the files I created, the extra scanlines are all black (i.e. represented as 0x80 0x10 0x80 0x10 0x80 0x10 ...).

-- Mark

Re: Support for ".2vuy" uncompressed YUV files from Avid Liq

Posted: 17 Oct 2011 21:25
by RĂ©mi Denis-Courmont
I assume you tried and failed to open the file in VLC already? It's easy to add if you have a good enough specification and functional sample(s).

Re: Support for ".2vuy" uncompressed YUV files from Avid Liq

Posted: 17 Nov 2013 16:07
by mark_k
My apologies for forgetting about this thread for two years!!

I assume the 0x200 = 512 lines (for NTSC) in bytes 8-11 of in the header hex dump above is because the format allows for VBI data to be included (closed captioning etc.). There is probably an option when capturing to include those lines in the output file. In other NTSC clips, the frame height given in bytes 8-11 is 0x1E6 = 486.

The corresponding audio tracks are recorded as WAV files with the same base name as the .YUV/.2vuy file. I don't know whether the number of audio channels or other info is somehow encoded in the file header.

Anyway, I have uploaded some sample clips in this format. Most are demo/sample clips from the Liquid DVD. The bmw2, bmw4, and bmw6 clips are NTSC. blue, car, and green2 are PAL.
The REEL.N02F7017F.tar.xz and REEL.N565600FA.tar.xz archives contain clips I captured myself from an NTSC NES game console, using a Liquid Pro capture box.

4shared link to all the files: http://www.4shared.com/folder/8VKiC1lj/ ... mples.html

Multiupload links to each file:
REEL.N02F7017F.tar.xz (26.93 MB) http://www.multiupload.nl/AVA0TL1DU4
REEL.N565600FA.tar.xz (35.26 MB) http://www.multiupload.nl/0GB07DYL20
bmw2_NTSC.tar.xz (45.96 MB) http://www.multiupload.nl/7F432L1JGP
bmw4_NTSC.tar.xz (73.24 MB) http://www.multiupload.nl/9PCLV8II7K

Re: Support for ".2vuy" uncompressed YUV files from Avid Liq

Posted: 17 Nov 2013 16:08
by mark_k
More links (since only 5 URLs are allowed per post)...
bmw6_NTSC.tar.xz (53.91 MB) http://www.multiupload.nl/VD295KWI8H
blue_PAL.tar.xz (42.75 MB) http://www.multiupload.nl/3A84SJISII
car_PAL.tar.xz (52.52 MB) http://www.multiupload.nl/4988CJ3IR4
green2_PAL.tar.xz (79.39 MB) http://www.multiupload.nl/13WLOFV9H5

Re: Support for ".2vuy" uncompressed YUV files from Avid Liq

Posted: 17 Nov 2013 16:10
by mark_k
In case it's any help here are some unfinished notes I made on looking at the headers of two files.

Code: Select all

Example file header (for file I captured myself, NTSC) A0000000 D0020000 00020000 01001800 40595556 00400B00 00000000 00000000 00000000 00000000 90000000 424C5545 00000000 00000000 01000000 00000000 00000000 00000000 00000000 00008C0A 00000000 00000000 00000000 00000000 00000000 8EE30000 00000100 00000000 00000000 00000000 00000000 00000000 00000000 30750000 E9030000 00000000 00000000 08000000 00020000 00000000 FECAFECA 01000000 30750000 E9030000 00000000 00000000 00000000 00000000 Offset Value 0 0x0A = 10 4 0x000002D0 = 720 Number of samples per line 8 0x00000200 = 512 Number of lines per frame $0C 0x0001 ??? $0E 0x0018 = 24 Indicates 24 bits per pixel(?) $10 40 59 55 56 "@YUV" in ASCII $14 0x000B4000 = 737280 Number of bytes per frame??? (720 x 512 x 2) $18-$27 zero bytes ??? $28 0x00000009 ??? $2C 42 4C 55 45 "BLUE" in ASCII $30-$37 zero bytes ??? $38 0x00000001 ??? $3C-$4B zero bytes ??? $4C 0x0000 ??? $4E 0x0A8C = 2700 Perhaps related to 13.5MHz luma sampling frequency??? $50-$63 zero bytes ??? $64 0x0000E38E = 58254 ??? $84 0x00007530 = 30000 Frame rate numerator $88 0x000003E9 = 1001 Frame rate denominator $94 0x00000008 ??? $98 0x00000200 = 512 Number of lines per frame $A0 0xCAFECAFE ??? Perhaps some kind of signature to assist in format detection??? $A4 0x00000001 ??? $A8 0x00007530 = 30000 Frame rate numerator $AC 0x000003E9 = 1001 Frame rate denominator Header from bmw2.YUV 00000000 A0000000 D0020000 E6010000 03001800 40595556 00640B00 00000000 00000000 ................@YUV.d.......... 00000020 00000000 00000000 90000000 424C5545 00000000 00000000 21000000 00000000 ............BLUE........!....... 00000040 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 00000060 00000000 8EE30000 00000100 40000000 00000000 00000000 00000000 00000000 ............@................... 00000080 00000000 30750000 E9030000 00000000 00000000 08000000 00000000 00000000 ....0u.......................... 000000A0 FECAFECA 01000000 30750000 E9030000 30003000 3A003000 30003A00 30003100 ........0u......0.0.:.0.0.:.0.1. 000000C0 2E003000 30000000 00000000 00000000 00000000 00000000 00000000 00000000 ..0.0........................... 000000E0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ Differences: 8 0x000001E6 = 486 Note differing number of lines per frame! $C 0x0003 ??? Was 1 in other example $14 0x000B6400 = 746496 ??? Number of bytes per frame 768 x 486 x 2. NOTE THE DIFFERENT RESOLUTION!!! 768 h.pixels, but the value at offset 4 is 720??? $98 0x00000000 Was 8 in other example. $B0-C7 Some kind of unicode timecode string? "00:00:01.00"