Como inserir um arquivo de rede no ffmpeg

Como inserir um arquivo de rede no ffmpeg

Meu problema é este. Tenho acesso a um servidor que hospeda muitos arquivos de vídeo, a maioria deles muito grandes e mal compactados. Pretendo fazer uma cópia em tamanho menor e com qualidade reduzida em minha máquina local para melhor acesso.

O problema é que o servidor não tem acesso FTP. Posso enviar os arquivos para minha máquina e usar o ffmpeg para reduzir o tamanho, mas ficarei sem espaço se copiar todos os arquivos localmente.

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

Responder1

Você pode usar sshfspara fazer com que os arquivos remotos apareçam em um diretório na máquina local.

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

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

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

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

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

Para desmontar o diretório, faça

fusermount -u /mountpoint

Responder2

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

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

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

Advertência, porém, nem todos os formatos suportam pipes. Verhttps://stackoverflow.com/questions/12999674/ffmpeg- which-file-formats-support-stdin-usage

informação relacionada