A previous post was about LUTs, the little files needed to color grade your photo’s and video’s. One of the best systems for color grading video in use by professionals today is DaVinci Resolve. The system originally was all hardware based, but in the 2004 as computers were able to process higher quality video, da Vinci Systems released new digital systems.
Like most professional multimedia editing software, projects are used to manage work and DaVinci Resolve is no different. Projects are generally where all the settings for the project are stored, but don’t generally store the actual media used in the project. Project files are often XML with unique schema’s, but other pack a little more into the project file.
hexdump -C project.drp | head
00000000 50 4b 03 04 14 00 08 00 08 00 f2 54 90 5a ef 18 |PK.........T.Z..|
00000010 b0 25 47 0c 00 00 db 1b 00 00 0b 00 00 00 70 72 |.%G...........pr|
00000020 6f 6a 65 63 74 2e 78 6d 6c 9d 58 d9 72 5b 37 12 |oject.xml.X.r[7.|
00000030 7d cf 57 68 f4 7e 4d ec 4b 8a 51 ca b1 92 89 aa |}.Wh.~M.K.Q.....|
00000040 2c db 65 29 79 9d 6a 00 0d 85 09 45 aa 48 4a 71 |,.e)y.j....E.HJq|
00000050 fe 7e 0e ee 42 51 94 9c 68 c6 29 85 17 0d a0 d1 |.~..BQ..h.).....|
00000060 e8 3e bd 61 fe fd 97 db e5 c9 03 6f b6 8b f5 ea |.>.a.......o....|
00000070 bb 53 f9 46 9c 9e f0 2a af cb 62 75 f3 dd e9 2f |.S.F...*..bu.../|
00000080 d7 3f 75 e1 f4 fb b3 6f e6 ff ea ba f3 f4 f6 ee |.?u....o........|
00000090 ee 57 de 60 55 7c 23 df 98 37 42 48 79 7a 72 9e |.W.`U|#..7BHyzr.|
A DaVinci Resolve Project file uses a ZIP container to store all the project settings in one file. Let’s see what also might be inside.
Path = project.drp
Type = zip
Physical Size = 543860
Date Time Attr Size Compressed Name
------------------- ----- ------------ ------------ ------------------------
2018-02-27 20:25:08 ..... 1010030 287793 project.xml
2018-02-27 20:25:08 ..... 21173 6856 MediaPool/Master/000_Timelines/MpFolder.xml
2018-02-27 20:25:08 ..... 492690 28067 MediaPool/Master/001_Audio/MpFolder.xml
2018-02-27 20:25:08 ..... 20177 3588 MediaPool/Master/002_gfx/MpFolder.xml
2018-02-27 20:25:08 ..... 11025 2611 MediaPool/Master/003_VO/MpFolder.xml
2018-02-27 20:25:08 ..... 98309 7042 MediaPool/Master/004_ScreenCaptures Consolidated/MpFolder.xml
2018-02-27 20:25:08 ..... 1278493 66424 MediaPool/Master/005_Video H264/MpFolder.xml
2018-02-27 20:25:08 ..... 1995 748 MediaPool/Master/MpFolder.xml
2018-02-27 20:25:08 ..... 1638204 137086 SeqContainer/909a0a2c-4183-4310-9f78-6e15c3c59cb4.xml
2018-02-27 20:25:08 ..... 8806 1169 Gallery.xml
2018-02-27 20:25:08 ..... 12697 696 media.dat
------------------- ----- ------------ ------------ ------------------------
2018-02-27 20:25:08 4593599 542080 11 files
Looks like a lot of XML! The consistent XML in all the DRP files is the apply named “project.xml” along with “Gallery.xml”.
cat project.xml | head
<?xml version="1.0" encoding="UTF-8"?>
<!--DbAppVer="19.1.4.0011" DbPrjVer="14"-->
<SM_Project DbId="db65f2ee-2bff-41cd-b478-f96c26e9609f">
<FieldsBlob>000000010000000700000026005400650078007400520065006e006400650072004900740065006d005600650063004200410000000c00ffffffff0000002400520065006e0064006500720043006100630068006500560065007200730069006f006e0000000200000000010000001e00500072006f006a00650063007400460065006100740075007200650073000000050000000000000000010000002e00500072006f006a00650063007400440062004d006900670072006100740069006f006e00530074006100740065000000040000000000000000030000002e0049007300500072006f006a0065006300740041006700650049006e004d006900630072006f00530065006300730000000100010000001400470061006c006c0065007200790052006500660000000a000000004800330033003400320034003300380036002d0034006400330030002d0034003600610035002d0061006100340033002d006100330035003200620066006500370038003200640063000000260046007500730069006f006e00530069007a0069006e006700560065007200730069006f006e000000020000000002</FieldsBlob>
<LockId/>
<User>86f03abc-9354-47d9-9006-a55b6b1d49cf</User>
<Folder/>
<UserId>-1</UserId>
<SysId>6CB133A11B81</SysId>
<ProjectId>0</ProjectId>
It appears the version of DaVinci Resolve is pretty important. If you try and open a DRP file without using the most up-to-date software you might run into problems. From what I can see, every time a new major version is released, the updates to the XML cause the project error when imported. So knowing the version of the DRP file can be a critical piece of metadata needed in understanding the format. There are some helpful apps created by DaVinci Resolve users you can try, or you can try a little python script to report back the version used in a DRP or whole folder of DRP files.
There is one other file used by the DaVinci Resolve software. It uses the DRT extension and is for exporting and importing single timelines to the software. Like a DRP it is a simple project file that only points to the media used in the project and only stores the settings needed.
Path = timeline.drt
Type = zip
Physical Size = 215159
Date Time Attr Size Compressed Name
------------------- ----- ------------ ------------ ------------------------
2021-04-21 21:16:42 ..... 45726 8888 project.xml
2021-04-21 21:16:42 ..... 670306 198698 MediaPool/Master/MpFolder.xml
2021-04-21 21:16:42 ..... 98268 7089 SeqContainer/7eb849f3-41cb-4e3f-baa8-d5b134b57aa7.xml
------------------- ----- ------------ ------------ ------------------------
2021-04-21 21:16:42 814300 214675 3 files
This DRT file also has a project.xml file, but doesn’t have the Gallery.xml file we normally find in a DRP file. We can use this to distinguish the difference. The project.xml is the same as the DRP, so this distinction is important.
cat project.xml |head
<?xml version="1.0" encoding="UTF-8"?>
<!--DbAppVer="17.1.1.0009" DbPrjVer="10"-->
<SM_Project DbId="ec6cb2e2-0b3c-43b8-8f90-a5fcb973af3b">
<FieldsBlob>00000001000000040000002e00500072006f006a00650063007400440062004d006900670072006100740069006f006e00530074006100740065000000040000000000000000020000002e0049007300500072006f006a0065006300740041006700650049006e004d006900630072006f00530065006300730000000100010000001400470061006c006c0065007200790052006500660000000a000000004800660030003800380038003300390038002d0066006400620037002d0034006300320036002d0061003700310032002d003300360038006200300036003300300065003400330031000000260046007500730069006f006e00530069007a0069006e006700560065007200730069006f006e000000020000000002</FieldsBlob>
<LockId/>
<User>04d71873-a504-40c6-bde5-41709691a2c9</User>
<Folder/>
<UserId>-1</UserId>
<SysId>94F6D6F3F60F</SysId>
<ProjectId>0</ProjectId>
In both formats they use the XML root tag of “SM_Project”, this can also be used to define a signature for the two formats as “project.xml” could be used with a different format and we don’t want there to be a false identification.
I was able to trace back the use of the DRP format back to DaVinci Resolve version 9. In version 8, it appears projects are saved using the name and extension, “Default Project.resolve.zip”. From what I could fine, DaVinci Resolve version 9 was a big re-write and so it makes sense to settle on more useful extension. The project.xml file in a version 8 format is slightly different.
cat project.xml | head
<SM_Project DbId="9ba0c4dc-d99c-4b7f-b0da-d254d91e34e2" DbAppVer="8.2 (#153)">
<LockId></LockId>
<User>159415b8-7515-43bf-b5f5-00d98949434b</User>
<UserId>-1</UserId>
<SysId>7cd1c388ea29</SysId>
<ProjectId>0</ProjectId>
<RevivalTaskSetID>-1</RevivalTaskSetID>
<PlayHeadsSplitDisplay>false</PlayHeadsSplitDisplay>
<pGallery>
<Gallery::GyGallery DbId="9884d8ff-096e-4df0-b833-0e75e6e07e15">
Still uses the “SM_Project” root tag, but displays the DbAppVer information differently. It would be good to find more examples of the version 8 and earlier to see how this format has evolved over time. For now, I have created a signature you can test if you happen to have any DRP files in your archive.