保存正在 VLC 中播放的视频

保存正在 VLC 中播放的视频

奇怪的问题,但情况是这样的。我在 Ubuntu 16.04 上的 VLC 中播放视频。我在播放视频时不小心删除了视频。我仍然可以移动到 VLC 中视频流的任意位置并播放它,但物理文件已从磁盘中删除。

有办法恢复这个缓存吗?我仍然打开着 VLC。

根据评论编辑:

lsof | grep vlc | grep dvgrab

返回

vlc       2671           peter   31r      REG               0,40 1048560000         45 /mnt/server/Vid projects/2017/01 January/22 Home/dvgrab-003.dv (deleted)
vlc       2671 2674      peter   31r      REG               0,40 1048560000         45 /mnt/server/Vid projects/2017/01 January/22 Home/dvgrab-003.dv (deleted)
vlc       2671 2676      peter   31r      REG               0,40 1048560000         45 /mnt/server/Vid projects/2017/01 January/22 Home/dvgrab-003.dv (deleted)
vlc       2671 2677      peter   31r      REG               0,40 1048560000         45 /mnt/server/Vid projects/2017/01 January/22 Home/dvgrab-003.dv (deleted)
vlc       2671 2686      peter   31r      REG               0,40 1048560000         45 /mnt/server/Vid projects/2017/01 January/22 Home/dvgrab-003.dv (deleted)
vlc       2671 2689      peter   31r      REG               0,40 1048560000         45 /mnt/server/Vid projects/2017/01 January/22 Home/dvgrab-003.dv (deleted)
vlc       2671 2692      peter   31r      REG               0,40 1048560000         45 /mnt/server/Vid projects/2017/01 January/22 Home/dvgrab-003.dv (deleted)
vlc       2671 2694      peter   31r      REG               0,40 1048560000         45 /mnt/server/Vid projects/2017/01 January/22 Home/dvgrab-003.dv (deleted)
vlc       2671 2695      peter   31r      REG               0,40 1048560000         45 /mnt/server/Vid projects/2017/01 January/22 Home/dvgrab-003.dv (deleted)
vlc       2671 2696      peter   31r      REG               0,40 1048560000         45 /mnt/server/Vid projects/2017/01 January/22 Home/dvgrab-003.dv (deleted)
vlc       2671 2697      peter   31r      REG               0,40 1048560000         45 /mnt/server/Vid projects/2017/01 January/22 Home/dvgrab-003.dv (deleted)
vlc       2671 2698      peter   31r      REG               0,40 1048560000         45 /mnt/server/Vid projects/2017/01 January/22 Home/dvgrab-003.dv (deleted)
vlc       2671 2699      peter   31r      REG               0,40 1048560000         45 /mnt/server/Vid projects/2017/01 January/22 Home/dvgrab-003.dv (deleted)
vlc       2671 2700      peter   31r      REG               0,40 1048560000         45 /mnt/server/Vid projects/2017/01 January/22 Home/dvgrab-003.dv (deleted)

答案1

正如@ridgy 在评论中指出的那样:

只要文件正在使用,它就不会真正被删除,而是从目录中移除。文件的 inode 仍在使用中。您可以通过发出 来查找 inode 编号lsof | grep vlc;这将显示一个没有名称的文件,并显示消息(已删除)。inode 编号是该编号前面的数字。然后,您可以使用 将文件重新链接到目录ln <inode#> <filename>

后来:

inode 是 45(文件路径前面的数字)。但我刚刚意识到 ln 不适用于 inode(无法使其工作..)。但正如您所看到的,该文件由 vlc 使用,文件描述符 # 31(参见 REG 之前的 31r),您可以执行cat /proc/2671/fd/31 > file_to_save,这会将内容复制到新文件。2671 是 vlc 的进程号(vlc 后面的数字)。

确实,跑步

 cat /proc/2671/fd/31 > file_to_save

抓取文件并将其存储到我的硬盘中。谢谢!

相关内容