如何将网络文件输入到ffmpeg

sak*_*trp 9 ssh scp ffmpeg

我的问题是这个。我可以访问托管许多视频文件的服务器,其中大多数文件都非常大且没有得到很好的压缩。我打算在我的本地机器上制作一个质量降低的较小尺寸的副本,以便更好地访问。

问题是服务器没有 ftp 访问权限。我可以将文件 scp 到我的机器,然后使用 ffmpeg 来减小大小,但是如果我将所有文件复制到本地,空间就会用完。

我正在寻找一种直接将网络文件输入到 ffmpeg 的方法,这样我就可以编写一个脚本,让我在一夜之间缩小所有视频的大小。

Flu*_*lup 11

您可以使用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
Run Code Online (Sandbox Code Playgroud)

远程文件现在将出现在 中/mountpoint,但实际上仍在远程服务器上。您所做的任何更改都将在远程而非本地进行。

要卸载目录,请执行

fusermount -u /mountpoint
Run Code Online (Sandbox Code Playgroud)


cpu*_*smv 7

如果您可以通过 ssh 访问远程系统,则可以执行以下操作

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

-原因的ffmpeg从标准,而不是一个文件的读取。

但是请注意,并非所有格式都支持管道。见/sf/ask/909977211/