视频转换为FLV使用FFMPEG得到0大小


Video converted to FLV using FFMPEG gets 0 size

我试图在服务器上使用FFMPEG将avi文件转换为flv格式,但它给了我问题。在转换时,文件被转换为flv格式,但没有数据(0 kb大小的文件)。尝试调试代码,但失败。FFMPEG安装在CentOS中,路径/usr/bin/FFMPEG,我使用以下命令进行转换:

<>之前$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美元。"-你说得对。"destFile美元;exec(命令,输出美元);print_r(输出);之前

I tried doing:

<>之前exec("ffmpeg");之前

它给了我路径/usr/bin/ffmpeg,但是当我执行代码时得到以下错误:

<>之前阵列([0] =>错误:未定义的方法' timestamp'为nil:NilClass[1] =>错误:/usr/local/cpffmpeg/lib/ruby/site_ruby/1.8/flv/stream。rb: 285:"lasttimestamp"[2] =>错误:/usr/local/cpffmpeg/lib/ruby/site_ruby/1.8/flv/stream。rb: 274:在"持续时间"[3] =>错误:/usr/local/cpffmpeg/lib/ruby/site_ruby/1.8/flvtool2 . base.rb: 181:"add_meta_data_tag"[4] =>错误:/usr/local/cpffmpeg/lib/ruby/site_ruby/1.8/flvtool2 . base.rb: 137:在"更新"[5] =>错误:/usr/local/cpffmpeg/lib/ruby/site_ruby/1.8/flvtool2 . base.rb: 47:在"发送"[6] =>错误:/usr/local/cpffmpeg/lib/ruby/site_ruby/1.8/flvtool2 . base.rb: 47:在"执行!"[7] =>错误:/usr/local/cpffmpeg/lib/ruby/site_ruby/1.8/flvtool2 . base.rb: 46:"每一个"[8] =>错误:/usr/local/cpffmpeg/lib/ruby/site_ruby/1.8/flvtool2 . base.rb: 46:在"执行!"[9] =>错误:/usr/local/cpffmpeg/lib/ruby/site_ruby/1.8/flvtool2 . base.rb: 206:"process_files"[10] =>错误:/usr/local/cpffmpeg/lib/ruby/site_ruby/1.8/flvtool2 . base.rb: 44:在"执行!"[11] =>错误:/usr/local/cpffmpeg/lib/ruby/site_ruby/1.8/flvtool2.rb: 168:在"执行!"[12] =>错误:/usr/local/cpffmpeg/lib/ruby/site_ruby/1.8/flvtool2.rb:228[13] =>错误:/usr/local/bin/flvtool2:2:in ' require'[14] =>错误:/usr/local/bin/flvtool2:2)之前

有什么问题吗?这是Flvtool2的问题,如果是,那么它是什么。

你可以var_dump($command)然后在shell中运行该命令(作为apache运行的用户)吗?

看起来好像没有任何东西真正通过管道。您的ffmpeg命令行指定了一个实际的输出文件,而不是- (,即:, STDOUT),因此ffmpeg正在将视频写入文件,然后flvtool试图从STDIN读取,STDIN没有视频。