我正在开发一个名为LMCT(Let Me Copy That)的应用程序,它是用Java编写的,我只需要知道如何从java刻录到DVD/CD.
任何例子,API或链接都是受欢迎的.
我正在将数据存档到DVD,我想要将DVD打包完整.我知道DVD上我想要的所有文件的名称和大小,但我不知道元数据占用了多少空间.我想在每张DVD上获得尽可能多的文件,所以我使用了一个带有贪婪的bin-packing的Bubblesearch启发式算法.我尝试了10,000种替代方案并获得最佳选择.目前我知道所有文件的大小,因为我不知道文件如何存储在ISO 9660文件系统中,我为元数据添加了大量的slop.我想减少污泥.
我可以使用,genisoimage -print-size
但它太慢了 - 假设40,000个文件占用500MB,大约需要3秒钟.每张DVD需要8小时不在卡片中.我以前修改了genisoimage
源代码,我真的不想尝试从源代码中挤出算法; 我希望有人知道更好的估算方法,或者可以指出一个有用的规范.
澄清问题和问题:
我需要刻录分成多张DVD的档案,通常一次大约五张.我试图解决的问题是决定将哪些文件放在每张DVD上,以便每张DVD(除了最后一张)尽可能充分.这个问题是NP难的.
我正在使用标准的贪婪打包算法,您首先放置最大的文件,然后将其放入第一张有足够空间的DVD中.所以j_random_hacker,我绝对不是从随机开始的.我从排序开始并使用Bubblesearch来扰乱文件的打包顺序.此程序将我的包装从估计容量的约80%提高到估计容量的99.5%以上.这个问题是关于更好地估计容量 ; 目前我估计的容量低于实际容量.
我编写了一个尝试10,000次扰动的程序,每个程序包含两个步骤:
第2步是我正在努力改进的步骤.正如Tyler D所暗示的那样,目前我正在"谨慎行事".但我想做得更好.我买不起,genisomage -print-size
因为它太慢了.同样,我不能将文件tar到磁盘,因为它只是太慢,但tar文件与ISO 9660图像的大小不同.这是我需要预测的ISO 9660图像的大小.原则上这可以完全准确地完成,但我不知道该怎么做.这就是问题所在.
注意:这些文件位于具有3TB硬盘存储空间的计算机上.在所有情况下,文件的平均大小至少为10MB; 有时候它会大得多.所以有可能genisomage
毕竟会足够快,但我怀疑它 - 似乎通过将ISO映像写入/ dev/null来工作,我无法想象当图像大小接近时它会足够快4.7GB.我现在无法访问该计算机,或者当我发布原始问题时.当我确实在晚上访问时,我会尝试获得更好的数字.但我认为这不是genisomage
一个好的解决方案 - 虽然它可能是学习文件系统模型的好方法,它告诉我它是如何工作的.知道块大小为2KB已经很有帮助.
知道同一目录中的文件被刻录到samae DVD也很有用,这简化了搜索.我希望直接访问这些文件,这会排除tar-before-burning.(大多数文件都是音频或视频,这意味着尝试使用它们没有意义gzip
.)
是否可以确定CD/DVD/BluRay磁盘上特定位的物理位置(例如角度+半径)?
我问的原因是这个,我想设计一个数据结构,它大致在介质的另一侧存储恢复信息,以避免单个划痕使整个练习没有实际意义.
我需要在C#应用程序中从我的网络摄像头刻录视频DVD吗?做正确的方法是什么?需要什么步骤?
我想我必须使用正确的文件夹结构和MPEG2视频创建图像,然后将其刻录到DVD?IMAPI2?
我写了一个用C#刻录CD的程序,但现在我想通过密码来保护我的CD.可能吗?
也许这是一个愚蠢的问题....我正在寻找一个项目,要求我将视频刻录到DVD,以便传统的DVD播放器可以播放它.我找到了几个"第三方工具"来做这件事,这很棒,我可能会采取的方向.
但是,对于我的生活,我不能理解如何坐下来为DVD写一个视频.
我知道这主要是学术性的(只是使用可用的库!),我真的很喜欢我自己如何/可以自己做这个的方向.
dvd-burning ×6
c# ×3
dvd ×2
.net ×1
cd ×1
cd-burning ×1
cddvd ×1
filesystems ×1
imapi ×1
iso9660 ×1
java ×1
vb.net ×1
video ×1