Come inserire un file di rete in ffmpeg


9

Il mio problema è questo Ho accesso a un server che ospita molti file video, molti dei quali sono molto grandi e non ben compressi. Intendo fare una copia di dimensioni ridotte di qualità ridotta sul mio computer locale per un migliore accesso.

Il problema è che il server non ha accesso ftp. Posso scp i file sulla mia macchina e quindi usare ffmpeg per ridurne le dimensioni, ma rimarrò senza spazio se copio tutti i file localmente.

Sto cercando un modo per inserire direttamente un file di rete in ffmpeg, in questo modo sarò in grado di scrivere uno script che durante la notte mi porterà tutti i video in dimensioni ridotte.


Dovresti modificare la domanda: così com'è, è un "XYProblem": chiedere di fare Y, quando vuoi davvero fare X. Vuoi davvero inserire un file di rete da remoto, non "usando scp" (Sembra: " come posso radermi la barba usando una bicicletta ": il vero bisogno è radersi la barba, non usare davvero una bicicletta ^^) Non mescolare la tua necessità con i mezzi per farlo (in modo da poter trovare mezzi migliori, usando le persone feedback!)
Olivier Dulac il

Vedi le risposte di Flup e cpugeniusmv per i modi giusti per farlo. Tuttavia, se si dispone di un collo di bottiglia della rete, sarebbe opportuno comprimere sul lato server e quindi trasferire la versione compressa sulla rete (se ffmpeg esiste su quella macchina).
Orione,

Risposte:


10

È possibile utilizzare sshfsper far apparire i file remoti in una directory sul computer locale.

Non dici quale distro stai usando sul tuo client, ma questo è paralizzato dalla documentazione di Ubuntu sshfs :

  1. Installa il sshfspacchetto ( aptitude install sshfs)
  2. Aggiungi il tuo utente al fusegruppo ( sudo gpasswd -a username fuse)
  3. Montare il filesystem usando il sshfscomando

Per usare sshfs, crea una directory (chiameremo questo /mountpoint), e fallo

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

I file remoti ora appariranno in /mountpoint, ma in realtà sono ancora sul server remoto. Tutte le modifiche apportate verranno eseguite in remoto e non localmente.

Per smontare la directory, fare

fusermount -u /mountpoint

6

Se hai accesso ssh al sistema remoto, potresti fare qualcosa del genere

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

Questo -fa sì che ffmpeg legga da stdin invece che da un file.

Avvertenza, tuttavia, non tutti i formati supportano le pipe. Vedi /programming/12999674/ffmpeg-which-file-formats-support-stdin-usage


Il dispositivo video potrebbe non supportare la dimensione del blocco utilizzato da 'gatto' - se si ottiene un errore, l'uso 'nc' invece di 'gatto' - vedi anche stackoverflow.com/a/46362136/1755628
MikeW
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.