ffmpeg 输出.mp4,大小为 0

ffmpeg 输出.mp4,大小为 0

我在 php 中有一个视频上传脚本,在其中执行以下命令:

exec("/usr/bin/ffmpeg -i ".$folder."/".$filenameIn.".mp4 ".$folder."/".$filenameOut.".flv 2>&1", $output);

结果flv是正确的。

但是当我使用 mp4 输出执行相同的命令时

exec("/usr/bin/ffmpeg -i ".$folder."/".$filenameIn.".mp4 ".$folder."/".$filenameOut.".mp4 2>&1", $output);

输出有 0 字节。

我也尝试过

exec("/usr/bin/ffmpeg -i ".$folder."/".$filenameIn.".mp4 -vcodec libx264 -crf 20 ".$folder."/".$filenameOut.".mp4");

但输出视频仍然有 0 字节。

我不知道为什么。有什么帮助吗?

编辑:

如果我从 mp4 转换为 mkv,mkv 就可以了。如果我得到该 mkv 并重新转换为 mp4,则最终的 mp4 为 0 字节。

例如:

exec("/usr/bin/ffmpeg -i ".$folder."/".$filename." ".$folder."/".$filenameOut.".mkv 2>&1", $output);
exec("/usr/bin/ffmpeg -i ".$folder."/".$filenameOut.".mkv ".$folder."/".$filename.".mp4 2>&1", $output);

在这种情况下,第一个 mp4 有 1210409 字节,生成的 mkv 有 816018 字节,最终 mp4 有 0 字节。 mp4 -> flv -> mp4 也是如此。

答案1

当您发现软件出现问题时,您尝试使用 php 启动,请执行命令并直接在控制台/终端中启动它,并且不要忘记用正确的信息替换所有变量。现在观察发生了什么,如果您无法修复错误,只需复制日志即可,有人可以帮助您

因为ffmpeg我建议删除这部分2>&1", $output以查看控制台中发生了什么

相关内容