I need to add DVD writing functionality to an application I'm working on. However it needs to be able to write out files that are being grabbed "live" from a camera, over a long period of time. I can't wait until all the files are captured before I start writing them to the DVD, I need to write them out in chunks as I go along.
I've looked at IMAPI v2, but the main problems seems to be that you need to point it to all the files you plan to write out to disk before you start the burning process. I know it has to concept of "sessions", which means you can write to the DVD in several parts, before you finally "close" it.
But I was wondering if there were any other DVD writing SDK's that allow you to be constantly writing files to a DVD and in particular files that are only in memory. It would be more efficient if I didn't have to write the captured images out to hard before they are burned to DVD.
The solution needs to work under .NET on Windows XP and vista
The Primo burning engine for .Net works nicely.
Generally you have to have your data ready before you start writing a session. What you could do is grab the first image before starting the first session and then grabbing the rest in the background and write new sessions as they've been paged down.
Also, vbAccelerator has a great IMAPI Wrapper for .NET
Format your optical media to a Live File System (Incremental Packet Writing instead of using a mastered disc format with IMAPIv2) and then you will be able to add any file just using i.e. CopyFile without creating new sessions.
This way you will not waste lead-in/lead-out space each time you want to add a new file in a new session...
Notice that to ensure compatibility of disks created on Windows Vista, UDF 2.01 or lower should be selected.
来源:https://stackoverflow.com/questions/58768/sdk-for-writing-dvds