Cara memasukkan file jaringan ke ffmpeg

9

Masalah saya adalah ini. Saya memiliki akses ke server yang menampung banyak file video, kebanyakan dari mereka sangat besar dan tidak terkompresi dengan baik. Saya bermaksud untuk membuat salinan ukuran yang lebih kecil dengan kualitas yang lebih rendah pada mesin lokal saya untuk akses yang lebih baik.

Masalahnya adalah bahwa server tidak memiliki akses ftp. Saya dapat scp file ke mesin saya dan kemudian menggunakan ffmpeg untuk mengurangi ukuran, tetapi saya akan kehabisan ruang jika saya menyalin semua file secara lokal.

Saya mencari cara untuk secara langsung memasukkan file jaringan ke ffmpeg, dengan cara itu saya akan dapat menulis skrip yang semalam akan memberi saya semua video dalam ukuran yang dikurangi.

saketrp
sumber
Anda harus mengedit pertanyaan: Seperti berdiri, itu adalah "XYProblem": meminta untuk melakukan Y, ketika Anda benar-benar ingin melakukan X. Anda benar-benar ingin memasukkan file jaringan dari jarak jauh, bukan "menggunakan scp" (Kedengarannya seperti: " bagaimana saya bisa mencukur jenggot saya menggunakan bycicle ": kebutuhan sebenarnya adalah mencukur jenggot, tidak benar-benar menggunakan bycicle ^^) Jangan mencampur kebutuhan Anda dengan sarana untuk melakukannya (sehingga Anda dapat menemukan cara yang lebih baik, menggunakan orang-orang umpan balik!)
Olivier Dulac
Lihat jawaban oleh Flup dan cpugeniusmv untuk cara yang tepat untuk melakukannya. Namun, jika Anda memiliki hambatan jaringan, masuk akal untuk mengompres di sisi server dan kemudian mentransfer versi terkompresi melalui jaringan (jika ffmpeg ada pada mesin itu).
orion

Jawaban:

10

Anda dapat menggunakan sshfsuntuk membuat file jarak jauh muncul di direktori di mesin lokal.

Anda tidak mengatakan distro apa yang Anda gunakan pada klien Anda, tetapi ini ditulis dari dokumentasi sshfs Ubuntu :

  1. Instal sshfspaket ( aptitude install sshfs)
  2. Tambahkan pengguna Anda ke fusegrup ( sudo gpasswd -a username fuse)
  3. Pasang sistem file menggunakan sshfsperintah

Untuk menggunakan sshfs, buat sendiri direktori (kami akan menyebutnya /mountpoint), dan lakukan

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

File jarak jauh sekarang akan muncul /mountpoint, tetapi sebenarnya masih di server jarak jauh. Setiap perubahan yang Anda lakukan akan dilakukan dari jarak jauh dan tidak secara lokal.

Untuk melepas direktori, lakukan

fusermount -u /mountpoint
Flup
sumber
6

Jika Anda memiliki akses ssh ke sistem jarak jauh, Anda dapat melakukan sesuatu seperti

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

The -penyebab ffmpeg untuk membaca dari stdin bukan sebuah file.

Peringatan, meskipun, tidak semua format mendukung pipa. Lihat /programming/12999674/ffmpeg-which-file-formats-support-stdin-usage

cpugeniusmv
sumber
Perangkat video mungkin tidak mendukung ukuran blok yang digunakan oleh 'cat' - jika Anda mendapatkan kesalahan, gunakan 'nc' alih-alih 'cat' - lihat juga stackoverflow.com/a/46362136/1755628
MikeW