我正在尝试使用以下 php 代码从视频文件中提取单个帧:
$cmd = 'ffmpeg -i "d:\webs\beta\test\sample2.mp4" -vframes 1 -s 146x82 -f image2 "d:\webs\beta\test.jpg"';
exec($cmd, $rc);
问题是我第一次尝试执行脚本时遇到 500 内部服务器错误,但是在重新加载它时它可以工作。所以这意味着重新加载时:工作/不工作/工作..
有什么想法可能是错的吗?
试试这个脚本。
<?php
$ffmpeg = "/full/path/to/ffmpeg";
$videoFile = "/full/path/to/video.mp4";
$imgOut = "/full/path/to/frame.jpg";
$second = 0;
$cmd = $ffmpeg." -i \"".$videoFile."\" -an -ss ".$second.".001 -y -f mjpeg \"".$imgOut."\" 2>&1";
$feedback = `$cmd`;
?>
我有同样的问题。
使用 proc_open 而不是 exec 及其变体修复了它。
罗伊