ffmpegにネットワークファイルを入力する方法


9

私の問題はこれです。多くのビデオファイルをホストするサーバーにアクセスできますが、それらのほとんどは非常に大きく、十分に圧縮されていません。より良いアクセスのために、ローカルマシンでこれらのコピーの品質を下げた、より小さなサイズのコピーを作成するつもりです。

問題は、サーバーにftpアクセスがないことです。ファイルを自分のマシンにscpしてからffmpegを使用してサイズを小さくすることができますが、すべてのファイルをローカルにコピーするとスペースが足りなくなります。

ネットワークファイルを直接ffmpegに入力する方法を探しています。これにより、すべてのビデオを一晩で縮小したサイズのスクリプトを作成できます。


質問を編集する必要があります。現状では、「XYProblem」:本当にXを実行したいときにYを要求します。ネットワークファイルを「scpを使用して」ではなく、リモートで入力したい場合(次のように聞こえます)バイシクルを使ってひげを剃る方法」:本当に必要なのは、バイシクルを使うのではなく、ひげを剃ることです^^)ニーズとそれを行う手段を混ぜないでください(より良い手段を見つけるために、人々のフィードバック!)
Olivier Dulac 14年

正しい方法については、Flupとcpugeniusmvの回答を参照してください。ただし、ネットワークのボトルネックがある場合は、サーバー側で圧縮してから、圧縮されたバージョンをネットワーク経由で転送することをお勧めします(そのマシンにffmpegが存在する場合)。
オリオン2015年

回答:


10

を使用sshfsして、リモートファイルをローカルマシンのディレクトリに表示できます。

あなたはあなたのクライアントであなたが使っているディストリビューションを言っていませんが、これはUbuntu sshfsのドキュメントから引用されています

  1. sshfsパッケージをインストール(aptitude install sshfs
  2. ユーザーをfuseグループに追加します(sudo gpasswd -a username fuse
  3. sshfsコマンドを使用してファイルシステムをマウントします

を使用するにsshfsは、自分をディレクトリにして(これをと呼びます/mountpoint)、次のようにします。

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

リモートファイルはに表示されます/mountpointが、実際にはまだリモートサーバー上にあります。加えた変更は、ローカルではなくリモートで行われます。

ディレクトリをアンマウントするには、次のようにします。

fusermount -u /mountpoint

6

リモートシステムにsshでアクセスできる場合は、次のようにすることができます。

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

-原因はファイルの代わりに標準入力からの読み込みにffmpegの。

ただし、すべての形式がパイプをサポートしているわけではありません。/programming/12999674/ffmpeg-which-file-formats-support-stdin-usageを参照してください


ビデオデバイスが「猫」により使用ブロックサイズをサポートしていない可能性があります-あなたがエラーを取得した場合、使用は代わりに「猫」の「NC」 -も見stackoverflow.com/a/46362136/1755628
MikeW
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.