计算机 A 上有一个 mp4 视频。在计算机 B 上,我打开 smb://computerA 连接,然后开始观看 mp4 视频。它很慢,所以我决定在监视同一个 smb 连接的同时复制它(并在完成后在本地启动它),我访问已安装的 smb 共享并将文件复制到我的桌面。副本是否会利用现有的比特流,以便不必重新读取视频的各个部分,或者无论流连接如何,它都会启动完全不相关的副本吗?
这是在 Mac OS X 上,但我很高兴听到针对 Linux 2.x 或 3.x 的答案
答案1
这在很大程度上取决于所使用的软件(两端)。另外,您的术语“比特流”似乎具有误导性。
从技术上讲,答案是否定的。流中用于播放的位置不能“重用”用于文件传输。但即使在 Mac 上,这个答案也不是。
我认为你的问题是视频文件是否需要从磁盘读取或者位于 RAM 中。这不是一个容易回答的问题。 Linux 将文件缓存存储在您的空闲 RAM 中,如果有足够的空间,那么是的,文件传输实际上将从 RAM 而不是磁盘传输。然而,这是一个透明的过程,如果没有足够的 RAM,或者文件由于某种原因已从缓存中刷新,那么它将从磁盘读取。
从用户的角度来看,没有理由关心,操作系统将执行传输和流式传输文件所需的操作。