我想通过 ffmpeg 在本地网络中开发在线转换器的服务。
该服务接收要转换的文件的地址,并将转换后的文件的输出地址放入其中。
ffmpeg 可以在本地网络中的另一个系统中保存输出文件吗?
或者我必须先保存输出文件然后移动到另一个系统?
答案1
山
文件系统挂载选项:
- NFS 在 UNIX/Linux 世界中更为常见
- SMB 在 Windows 世界中更为常见。
目前尚不清楚您处于哪种情况。对于其中任何一种情况都没有任何具体信息ffmpeg
。
远程控制
如果您身处 UNIX/Linux 世界或在 Windows 下模拟 Linux,另一个选项是通过 进行流式传输。如果您指定输出文件,ssh
大多数命令都会将其输出发送到 STDOUT 。因此,您可以执行以下操作:-
ffmpeg <your options> - | ssh user@remote 'cat > /tmp/ffmpeg.out'
(我经常使用该技术tar
作为输入。)ffmpeg 文档说最后一个参数是输出文件,因此,尽管这可能很奇怪,但您应该在指定所有其他选项之后,-
将带有空格的(破折号)作为最后一个参数。ffmpeg
表现
将输出写入远程系统可能会导致原始系统上的处理速度变慢,因为由于 IO 速度较慢,缓冲区会更快填满。如果所有缓冲区都填满,则该ffmpeg
进程将不得不等待,直到可以处理更多内容。如果您可以并行运行更多进程,这可能会有所帮助,但迟早您可能会使网络连接饱和,而更多的进程/CPU 也无济于事。
答案2
是的,您可以将远程系统安装到目录。并将输出文件保存到安装的目录中。