我有一台服务器,里面有我想转码为 x265 的视频文件,并且有 ssh/sftp 访问权限。但我不是转码机的 root 用户,因此无法安装sshfs
,所以我决定通过 ssh 传输文件(我知道性能问题)。
输入与命令一起使用
ssh -p 1022 USER@SERVER cat input.mkv | ffmpeg -i - -c:v libx265 -preset slow -x265-params crf=21 -c:a copy output.mkv
但是我无法按照以下答案通过 ssh 将输出文件再次保存回服务器:https://superuser.com/questions/839955/piping-output-from-ffmpeg-avconv-over-ssh-to-a-file
ssh -p 1022 USER@SERVER "ssh -p 1022 USER@SERVER cat input.mkv | ffmpeg -i - -c:v libx265 -preset slow -x265-params crf=21 -c:a copy -f matroska pipe:1" | cat > output.mkv
那么我该如何正确地组合这两个管道命令?或者你能想出更智能的方法来访问这些文件吗?
答案1
为了通过 ssh 保存输出,你应该编写如下内容:
mycommand --sentoStdout | ssh user@host 'cat > /to/dest/file.type'
因此,对于你的情况,你应该这样写:
ssh -p 1022 USER@SERVER cat input.mkv | fmpeg -i - -c:v libx265 -preset slow -x265-params crf=21 -c:a copy pipe:1 | ssh -p 1022 USER@SERVER 'cat > output.mkv'