Salve o vídeo que está sendo reproduzido em vlc

6

Pergunta estranha, mas aqui está o contexto. Eu estava jogando um vídeo no VLC no Ubuntu 16.04. Eu apaguei acidentalmente o vídeo enquanto ainda estava tocando. Eu ainda posso mover para qualquer ponto no fluxo de vídeo no VLC e reproduzi-lo, mas o arquivo físico é excluído do disco.

Existe uma maneira de recuperar esse cache? Ainda tenho o VLC aberto.

Editar por comentários:

lsof | grep vlc | grep dvgrab

retorna

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)
    
por anonymous2 26.01.2017 / 17:07

1 resposta

1

Como @ridgy tão proveitosamente apontado nos comentários:

  

Contanto que o arquivo esteja em uso, ele não será realmente excluído, mas removido do diretório. O inode do arquivo ainda está em uso. Você pode encontrar o número do inode emitindo lsof | grep vlc ; isso mostrará um arquivo sem nome e a mensagem (excluída). O número do inode é o número na frente disso. Você pode então vincular novamente o arquivo ao diretório com ln <inode#> <filename> .

E mais tarde:

  

O inode é 45 (o número na frente do caminho do arquivo). Mas acabei de perceber que não funciona em inodes (não consegui fazê-lo funcionar ..). Mas como você vê que o arquivo é usado por vlc, filedescriptor # 31 (veja 31r antes do REG), você pode fazer cat /proc/2671/fd/31 > file_to_save , que copiará o conteúdo para um novo arquivo. 2671 é o número do processo de vlc (número após vlc).

E, de fato, rodando

 cat /proc/2671/fd/31 > file_to_save

pegou o arquivo e o armazenou no meu disco rígido. Obrigado!

    
por anonymous2 14.03.2017 / 14:37