2011-11-10 18 views
-1

私はaviファイルをサーバー上のFFMPEGを使用してflv形式に変換しようとしています。変換時には、ファイルはflv形式に変換されますが、データはありません(サイズが0 KBのファイル)。コードのデバッグを試みましたが、できませんでした。 FFMPEGは、パス/ usr/binに/ ffmpegの中で、CentOSのにインストールされている、と私は、変換のために、次のコマンドを使用しています:FFMPEGを使用してFLVに変換されたビデオは、0のサイズを取得します

 
$srcFile = "/home/mydomain/public_html/demo/test/sample.avi"; 
$destFile = "/home/mydomain/public_html/demo/test/sample_again.flv"; 

$ffmpegPath = "/usr/bin/ffmpeg"; 
$flvtool2Path = "/usr/local/bin/flvtool2"; 

$command = $ffmpegPath . " -y -i " . $srcFile . " -ar 32000 -ab 32000 -f flv -s 320x240 ". 
$destFile . " | " . $flvtool2Path . " -U stdin " . $destFile; 

exec($command, $output); 
print_r($output); 

私がやってみました:

 
exec("which ffmpeg"); 

そして、それは私の道を与えました/ usr/bin/ffmpegのようになりますが、コード実行時に次のエラーが発生します。

 
Array ( 
[0] => ERROR: undefined method `timestamp' for nil:NilClass 
[1] => ERROR: /usr/local/cpffmpeg/lib/ruby/site_ruby/1.8/flv/stream.rb:285:in `lasttimestamp' 
[2] => ERROR: /usr/local/cpffmpeg/lib/ruby/site_ruby/1.8/flv/stream.rb:274:in `duration' 
[3] => ERROR: /usr/local/cpffmpeg/lib/ruby/site_ruby/1.8/flvtool2/base.rb:181:in `add_meta_data_tag' 
[4] => ERROR: /usr/local/cpffmpeg/lib/ruby/site_ruby/1.8/flvtool2/base.rb:137:in `update' 
[5] => ERROR: /usr/local/cpffmpeg/lib/ruby/site_ruby/1.8/flvtool2/base.rb:47:in `send' 
[6] => ERROR: /usr/local/cpffmpeg/lib/ruby/site_ruby/1.8/flvtool2/base.rb:47:in `execute!' 
[7] => ERROR: /usr/local/cpffmpeg/lib/ruby/site_ruby/1.8/flvtool2/base.rb:46:in `each' 
[8] => ERROR: /usr/local/cpffmpeg/lib/ruby/site_ruby/1.8/flvtool2/base.rb:46:in `execute!' 
[9] => ERROR: /usr/local/cpffmpeg/lib/ruby/site_ruby/1.8/flvtool2/base.rb:206:in `process_files' 
[10] => ERROR: /usr/local/cpffmpeg/lib/ruby/site_ruby/1.8/flvtool2/base.rb:44:in `execute!' 
[11] => ERROR: /usr/local/cpffmpeg/lib/ruby/site_ruby/1.8/flvtool2.rb:168:in `execute!' 
[12] => ERROR: /usr/local/cpffmpeg/lib/ruby/site_ruby/1.8/flvtool2.rb:228 
[13] => ERROR: /usr/local/bin/flvtool2:2:in `require' 
[14] => ERROR: /usr/local/bin/flvtool2:2 
) 

問題が発生する可能性があります。 Flvtool2の問題ですか?もしそうなら、それは何ですか?何かを提案してください

+0

このコマンドはコマンドラインから直接実行されます – andho

+0

いいえ、私はブラウザからPHPファイルを実行しています –

+0

誰も解決していない、全く動作していません –

答えて

0

あなたはvar_dump($コマンド)を実行して、そのコマンドをシェルで実行することができます(apacheが実行されているユーザとして)?

0

実際にパイプを通過しているようには見えません。 ffmpegコマンドラインで-、すなわち、STDOUT)の代わりに実際の出力ファイルを指定すると、ffmpegはファイルにビデオを書き込んでいて、flvtoolはビデオを持っていないSTDINから読み込もうとしています。