문제

LAN에 3 개의 컴퓨터가 있습니다.

하나의 달리기 우분투,
하나의 달리기 Opensuse
그리고 내 서버가 실행됩니다 Archlinux.

나는 단지 얻을 수 있었다 ffmpeg 내 서버에서 제대로 작동합니다.

나는 척하는 대본을 쓰고 싶습니다. ffmpeg 로컬 컴퓨터에 설치하지만 실제로 서버의 ffmpeg.

예시:

OpenSuse PC에서는 다음과 같이 호출하고 싶습니다.

ffmpeg -i file.avi out.flv

그런 다음 예상대로 정상 출력을 얻으십시오.
그러나 나는 그것이 Archlinux에서 ffmpeg를 사용하기를 원합니다.

내가 어떻게 작동하게 할 것인지에 대한 조언.
(바람직하게는 루비에서)

편집 :이 질문을 확장했습니다 SSH를 통한 쉘 명령에서 진행 막대를 어떻게 표시합니까?

도움이 되었습니까?

해결책

나는 루비 푸가 많지 않지만 이것은 효과가있는 것 같습니다!

전제 조건,

sudo yum install rubygems
sudo gem install net-ssh net-sftp highline echoe

코드 (댓글 포함),

#!/usr/bin/env ruby

require 'rubygems'
require 'net/ssh'
require 'net/sftp'
require 'highline/import'

file = ARGV[ 0 ]                  # filename from command line
prod = file + "-new"              # product filename (call it <file>-new)
rpath = "/tmp"                    # remote computer operating directory
rfile = "#{rpath}/#{file}"        # remote filename
rprod = "#{rpath}/#{prod}"        # remote product
cmd  = "mv #{rfile} #{rprod}"     # remote command, constructed

host = "-YOUR REMOTE HOST-"
user = "-YOUR REMOTE USERNAME-"
pass = ask("Password: ") { |q| q.echo = false }  # password from stdin

Net::SSH.start(host, user, :password => pass) do |ssh|
        ssh.sftp.connect do |sftp|
                # upload local 'file' to remote 'rfile'
                sftp.upload!(file, rfile)

                # run remote command 'cmd' to produce 'rprod'
                ssh.exec!(cmd)

                # download remote 'rprod' to local 'prod'
                sftp.download!(rprod, prod)
        end
end

그런 다음 이렇게 실행할 수 있습니다.

dylan@home ~/tmp/ruby) ls
bar  remotefoo.rb*
dylan@home ~/tmp/ruby) ./remotefoo.rb bar
Password: 
dylan@home ~/tmp/ruby) ls
bar  bar-new  remotefoo.rb*

다른 팁

다음은 가장 쉬운 옵션입니다.

  • LAN에 NFS를 설정하고 서버의 모든 디스크를 원격으로 마운트 한 다음 ssh 원격 장착 이름을 사용하여 명령. 부담은 사용자에게 이상한 이름을 사용하는 것입니다.

  • NFS를 설정하지만 FFMPEG 옵션을 구문 분석하여 입력 및 출력 파일을 식별 한 다음 realname 패키지 (또는 간단한 쉘 스크립트)는 먼저 이름을 절대 경로 이름으로 변환 한 다음 원격 장착 이름으로 변환합니다.

  • NFS를 사용하지 말고 FFMPEG 옵션을 구문 분석하고 사용합니다. scp 입력 파일을 복사하고 출력 파일을 다시 복사합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top