2

LAN 上に 3 台のコンピュータがあり、

1 つはubuntuを実行しており、
もう 1 つはopenSuse
を実行 しており、私のサーバーは Archlinux を実行しています

サーバーでffmpegを適切に動作させることしかできませんでした。

ローカル マシンにffmpegをインストールしたふりをするスクリプトを書きたいと思いますが、実際にはサーバーのffmpegを使用しているだけです。

例:

openSuse PC で次のように呼び出したい:

ffmpeg -i file.avi out.flv

期待どおりに通常の出力が得られますが
、archlinuxでffmpegを使用したいです。

これをどのように機能させるかについてのアドバイス。
(できればRubyで)

編集: この質問をssh を介してシェル コマンドからプログレス バーを表示するにはどうすればよいかに拡張しました

4

2 に答える 2

2

ルビー風はあまりありませんが、うまくいくようです!

前提条件、

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*
于 2009-05-16T06:31:20.893 に答える
2

以下にいくつかのオプションを示します。

  • LAN 上に NFS をセットアップし、サーバー上のすべてのディスクをリモート マウントしてからssh、リモート マウント名を使用してコマンドを実行します。変な名前を使うのはユーザーの負担です。

  • NFS をセットアップしますが、入力ファイルと出力ファイルを識別するために ffmpeg オプションを解析し、realnameパッケージ (または単純なシェル スクリプト) のようなものを使用して、最初に名前を絶対パス名に変換し、次にリモート マウント名に変換します。

  • NFS を使用しないでください。ただし、ffmpeg オプションを解析scpし、入力ファイルをコピーして出力ファイルを戻すために使用します。

于 2009-05-16T00:59:25.450 に答える