为什么 正在播放的文件 即使 删除了也能播放?我用的 Potplayer

2015-06-04 19:12:49 +08:00
 zhangchioulin

如题,这个文件 先前已经完整的播放过一次了,我想做个实验:
* 先把用Potplayer播放器打开视频,让视频处于正在播放阶段
* 播放的时候把文件删除掉
* windows 7 系统不提示错误
* 文件能正常播放,并且能直接跳转时间继续播放


疑问: 这个好神奇啊!为什么能这样?

3323 次点击
所在节点    问与答
16 条回复
Septembers
2015-06-04 19:57:22 +08:00
通常为了流畅播放会预载一段时间的视频到内存
cfans1993
2015-06-04 20:28:04 +08:00
系统在播放视频的时候会把视频文件先加载到内存,播放的时候是读取内存的视频数据,如果视频文件足够小的话,那么整个文件都会被加载到内存。
删了磁盘文件,系统没有提示可能是这个视频文件当前没有被内存引用,视频播放器没有报错,那肯定就是因为视频文件比较小,已经全部装载到内存了
最近刚好在看 操作系统概念 ,出来丢一下脸●v●
zhangchioulin
2015-06-04 22:59:08 +08:00
@cfans1993 感谢回答,播放的视频文件大小是1G的大小,我是打开后很快的速度就删除的,然后迅速跳转的,也能播放。不过我觉得原理就是你说的那样
aliuwr
2015-06-04 23:25:41 +08:00
@cfans1993 应该是 Memory mapped file。由于程序不是独占模式打开文件,所以可以正常删除,实际上文件的 handle 并没有关闭。

可以尝试下播放大于可用内存的视频文件,就知道是什么情况了。
sNullp
2015-06-05 06:53:13 +08:00
我不认为这和内存大小、缓存有关。
而是你打开了文件 handle 以后,即便你删除了文件,也只是文件被 unlink 了一次。然而在你关闭文件 handle 之前,文件的 refcount 非0 所以其实那时候文件并没有被真正的删除,而只是从目录里消失了而已。
ryd994
2015-06-05 08:12:59 +08:00
如果你停止在重新播放是不是就不行了?
如果是,那就是文件系统实际上还没有删除
zhangchioulin
2015-06-05 08:30:41 +08:00
@ryd994 我回去试一试
zhangchioulin
2015-06-05 08:31:45 +08:00
@aliuwr 暂时还没有这样的视频。。。
shakoon
2015-06-05 09:32:08 +08:00
猜测是这个软件对磁盘读取做了优化,在最开始获得了文件在磁盘的第一个存放块后就跳过了操作系统的文件的管理,也就是说没用系统的api,自己实现了文件管理,就像数据恢复软件不理会文件分配表一样,自己直接去读文件剩下的部分去了,所以对于操作系统的删除因为是“标记为删除”所以实际数据还在磁盘上,这个软件能继续读取。楼主可以试试找一个小一点的分区,把真正播放的文件删了后,立刻拷贝大量文件到这个分区来,看看播放是不是会报错
kruskal
2015-06-05 10:11:12 +08:00
@zhangchioulin
下个原盘试试
nogoodren
2015-06-05 10:53:12 +08:00
清空回收站没有
zhangchioulin
2015-06-05 10:54:35 +08:00
@nogoodren 回收站 没有清空,今晚我回去试一试
zhangchioulin
2015-06-05 10:54:54 +08:00
@kruskal @_@下的到吗
kruskal
2015-06-05 10:58:29 +08:00
@zhangchioulin
到处都是好吧←_←
用心想想
yaoye0o
2015-06-05 11:00:27 +08:00
网易云音乐安卓客户端播放本地音乐时删掉该音乐也可以继续播放
imn1
2015-06-05 12:01:11 +08:00
你播的视频文件太小了
较大的话正在播放应该删除时不能操作
系统服务禁用superfetch应该也不能删除操作,反正我这边是这样

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/196158

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX