我正在尝试在服务器上使用 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 。 “-义 ” 。 $src 文件。 “-ar 32000 -ab 32000 -f flv -s 320x240”。
$目标文件。 “|”。 $flvtool2Path 。 “-U 标准输入”。 $目标文件;
执行($命令,$输出);
print_r($输出);
我试着做:
exec("哪个 ffmpeg");
它给了我路径/usr/bin/ffmpeg,但是当我执行代码时出现以下错误:
大批 (
[0] => 错误:nil:NilClass 的未定义方法“时间戳”
[1] => 错误:/usr/local/cpffmpeg/lib/ruby/site_ruby/1.8/flv/stream.rb:285:in `lasttimestamp'
[2] => 错误:/usr/local/cpffmpeg/lib/ruby/site_ruby/1.8/flv/stream.rb:274:in `duration'
[3] => 错误:/usr/local/cpffmpeg/lib/ruby/site_ruby/1.8/flvtool2/base.rb:181:in `add_meta_data_tag'
[4] => 错误:/usr/local/cpffmpeg/lib/ruby/site_ruby/1.8/flvtool2/base.rb:137:in `update'
[5] => 错误:/usr/local/cpffmpeg/lib/ruby/site_ruby/1.8/flvtool2/base.rb:47:in `send'
[6] => 错误:/usr/local/cpffmpeg/lib/ruby/site_ruby/1.8/flvtool2/base.rb:47:in `执行!
[7] => 错误:/usr/local/cpffmpeg/lib/ruby/site_ruby/1.8/flvtool2/base.rb:46:in `each'
[8] => 错误:/usr/local/cpffmpeg/lib/ruby/site_ruby/1.8/flvtool2/base.rb:46:in `execute!'
[9] => 错误:/usr/local/cpffmpeg/lib/ruby/site_ruby/1.8/flvtool2/base.rb:206:in `process_files'
[10] => 错误:/usr/local/cpffmpeg/lib/ruby/site_ruby/1.8/flvtool2/base.rb:44:in `执行!
[11] => 错误:/usr/local/cpffmpeg/lib/ruby/site_ruby/1.8/flvtool2.rb:168:in `执行!
[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 的用户)吗?
关于php - 使用 FFMPEG 转换为 FLV 的视频大小为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8075239/