Cómo ingresar un archivo de red a ffmpeg

Cómo ingresar un archivo de red a ffmpeg

Mi problema es este. Tengo acceso a un servidor que aloja muchos archivos de video, la mayoría de ellos son muy grandes y no están bien comprimidos. Tengo la intención de hacer una copia de menor tamaño y calidad reducida de estos en mi máquina local para un mejor acceso.

El problema es que el servidor no tiene acceso ftp. Puedo enviar los archivos a mi máquina y luego usar ffmpeg para reducir el tamaño, pero me quedaré sin espacio si copio todos los archivos localmente.

Estoy buscando una manera de ingresar directamente un archivo de red a ffmpeg, de esa manera podré escribir un script que de la noche a la mañana me permitirá obtener todos los videos en tamaño reducido.

Respuesta1

Puede utilizar sshfspara hacer que los archivos remotos aparezcan en un directorio de la máquina local.

No dices qué distribución estás usando en tu cliente, pero esto está extraído dela documentación de Ubuntu sshfs:

  1. Instalar el sshfspaquete ( aptitude install sshfs)
  2. Agrega tu usuario al fusegrupo ( sudo gpasswd -a username fuse)
  3. Monte el sistema de archivos usando el sshfscomando

Para usar sshfs, cree un directorio (lo llamaremos /mountpoint) y haga

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

Los archivos remotos ahora aparecerán en /mountpoint, pero en realidad todavía están en el servidor remoto. Cualquier cambio que realice se realizará de forma remota y no localmente.

Para desmontar el directorio, haga

fusermount -u /mountpoint

Respuesta2

Si tiene acceso ssh al sistema remoto, podría hacer algo como

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

Esto -hace que ffmpeg lea desde la entrada estándar en lugar de un archivo.

Sin embargo, tenga en cuenta que no todos los formatos admiten canalizaciones. Verhttps://stackoverflow.com/questions/12999674/ffmpeg-what-file-formats-support-stdin-usage

información relacionada