![Como inserir um arquivo de rede no ffmpeg](https://rvso.com/image/52089/Como%20inserir%20um%20arquivo%20de%20rede%20no%20ffmpeg.png)
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 sshfs
para 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:
- Instale o
sshfs
pacote (aptitude install sshfs
) - Adicione seu usuário ao
fuse
grupo (sudo gpasswd -a username fuse
) - Monte o sistema de arquivos usando o
sshfs
comando
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