从视频错误中获取图像或缩略图


ffmpeg Getting image or thumbnail from video error

我有一个简单的网站,人们上传视频,所以我想从上传的视频生成一个简单的缩略图。我已经尝试了所有的技巧和方法来做到这一点,从许多网站,但我未能使命令运行没有问题。

$video = $_FILES['vpopupdropin']["tmp_name"];
    $ffmpeg = "C:''Ffmpeg''ffmpeg-20130605-git-3289670-win64-static''bin";
    $image = "manu.jpg";
    $second = 12;
    $size = "150x90";
$command = "$ffmpeg -i $video -an -ss $second -s $size -vcodec mjpeg      $image";
echo $command;
    shell_exec($command);
    if(shell_exec($command)){
        echo 'okay';
        echo '<img src="'.$image.'"/ >';
        }
    else{
        echo ' Problem';
        }

i从PHP回显命令,这是我得到的:C:'Ffmpeg' Ffmpeg -20130605-git-3289670-win64-static'bin -i C:'xampp'tmp'php27F1.tmp -an -ss 12 -s 150x90 -vcodec mjpeg manual .jpg问题

所以我使用上面的命令并在Cmd中输入它,得到了这个错误

[image2 @ 00000000000000003d87580]无法打开文件:manual .jpgav_interleaved_write_frame():输入/输出错误。上传的文件很好地传输到我保存它的地方,并且在网站上播放得很好,这意味着文件没有损坏。但是缩略图命令似乎失败了,我甚至检查了这个网站上的其他问题,但我似乎无法得到正确的解决方案。命令中的路径是正确的,我已经验证了至少

您没有给ffmpeg一个名称:-)所以您试图执行''bin文件夹!

$ffmpeg = "C:''Ffmpeg''ffmpeg-20130605-git-3289670-win64-static''bin";

你忘了ffmpeg.exe

$ffmpeg = "C:''Ffmpeg''ffmpeg-20130605-git-3289670-win64-static''bin''ffmpeg";

我用下面的命令

为.avi文件做这个操作
ffmpeg -i Echo2012.avi -r 1 -s 1024x576 -f image2 -vframes 1 foo-001.jpg

不要重复执行命令!

$command = "$ffmpeg -i $video -an -ss $second -s $size -vcodec mjpeg      $image";
echo $command;
shell_exec($command);
    if(shell_exec($command)){
编辑:

您的命令字符串:

ffmpeg -i upload.tmp -an -ss 12 -s 150x90 -vcodec mjpeg     manu.jpg
  • -vcodec codec (output):设置视频输出的编解码器。这是输出视频的开关。你想输出一个图像。
  • -an:禁用音频流。你不需要一个图像的音频。
  • -ss: position(输入/输出)当用作输入选项时(在-i之前),在这个输入文件中查找位置。

我的命令字符串:

ffmpeg -i Echo2012.avi -r 1 -s 1024x576 -f image2 -vframes 1 foo-001.jpg
  • -r: fps(输入/输出,每流)。设置帧率(Hz值,分数或缩写)。
    作为一个输入选项,忽略存储在文件中的任何时间戳,而代之以假设恒定帧率fps生成时间戳。
  • -f image2:强制输出文件格式为image2。格式通常是自动检测从输出文件的文件扩展名猜测。
  • -vframes number (output):设置要录制的视频帧数。