从CDROM读取缓慢

问题描述 投票:0回答:1

我希望这不是题外话,但发现了一个有趣的问题。我有一张旧CD要备份。如果使用系统拖动'n'放盘从cprsync中重新复制(将CD放入第一个驯服中),它只会挂起。

文件是视频文件。我可以在VLC中播放视频文件。如果观看整个视频,则可以立即将视频文件复制到硬盘上。我认为VLC已将数据加载到硬盘驱动器中。

我在Rust中编写了一个简单的cp程序。它打开文件,并通过固定大小的缓冲区将一个文件读入该缓冲区,然后将缓冲区写入另一个缓冲区(基本上使用std::fs::copy,将一个文件写入另一个)。

我已经尝试调整缓冲区大小(据我所知,这是我唯一可以更改的事情),以便以合理的速度复制数据。到目前为止,我发现最好的是1 KiB和96 KiB缓冲区。但是复制速度太慢了。就像实时观看视频一样。

我的问题是:

  • 为什么会这样?
  • vlc操作系统没有执行什么操作?
performance io vlc cd-rom
1个回答
1
投票

[大多数视频播放器(我不特别了解VLC)具有一定的“容错能力”;主要是因为它们的设计目的是应付不可靠的信号源(例如,带有无线电干扰的“免费电视”,互联网上的流媒体传输以及丢包等)。大多;如果部分数据损坏或不可用,则只会在播放中引起“毛刺”,例如一帧的一小部分颜色错误(或跳过了整个帧)的视频和/或短暂的静默状态音频,这些故障可能很难发现。

对于视频播放器(设计为具有“容错性”),通过跳过已损坏/不可用的数据并让容错性(无论如何必须存在)来处理它来处理从CD读取的错误,将是“非常正常的” 。

对于复制原始文件数据,没有容错能力-每个字节的每一位都是(假定是)原始文件的精确副本,并且不能跳过/忽略部分数据。

© www.soinside.com 2019 - 2024. All rights reserved.