Como inserir um arquivo de rede no ffmpeg

7

Meu problema é esse. Eu tenho acesso a um servidor que hospeda muitos arquivos de vídeo, a maioria deles são muito grandes e não são bem compactados. Eu pretendo fazer uma cópia de tamanho menor de qualidade reduzida na minha máquina local para melhor acesso.

O problema é que o servidor não tem acesso ftp. Eu posso scp os arquivos para a minha máquina e, em seguida, usar o ffmpeg para reduzir o tamanho, mas vou ficar sem espaço se eu copiar todos os arquivos localmente.

Estou procurando uma maneira de inserir diretamente um arquivo de rede no ffmpeg, assim poderei escrever um script que, durante a noite, obterá todos os vídeos em tamanho reduzido.

    
por saketrp 27.03.2014 / 08:56

2 respostas

9

Você pode usar sshfs para fazer os arquivos remotos aparecerem em um diretório na máquina local.

Você não diz qual distro você está usando no seu cliente, mas isso é feito da documentação do Ubuntu sshfs :

  1. Instale o pacote sshfs ( aptitude install sshfs )
  2. Adicione seu usuário ao grupo fuse ( sudo gpasswd -a username fuse )
  3. Monte o sistema de arquivos usando o comando sshfs

Para usar sshfs , crie um diretório para si mesmo (chamaremos isso de /mountpoint ) e faça

sshfs -o idmap=user remote_user@remote_server:/remote/directory /mountpoint

Os arquivos remotos aparecerão agora em /mountpoint , mas na verdade ainda estão no servidor remoto. Todas as alterações feitas serão feitas remotamente e não localmente.

Para desmontar o diretório, faça

fusermount -u /mountpoint
    
por 27.03.2014 / 09:27
6

Se você tiver acesso ssh ao sistema remoto, poderá fazer algo como

ssh server cat path/to/video | ffmpeg -i - [...]

O - faz com que o ffmpeg leia stdin em vez de um arquivo.

Advertência, no entanto, nem todos os formatos suportam pipes. Consulte o link

    
por 27.03.2014 / 13:08

Tags