从 VCD 复制文件而不转换为 MPEG

从 VCD 复制文件而不转换为 MPEG

我正在使用类似 Fedora 23 的操作系统 (Korora),最近我拿到了一张旧 VCD。 Korora 认为它是一张“视频 CD”,Nautilus 甚至给了我使用 VLC 播放的选项。但是当我点击按钮时,VLC 抛出了几个 IO 错误,如下所示:

File reading failed:
VLC could not read the file (Input/output error).
Unidentified codec:
VLC could not identify the audio or video codec
File reading failed:
VLC could not read the file (Input/output error).
File reading failed:
VLC could not read the file (Input/output error).
Unidentified codec:
VLC could not identify the audio or video codec

然后我尝试使用磁盘应用程序的“创建分区映像”功能复制整个 CD。不幸的是,Disks 抱怨道:

 99.7% (401.3 MB) of the data on the device “CD/DVD Drive — TSSTcorp CDDVDW
 SU-228HB [AS00] (/dev/sr0)” was unreadable and replaced with zeroes in the
 created disk image file. This typically happens if the medium is scratched
 or if there is physical damage to the drive.

在研究这个问题时,我在相关的跨站点问题中遇到了类似的问题在 Ubuntu 上播放 VCD。这对我现在能够随心所欲地播放各种 VCD 来说是有效的,但这在我的脑海中提出了一些问题。

  1. VLC到底是怎么播放VCD的内容的显然,甚至内核也无法正确读取所有扇区而只能显示目录结构?

  2. 如何复制此类光盘?我已经在 Windows 上尝试过了,效果非常好。 Windows 可以读取目录结构中显示的所有文件。一般来说,Linux 只能显示目录结构。

问题2对我来说很重要。大多数相关问题的解决方案只是讨论如何使用 VLC 或 MPlayer 播放 VCD,而没有提供有关实际复制整个分区的方法的任何信息。

vcdxrip如果您的解决方案是使用或使用,请不要回答此问题VLC的转换特征。与我在 Windows 上发现的简单复制相比,它们慢得离谱。

答案1

我使用的是 Debian 和 KDE。

经过搜索和测试,我找到了解决方案,然后找到了这个线程。 @agc 的回复很有价值,但 @dirkt 的评论是对你的问题的直接回复,如果我早点找到它,它会节省我很多时间。

你问过如何从 VCD 复制文件而不转换为 MPEG。 VCD 光盘上的视频文件已经是 MPEG 流。我发现的一些回复说复制 .dat 文件并将其重命名为 .mpg 就足够了。检查文件的内容似乎支持它,但我无法简单地将 .dat 文件复制到我的硬盘驱动器来验证它。对我有用的是vcdxrip,包含在vcdimager包装中。您已明确要求从响应中排除这些内容,但在我的系统上,它是唯一缓慢但稳定地复制文件(而不是创建 ISO 映像)的工具。

  1. 安装它apt-get install vcdimager
  2. 将 VCD 插入驱动器。不需要安装它。
  3. 打开终端并导航到硬盘上您想要 VCD 中的文件的目录。
  4. 跑步vcdxrip -vpC

VCD 中的文件将被复制到当前目录。在上面的命令中:

  • v是为了冗长
  • p是为了显示进步
  • C将 CD-ROM 驱动器指定为源

我希望此回复可以帮助其他人寻找解决方案,即使它可能不如您在 Windows 上获得的速度快。

答案2

此方法适用于某些受版权保护/有划痕的 DVD。由于周围没有 VCD,我不确定这是否能解决复制 VCD 的难题(即,一张光盘戏剧,所以它应该复制,但没有),但可能值得一试。

该方法的要点是,当mplayervlc运行时,可以复制光盘,否则在运行时将无法复制不是跑步。更好的是,复制速度很快,并且不会挂在坏块上。

所以光盘版本,应该是这样的:

  1. 打开终端,然后mplayer运行光盘——既然不需要看到或听到它,无效的输出就足够了:

    mplayer  -really-quiet -slave -vo null -ao null \
             vcd://1 -cdrom-device /dev/cdrom
    

    等待 5 秒钟,然后p暂停。现在就别管它了,让它暂停吧。

  2. 打开其他终端(让另一个终端在后台播放),并用于ddrescue复制光盘映像:

    ddrescue -r 0 -b 2Ki /dev/cdrom foobar.iso foobar.log
    
  3. 完成后ddrescue,返回运行终端mplayer,然后q键入辞职


作为记录,这里是DVD版本,确实有效...

  1. 打开终端,然后mplayer运行DVD——既然不需要看到或听到它,无效的输出就足够了:

    mplayer  -really-quiet -slave -vo null -ao null \
             dvdnav://1 -dvd-device /dev/dvd
    

    等待 5 秒钟,然后p暂停。现在就别管它了,让它暂停吧。

  2. 打开其他终端,让另一个在后台播放,并用于ddrescue复制光盘映像:

    ddrescue -r 0 -b 2Ki /dev/dvd foobar.iso foobar.log
    
  3. 完成后ddrescue,返回运行终端mplayer,然后q键入辞职

相关内容