问题标签 [dvd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
530 浏览

c++ - 在 Windows 7 x64 上检测 DVD-RAM 介质是否为空

我正在尝试使用 Windows 上的 C++ 检测 DVD-RAM 介质是否为空。最简单的选择是使用 IMAPI(版本 2)——省略样板代码:

该代码通常可以完美运行。但是,对于 DVD-RAM,它会给出错误的结果:在返回状态中启用的唯一标志是 IMAPI_FORMAT2_DATA_MEDIA_STATE_OVERWRITE_ONLY (= 0x1)。在 Windows Vista 32 位上,它按预期工作。

有谁知道这个结果的原因?有什么解决方法吗?

0 投票
1 回答
2246 浏览

java - 用 Java 获取所有 DVD 驱动器

在获得驱动器根列表后,Java中是否有一种跨平台的方式来检查是否有驱动器是:

  • DVD 驱动器
  • ...包含磁盘?

我希望用户能够选择要播放的 DVD,并且将选项范围缩小到 DVD 驱动器而不是包括其他驱动器(例如笔式驱动器、硬盘驱动器等)在这种情况下会有所帮助。如果我可以获得此类驱动器的列表,那么显示哪些包含磁盘将再次有所帮助(同样的原因。)

在四处搜索之后,我还没有找到任何不涉及特定平台黑客的方法。外面有什么吗?

0 投票
1 回答
479 浏览

java - HandBrake DVD 扫描的正则表达式帮助

我正在使用 Java 进行开发,我有一长串文本,其中包含我需要的有关特定 DVD 的所有信息。(这是 HandBrakeCLI 的扫描输出)。我需要构建一个正则表达式,它将捕获我需要的每一位信息,但忽略一些特殊情况。我的程序由 DVD、标题、章节和语言对象组成。它的结构如下: DVD 有标题 标题有章节和语言 我需要从输出中正则表达式输出以下信息:标题编号 - 语言名称和音轨编号 - 章节编号

给我带来特别麻烦的一个特殊情况是某些标题开始扫描,但输出显示它们被忽略,因为它太短并从下一个标题开始。我不知道如何编写一个忽略任何包含它的匹配项的正则表达式。我一直很难弄清楚!

这将捕获所有需要忽略的标题,但我认为我需要一个长正则表达式来捕获我需要的所有信息并忽略特殊情况。如果我能以某种方式将每个有效的标题扫描绑定到一个组中,那就太好了!非常感谢您的帮助!

以下是输出示例:

Title 3 与 Title 2 相似,Title 5 与 Title 1 相似

0 投票
3 回答
1746 浏览

assembly - 引导加载程序如何读取 DVD(cd)?

我有一个用汇编语言编写的第一阶段引导加载程序。我需要它从 dvd(或 cd)加载第二阶段引导加载程序。我只找到了从 floopy 或 hdd 读取的示例。那里使用的中断是13h。在中断描述中它说它可以读取软盘和硬盘。我尝试使用 13h 来读取 CD,就好像它是软盘一样,但它不起作用。

问题:软盘和 dvd 之间是否有区别(在访问它们的意义上),我可以使用 CHS(cilinder,head,sector),它的扇区大小是多少,我可以使用 13h 指令正确读取 dvd。也许是一些例子。我查看了 LILO 的源代码,发现那里只有 13 小时,所以它必须工作。谢谢。

0 投票
2 回答
3205 浏览

windows - 如何在 Windows 7 上从 CD/DVD 自动运行软件?

我希望我的软件在用户将 CD/DVD 放入驱动器时自动从 CD/DVD 运行而无需用户交互。据我所知 autorun 应该仍然适用于 Windows 7,他们只是禁止它用于 USB 驱动器。

但是怎么做?

假设我想启动我的软件 xy.exe,我必须在我的 autorun.inf 中放入什么?我试过这个,但它不工作:

还有什么可做的吗?有什么建议么?

0 投票
1 回答
282 浏览

delphi - Delphi 中的 DVD 调查类

有谁知道类/组件 FreeWare/ShareWare/BuyWare 可以调查 DVD 结构(和 - 如果可能的话 - 蓝光结构)并返回有关 DVD 上关于标题数量和标题信息的信息标题?

它必须为每个标题返回以下信息:视频编码(MPEG-1/MPEG-2)、视频分辨率(352x240、352x288、480x480、480x576、544x480、544x576、704x480、704x576、720x480、720x576)、变形?、时长以秒/毫秒为单位,帧率(23.976、24.000、25.000、29.997、30.000)、字幕轨和音轨。

对于每个单独标题中的每个音轨,需要以下信息:音频格式(DTS、Dolby Digital、LPCM、MPEG)、通道数(主通道 + 低音炮,必须能够处理 f.ex. Dolby Digital 3.1 或 4.0 ), 语言

对于每个单独标题中的每个字幕轨道,都需要轨道的语言。

所有这些信息都可以从 VIDEO_TS/VTS_xx_y IFO 文件中获得,但我无法找出可以处理我的所有 DVD 所需的确切代码。

我有一个位于http://www.heartware.dk/DVD.PAS的骨架类,可以满足我的需求。

0 投票
4 回答
27512 浏览

ffmpeg - FFMpeg 开启 DVD VOB 链?

我是 FFMpeg 的新手,所以这可能是一个愚蠢的问题,但我在文档中看不到答案。

我想从 DVD vob 文件中解码帧。打开组中的第一个 VOB 工作正常,但我如何告诉 ffmpeg 继续到下一个 VOB 并读取 DVD 上的所有 VOB?

我在硬盘上的一个文件夹中有 VOB 文件。

0 投票
2 回答
3426 浏览

macos - 在 C 中确定 OS X 中 DVD 驱动器的区域代码,而不要求 DVD 位于驱动器中

基本上我运行一个计算机网络,需要知道各种计算机的驱动器设置为什么区域代码。我不需要更改区域,但我不知道如何在不单独访问每台计算机并粘贴在光盘中的情况下确定区域。我尝试使用 Apple 的可可 DVD 播放框架,但这需要将磁盘插入驱动器,这有点违背了目的。

那么是否有任何 API 可以用来确定 Mac Pro 的 DVD 驱动器上的区域代码,而无需插入光盘?我愿意用几乎任何语言编写代码。

谢谢

0 投票
1 回答
406 浏览

linux - Perl 模块或方法无需系统命令即可从目录创建符合 DVD 标准的 ISO

是否有任何 Perl 模块或模块组合来创建兼容 DVD 的 ISO?这将在 Linux 上运行,我不关心可移植性。我要做的是从包含 VIDEO_TS 目录结构的目录中创建一个兼容 DVD 的 ISO。该解决方案不需要翻录实际的 DVD。

我目前运行的是:

我知道 Perl 能够运行外部命令:

还有Filesys::MakeISO::Driver::Mkisofs使用 genisoimage/mkisofs 的 CPAN 模块。我特别想要的是一个使用 linux/OS 命令的解决方案。如果没有这样的解决方案或解决方案过于复杂,请说明。谢谢。

0 投票
1 回答
1642 浏览

c - UDF 文件系统读取、模糊元数据分区、带有 ISO 映像的 libdvdread

所以这可能有点太具体了,任何人都无法阅读,任何人都无法提供帮助。但也许有人以前做过这件事。

我目前正在使用可靠但不是很准确的 libdvdread 库来读取 ISO 文件/设备。但在这种情况下,具体的实现并不那么重要。更多关于如何读取 UDF 文件系统的内容。我已经阅读了很多 Ecma-167 和 udf260 PDF 文件。

因此,首先,让我们看一下来自 IMGBURN 的 ISO 映像,它似乎可以正常工作,就像从零售蓝光复制的映像一样。

块布局如下:

所以我们开始读取 ISO 镜像;

到目前为止,一切都很好。你可以看到我取“元数据主文件位置”,在这个例子中是0,并将它添加到分区开始,去寻找FSD。这似乎适用于“元数据主文件位置”不为 0 的示例。稍后会详细介绍。

现在寻找FSD,我们找到的第一个项目是:

Ecma-167 定义 filetype=250 具有“元数据主文件”,并且 AD.Location 指向元数据。也有可能找到一个filetype=251(元数据镜像文件)

我使用“元数据主文件”位置(此处为 32)作为“真正”查找 FSD 的位置的间接指针。出于某种原因,这是 partition.Start + Location (288 + 32) = 320。

在块 320,我们找到了 FSD。所以也许我在正确的轨道上。

太好了,我们阅读了 FSD,它的 RootICB 位于“+2”。现在我本来希望这是“partition.Start + 2”(288+2),但这不起作用。起作用的是“FSD_Location + 2”(320+2)。真的可以这样吗?

在 DVD ISO 中,FSD_Location=0(分区上的第一个块,因为没有 EXTFileInfo+250 的方式),所以使用这个逻辑仍然有效。

让我们假设它是正确的;

因此,322 处的块确实是一个 ExtFileInfo,文件类型 ==4(目录)并且位于位置 = +3。同样,这似乎是“fsd_location + 3”= 323。

成功。它列出了所有内容。

这是我感到困惑的地方。我使用 OSX“newfs_udf”为自己创建一个 UDF 测试图像;

这些块是:

阅读这个 ISO 也很有效,至少在最初是这样。

注意这里的元数据分区是+32,加上我们正确地找到了ExtFileInfo+Filetype=250。然后是 +34,这正确地让我们获得了 FSD!

FSD 的 RootICB 为 +34,同样来自 FSD,即 291+34 = 325。

它丢失了。我猜应该是 292,但是;

...在阻止列表中,您可以看到根本没有 FID。查看此 ISO 映像的 hexdump,可以在块 292 中找到“A.DIRECTORY.ENTRY”。这是一个 ExtFileEntry。正是那个让我们去寻找元数据主文件位置的那个。

我认为 ExtFileInfo 仅包含一 (1) 个文件描述符,其中 ICB 指向其数据。然而,在偏移量 +380 左右的这个块内,我们有 root (null)、“A.DIRECTORY.ENTRY”和“.Trashes”。

我想我的问题是,OSX 是否以某种方式将 FID 压缩到 ExtFileEntry 中?并且没有 FID 块。这是“有效的”吗?如何检测这种情况?这个 ExtFileInfo 中是否有一些内容表明我应该“不按照位置查找 FID”和“继续解析这个块以获取更多条目”。

在计算 ICB 时,我必须对目录使用“fsd_location + icb.location”,但对于文件(读取实际文件数据),我必须使用“partition.Start + icb.location”。这按预期工作(目录列表和文件没有区别),但它似乎不正确。

如果你读了所有这些,你太棒了:) 现在,如果你能给我一些线索......